Базы данных. Проектирование и создание
82
атрибуты в одном отношении. Вопросы вертикального разбиения нормализованных от-
ношений выходят за рамки теории нормализации, но их часто приходится рассматривать
в реальной практике проектирования ИС. Также за рамками теории нормализации оста-
ются вопросы горизонтального разбиения отношений.
На решение вопросов о необходимости и степени вертикального и горизонтально-
го разбиения отношений оказывают влияние много факторов, и не только напрямую свя-
занные с оценкой структуры данных (объем занимаемой памяти, степень дублирования
данных), но и с затратами времени на выполнение операций разного типа, а также кор-
ректностью получаемого при этом результата.
Горизонтальное разбиение, в принципе, может давать как непересекающиеся, так
и пересекающиеся множества. При получении непересекающихся множеств степень дуб-
лирования данных не изменится и объем памяти, занимаемый под данные, останется та-
ким же, как и до расщепления. Однако общий объем памяти, требуемый для хранения
БД, возрастет. Это произойдет за счет большего объема служебной информации (каждое
отношение должно быть самостоятельно описано), а также за счет неиспользованного
свободного места в конце каждого физического блока (сектора). Кроме того, возрастет
сложность базы данных (одним из показателей которой является число информацион-
ных единиц в структуре БД) и сложность обработки. При пересекающихся множествах,
кроме того, возрастет степень дублирования данных и возникнут проблемы с поддержа-
нием целостности данных.
Несмотря на очевидные недостатки горизонтального разбиения, к такому приему
достаточно часто прибегают в практике проектирования. Чем это бывает вызвано? Во-
первых, горизонтальное разбиение может обеспечить сокращение времени обработки
данных, в том числе и за счет распараллеливания выполнения операций. Так, выполне-
ние операций селекции, проекции над горизонтальными сечениями эквивалентны вы-
полнению этих операций над всем отношением и могут выполняться параллельно. При
этом общее требуемое время выполнения запроса будет меньше, чем t/p (где t – время
выполнения запроса над всем отношением, p – число доступных процессоров), так как
время еще может сократиться и за счет работы с более короткими файлами.
Однако не все операции можно непосредственно выполнить над горизонтальны-
ми сечениями отношений. Рассмотрим следующий пример. Пусть в БД учебного инсти-
тута хранится информация о студентах. Основным потребителем этой информации яв-
ляются деканаты соответствующих факультетов. Информация чаще всего обрабатывает-
ся и анализируется в пределах факультетов. В этом случае целесообразно сделать
горизонтальные сечения и хранить данные в разрезе каждого факультета отдельно. Од-
нако, если вам, например, потребуется получить средний балл успеваемости всех студен-
тов в последнюю сессию, то вам либо придется объединить соответствующие файлы, ли-
бо использовать достаточно сложный алгоритм вычисления требуемого показателя.
Горизонтальное разбиение отношения может производиться по разным принци-
пам. В качестве условия разбиения может использоваться значение какого-либо атрибута
(как, например, в рассмотренном выше примере – значение атрибута ФАКУЛЬТЕТ). До-
вольно часто используется разбиение по временному признаку, например данные за ка-
ждый месяц хранятся в отдельном файле. Могут использоваться и другие принципы раз-
биения: по достижению определенного объема файла, по активности записей и др.
На это стоит обратить внимание
1. На построение логической модели базы данных оказывает влияние множество фак-
торов и все они в комплексе должны быть учтены при создании даталогической модели.
2. Подход к проектированию логической структуры базы данных, рассмотренный
для реляционной модели, может быть применен и при проектировании других структу-