YourLib.net
Твоя библиотека
Главная arrow Базы данных. Проектирование и создание (С.М. Диго) arrow 3.2. Критерии оценки БД
3.2. Критерии оценки БД

3.2. Критерии оценки БД

   Для оценки проектируемой/спроектированной БД может быть использовано множество критериев. Значимость этих критериев в свою очередь будет зависеть от большого числа разнообразных факторов. Прежде всего, эта значимость зависит от самого критерия: есть критерии, значимость которых не только никогда не понижается, а, наоборот, постоянно растет (адекватное отображение действительности, удовлетворение разнообразных потребностей пользователей и т.п.). Значимость других критериев становится менее существенной с ростом возможностей техники и программного обеспечения (например, занимаемый базой данных объем памяти).
   На значимость критерия оценки влияют особенности ИС, для которой создается проект (например, для систем, работающих в реальном масштабе времени, очень важна скорость реакции системы на запросы, для банковских систем - защита информации и надежность системы).
   Все критерии оценки являются взаимосвязанными и часто противоречивыми: улучшение показателей по одному из критериев может привести к ухудшению значений показателей, оценивающих модель по другим показателям. Необходима комплексная оценка проекта по всей совокупности критериев.
   Критерии могут быть как количественными, так и качественными.
   Перечислим основные критерии, используемые при оценке БД:
   Адекватность - соответствие базы данных реальной предметной области. Естественно, что БД не должна искажать предметную область. Это является важнейшим требованием к БД, без соблюдения которого бессмысленно соблюдение всех остальных требований. Оценка адекватности является не только очень важной, но и очень трудной задачей, так как некоторые несоответствия очень трудно выявляются. Адекватность должна быть обеспечена как на уровне структуры БД, так и при задании ограничений целостности. Так, например, если в предметной области могут быть однофамильцы, а вы зададите ФИО как ключ, то запись, касающаяся однофамильца, не сможет быть введена в базу данных.
   Полнота - возможность удовлетворения существующих и новых потребностей пользователей. Использование подхода «от предметной области» к проектированию баз данных и сама идеология банков данных как интегрированного взаимоувязанного хранилища данных способствуют обеспечению этого критерия. Хранение в БД детализированных показателей также повышает возможности удовлетворения разнообразных (в том числе и нерегламентированных) потребностей пользователей. Полнота является одним из проявлений адекватности БД.
   Адаптируемость - приспособление к изменяющимся условиям. В теории БнД широко используется понятие независимости программ от данных и данных от программ. Не менее, а даже более значимой, является проблема обеспечения независимости логической модели БД от изменений, происходящих в предметной области. Устойчивость модели является лучшим проявлением свойства адаптируемости системы. Обеспечение устойчивости модели базы данных к изменениям предметной области фактически снимает проблему независимости программ от данных, так как в этом случае структуры данных меняться не будут.
   Поясним суть данного показателя на примере. Предположим, необходимо хранить информацию об успеваемости студентов. Ниже приведены некоторые из возможных вариантов структуры БД для хранения этой информации. Первый вариант предполагает, что создается таблица, в строках которой помещаются фамилии студентов, графами являются названия предметов, а значениями соответствующих полей будет оценка, полученная данным студентом по данному предмету. Каждому студенту соответствует одна запись в БД. Такой вариант очень похож на «Книги баллов», которые традиционно ведутся в деканатах. Для обсуждения проблемы устойчивости модели не существенно, а для оценки БД по другим критериям будет иметь значение, сколько таблиц будет создано (так как студенты учатся по разным учебным планам, то при создании только одной таблицы будет много пустых значений полей, содержащих оценки, а каждая запись будет содержать слишком большое число полей).

   Вариант 1:

ФИО
  

Высш_мат.
  

Ин._яз.
  

БД
  

...

Иванов
  

5
  

4
  

5
  


...

Якушкина
  

4
  

5
  

4
  


...

   Во втором варианте таблица содержит только три поля: «ФИО», «Предмет», «Оценка». Для каждого студента будет создано столько записей, сколько экзаменов сдал этот студент.

   Вариант 2:  

ФИО
  

Предмет
  

Оценка
  

Иванов
  

Высш. мат
  

5
  

Якушкина
  

Высш. мат
  

4
  

Иванов
  

Ин. яз.
  

4
  

Якушкина
  

Ин. яз
  

5
  

...

...

...

   Если будет выбран первый вариант, то при каждом изменении в учебном плане надо будет менять структуру базы данных. Во втором случае никакие изменения структуры БД не потребуются. Более того, при создании БД по второму варианту вообще не надо знать действующие учебные планы. Решение будет универсальным и может использоваться в любом учебном заведении без необходимости «подстройки» на конкретное учебное заведение.
   Кстати, универсальность также может использоваться как критерий оценки БД. Она может быть обеспечена разными способами, например реализацией возможности настройки системы на особенности предметной области, определенными приемами при проектировании структуры БД и программного обеспечения. Особое значение приобретает при создании «отчуждаемых» проектов, ориентированных на конечных пользователей, не являющихся специалистами по машинной обработке данных.
   Приведем другой пример, показывающий влияние выбранного типа данных на устойчивость спроектированной БД. Предположим, что в предметной области для кодирования какой-либо номенклатуры используется цифровой код и в базе данных для соответствующего поля был выбран числовой тип данных. Если возникнет необходимость перейти на буквенную или буквенно-числовую систему кодирования, то в БД придется менять тип данных у соответствующего поля. Если бы тип данных при проектировании БД изначально был определен как текстовый, то изменения бы не потребовались.
   С рассматриваемым критерием будет тесно связан критерий затрат на поддержание системы в работоспособном состоянии. С затратами на адаптацию структуры БД будут непосредственно связаны и затраты на адаптацию прикладного программного обеспечения. Простота и трудоемкость корректировки значений данных. Прежде всего, следует обратить внимание на аномалии, возникающие при корректировке ненормализованных структур.
   Одним из показателей простоты корректировки может быть «необходимое число изменений, которые необходимо провести при наступлении одного события в предметной области».
   Например, предположим, что мы имеем базу данных, содержащую сведения о сотрудниках учебного заведения, и фиксируем в ней некоторые биографические и прочие справочные данные, а также информацию о том, какие учебные предметы может вести каждый преподаватель. Преподаватель может владеть несколькими предметами. Сравним следующие три проектных решения:

   Проектное решение 1:
   Ф1(ФИО, дата_рождения, пол, ...., телефон, название_предмета)

   Проектное решение 2:
   Ф1(ФИО, дата_рождения, пол, ..., )
   Ф2 (ФИО, название_предмета)

   Проектное решение 3:
   Ф1(код_сотрудника, ФИО, дата_рождения, пол, ...., )
   Ф2 (код_сотрудника, название_предмета)

   Следует сразу отметить, что варианты 1 и 2 являются неудовлетворительными и использованы только для иллюстрации недостатков, связанных с подобными решениями.
   Недостатком варианта 1 является то, что в случае если преподаватель владеет несколькими предметами, то в таблице Ф1 ему будет соответствовать несколько строк.
   Смена фамилии каким-либо сотрудником приведет в варианте 1 к корректировке стольких записей, сколько предметов ведет данный преподаватель, в варианте 2 - еще на одну запись больше, а в варианте 3 - к корректировке только одного значения. Изменение же номера телефона приведет в варианте 1 также к корректировке стольких записей, сколько предметов ведет данный преподаватель, а в вариантах 2 и 3 - к корректировке только одной записи.
   Первое проектное решение - ненормализованная структура. Она плоха тем, что приводит к большому дублированию информации. Второй и третий вариант - оба представляют нормализованную структуру и отличаются тем, что в последнем варианте введен искусственный идентификатор. Именно третий вариант является наиболее предпочтительным.
   Если «вдруг» (вообще-то этого лучше не делать) в базе данных в качестве поля связи определено поле, которое может менять свое значение, то следует обратить внимание на возможность автоматической корректировки связанных полей при соответствующем задании правил обеспечения ограничений целостности связи.
   Адаптация к изменениям информационных потребностей пользователей, возможность удовлетворения нерегламентированных запросов. Например, если хранить в БД детальные данные, то любые производные данные можно получить при возникновении необходимости в них; если же хранить только какие-либо сводные данные, но не хранить исходные, то получить информацию, отличную от хранимой, в большинстве случаев нельзя.
   Адаптация к изменениям используемых программных и технических средств. Основным способом обеспечения этого требования является соблюдение стандартов, а также, по возможности, использование при выборе проектного решения таких средств, которые являются широко распространенными, а не специфическими для конкретной системы. Так, например, использование «экзотических» типов полей, скорее всего, приведет к проблемам при переносе системы в другую среду или при обработке информации в гетерогенной среде.
   Одним из проявлений рассматриваемого свойства является масштабируемость. Ведущие разработчики программных продуктов уделяют большое внимание обеспечению этих свойств.
   Сложность структуры БД. Речь может вестись как о сложности самой поддерживаемой в данной СУБД модели данных, так и о сложности логической структуры конкретной спроектированной БД.
   Сложность модели будет определяться числом разнообразных информационных единиц, допустимых в ней, способами их соподчинения и связывания, накладываемыми ограничениями. Самыми простыми из структурированных моделей БД являются реляционные.
   Естественно, что показатели сложности спроектированной БД будут зависеть от типа поддерживаемой модели БД. Сравнение по этому показателю баз данных, спроектированных в среде разных СУБД, будет иметь свою специфику. Для реляционной модели сложность будет характеризоваться числом таблиц и полей в БД, числом индексных файлов (индексов). В принципе, чем меньше сложность БД, тем лучше. Однако снижение сложности, наряду с положительными результатами, часто приводит ко многим отрицательным последствиям. Так, для реляционных систем самой «простой» БД будет одно универсальное отношение, но к каким последствиям приведет использование такого проектного решения, хорошо известно из теории нормализации.
   Поэтому критерий «сложность» никогда не рассматривается как самостоятельный.
   Степень дублирования данных в БД. Различают необходимое, контролируемое и неконтролируемое дублирование. Но какими бы причинами ни было вызвано дублирование данных, оно всегда ведет к необходимости поддержки идентичности всех копий дублируемых значений, росту требуемого объема памяти, повышению трудоемкости корректировки, а также часто ведет и к увеличению числа полей в БД, что увеличивает ее сложность.
   Сложность последующей обработки. Оценить этот показатель достаточно трудно, так как его значение зависит как от предполагаемой обработки, так и от возможностей языка манипулирования данными конкретной СУБД. Тем не менее, для большинства СУБД справедливыми являются утверждения, что:
   • легче обрабатывать один файл, чем несколько связанных файлов;
   • легче объединить несколько полей, чем выделить отдельные составляющие из единого поля (например, из «Адреса» - страну, город и т.п., из «ФИО» - фамилию, имя, отчество и т.п.). Если, например, в каких-либо выходных документах надо вывести фамилию и инициалы, то в случае раздельного хранения полей это также легко сделать, например, просто изменив шаблон вывода для полей «имя» и «отчество» на (Х.)). Однако хранение каждой из составляющих СЕИ (составная единица информации) в виде отдельных полей имеет и очевидные недостатки: база данных становится сложнее, затрачивается больше времени при создании файла на описании его структуры, увеличивается объем служебной информации и объем памяти, требуемой для хранения данных;
   • обработка «неэлементарных» полей в реляционных системах всегда представляет сложность (это вызвано тем, что с точки зрения СУБД поле остается элементарной единицей). Например, если вы в БД «КАДРЫ» включили поле «ДЕТИ», в котором в записи о сотруднике фиксируете сведения обо всех его детях, то задать запросы типа «Выделить всех сотрудников, имеющих больше 3-х детей» или «Определить среднее число детей у сотрудников» будет достаточно сложно. В то же время если сведения о детях выделить в отдельную таблицу, в которой каждому ребенку будет соответствовать отдельная запись, то реализация подобных запросов не составит особого труда;
   • все «групповые» операции (суммирование, подсчет, определение среднего значения и т.п.) в реляционных СУБД обычно относятся к элементам одного столбца, а не строки; это следует учитывать при проектировании структуры БД;
   • для полей типа Memo число допустимых операций по их обработке сильно ограничено по сравнению с полями других типов. Число подобных примеров можно продолжить.
   Таким образом, при проектировании БД необходимо знать:
   а) особенности языков манипулирования данными в целевой СУБД;
   б) особенности предполагаемой обработки данных.
   Объем требуемой памяти. В связи со значительным ростом технических характеристик накопителей и снижением стоимости хранения единицы информации значимость данного фактора постоянно снижается. Исходными данными для определении требуемого объема памяти являются: число объектов отображаемой предметной области, особенности выбранной логической и физической структуры БД, особенности носителя данных. Некоторые CASE-средства включают в себя блоки оценки объемов памяти. Скорость (время) обработки информации (время реакции на запрос). Значение данного критерия очень трудно достаточно точно оценить на стадии проектирования, так как на величину этого показателя влияет значительное число взаимосвязанных и взаимозависимых факторов. Если для определения требуемого объема памяти обычно используются аналитические методы, то для определения времени обработки это проблематично. Чаще всего «скоростные» характеристики определяются путем проведения специальным образом подобранных тестов. Однако факторы, влияющие на скорость обработки, известны, и их надо иметь в виду при проектировании структуры БД.
   Рассматриваемый критерий особенно важен для систем, работающих в реальном масштабе времени и в интерактивном режиме.
   Перечень приведенных критериев не является исчерпывающим. Кроме того, каждый из перечисленных критериев может быть разбит на множество детализирующих его показателей.
   Рассмотрим некоторые примеры, иллюстрирующие оценку тех или иных проектных решений по перечисленным выше критериям. Следует обратить внимание на то, что оценка проекта по какому-либо критерию будет зависеть как от характеристики отображаемой предметной области, так и от особенностей используемой СУБД. Например, некоторые СУБД не позволяют корректировать ключевое поле. Если это не учесть и выбрать при проектировании в качестве ключа поле, которое может изменить свое значение, то в случае возникновения в предметной области такой ситуации, ее отражение в БД потребует значительных затрат, а именно потребуется перепроектирование структуры БД и довольно трудоемкая процедура «перезагрузки» данных из старой БД в новую. Если СУБД позволяет корректировать значение ключевого поля, то таких «перестроек» не потребуется (т.е. показатель оценки одного и того же проектного решения по критерию «устойчивость модели» для разных СУБД будет выглядеть по-разному). Из сказанного не следует делать вывод, что СУБД, позволяющие корректировать ключ, лучше, чем те, которые не позволяют этого: и модель БД получается устойчивее, и проектировать легче (меньше факторов надо учитывать при проектировании). Если вы выберете в качестве ключа поле, значение которого может изменяться, то у вас могут возникнуть проблемы при поддержании целостности БД.
   Таким образом, при проектировании БД надо, с одной стороны, оценить предметную область с точки зрения ее изменчивости, а с другой стороны - проект БД с точки зрения затрат на отображение возможных изменений в предметной области в информационной системе.
   Рассмотрим еще один пример, иллюстрирующий оценку проектного решения по некоторым из перечисленных выше критериев.
   При ручной организации учета успеваемости в вузах обычно ведется «Книга баллов», в которой каждой группе соответствует своя страница, по строкам которой размещен список студентов, по столбцам - названия дисциплин, которые они изучают в данном семестре. На пересечении строки и столбца проставляется соответствующая отметка.
   Если эту систему перенести без перепроектирования в машинную форму, то это повлечет за собой создание по меньшей мере столько файлов/таблиц с разной структурой, сколько имеется разных учебных планов. Число полей в каждом файле будет велико. Без знания учебного плана спроектировать структуру такой БД нельзя.
   Общее число файлов БД будет еще больше, так как для каждого семестра придется делать свой файл, так как в противном случае надо указывать где-то семестр, в котором студент сдавал экзамен; особенно это важно, если по одному и тому же предмету сдается несколько экзаменов.
   Каждый раз, когда в учебный план вводятся новые дисциплины, придется менять структуру БД.
   Обрабатывать БД с такой структуру чрезвычайно тяжело. Например, чтобы знать, какие оценки у студента Х по физике, надо знать, в какой группе учится данный студент, какая/какие таблицы содержат сведения об его успеваемости, сколько оценок по физике он имеет и как называются соответствующие поля, в которых отражены эти оценки. Многие другие запросы также сформулировать будет сложно. Т.е. такое решение неудачно по всем основным показателям: плохие адаптивные свойства, велика сложность структуры и обработки. Универсальность системы равна 0.
   Если предложить другой вариант, а именно, создать отношение «УСПЕВАЕМОСТЬ» с полями «КОД_СТУДЕНТА», «ПРЕДМЕТ», «СЕМЕСТР», «ОЦЕНКА», то все указанные недостатки будут устранены.
   Недостатком второго варианта по сравнению с первым будет большая степень дублирования данных: в первом варианте ФИО/ КОД_СТУДЕНТА фиксируется только один раз как значение поля, а названия предметов вообще фиксируются только в описании структуры, а во втором варианте они будут повторены как значения соответствующих полей при фиксации каждого факта сдачи экзамена. Тем не менее предпочтение все равно должно быть отдано этому варианту.

 
< Пред.   След. >