КОНЦЕПТУАЛЬНОЕ ПРОЕКТИРОВАНИЕ
119
чение приобретает при создании «отчуждаемых» проектов, ориентированных на конеч-
ных пользователей, не являющихся специалистами по машинной обработке данных.
5) Сложность структуры БД. Речь может вестись как о сложности самой поддерживае-
мой в данной СУБД модели данных, так и о сложности логической структуры кон-
кретной спроектированной БД.
Сложность модели будет определяться числом разнообразных информационных еди-
ниц, допустимых в ней, способами их соподчинения и связывания, накладываемыми ограни-
чениями. Самыми простыми из структурированных моделей БД являются реляционные.
Естественно, что показатели сложности спроектированной БД будут зависеть от
типа поддерживаемой модели БД. Сравнение по этому показателю баз данных, спроекти-
рованных в среде разных СУБД, будет иметь свою специфику. Для реляционной модели
сложность будет характеризоваться числом таблиц и полей в БД, числом индексных фай-
лов (индексов). В принципе, чем меньше сложность БД, тем лучше. Однако снижение
сложности, наряду с положительными результатами, часто приводит ко многим отрица-
тельным последствиям. Так, для реляционных систем самой «простой» БД будет одно
универсальное отношение, но к каким последствиям приведет использование такого про-
ектного решения, хорошо известно из теории нормализации.
Резюме. Критерий «сложность» никогда не рассматривается как самостоятельный.
6) Степень дублирования данных в БД. Различают необходимое, контролируемое и не-
контролируемое дублирование. Но какими бы причинами ни было вызвано дублиро-
вание данных, оно всегда ведет к необходимости поддержки идентичности всех копий
дублируемых значений, росту требуемого объема памяти, повышению трудоемкости
корректировки, увеличению числа полей в БД, что увеличивает ее сложность.
7) Сложность последующей обработки. Оценить этот показатель достаточно трудно,
так как его значение зависит как от предполагаемой обработки, так и от возможностей
языка манипулирования данными конкретной СУБД. Тем не менее, для большинства
СУБД справедливыми являются утверждения, что:
• легче обрабатывать один файл, чем несколько связанных файлов;
• легче объединить несколько полей, чем выделить отдельные составляющие из еди-
ного поля (например, из «Адреса» – страну, город и т.п., из «ФИО» – фамилию,
имя, отчество и т.п.). Если, например, в каких-либо выходных документах надо вы-
вести фамилию и инициалы, то в случае раздельного хранения полей это также
легко сделать, например, просто изменив шаблон вывода для полей «имя» и «отче-
ство» на (Х.)). Однако хранение каждой из составляющих СЕИ в виде отдельных
полей имеет и очевидные недостатки: база данных становится сложнее, затрачива-
ется больше времени при создании файла на описании его структуры, увеличивает-
ся объем служебной информации и объем памяти, требуемой для хранения данных;
• обработка «неэлементарных» полей в реляционных системах всегда представляет
сложность (это вызвано тем, что с точки зрения СУБД поле остается элементарной
единицей). Например, если вы в БД «КАДРЫ» включили поле «ДЕТИ», в котором
в записи о сотруднике фиксируете сведения обо всех его детях, то задать запросы
типа: «Выделить всех сотрудников, имеющих больше 3-х детей» или «Определить
среднее число детей у сотрудников» будет достаточно сложно. В то же время, если
сведения о детях выделить в отдельную таблицу, в которой каждому ребенку будет
соответствовать отдельная запись, то реализация подобных запросов не составит
особого труда;