Базы данных. Проектирование и создание
70
Традиционное деление СУБД по типу модели данных на реляционные, иерархиче-
ские и сетевые основывается на характере связей между записями. При всей разнице в
терминологии можно считать, что основными компонентами любой из этих моделей яв-
ляются файлы, которые состоят из записей.
В классических иерархических моделях имеется один файл, который является вхо-
дом в структуру (корень дерева). Остальные файлы связаны друг с другом таким образом,
что каждый из них, за исключением корневой вершины, имеет ровно одну исходную
вершину («родитель») и любое число подчиненных вершин («детей»). Между записью
файла-«родителя» и записями порожденного файла имеется отношение 1:М (как част-
ный случай может быть и отношение 1:1).
Имеются и другие разновидности иерархических моделей, но они менее распро-
странены.
В сетевых моделях, если на них не накладывается никаких ограничений, в прин-
ципе, любой файл может быть точкой входа в БД, каждый из файлов может быть связан с
произвольным числом других файлов и между записями связанных файлов могут быть
любые отношения (1:1, 1:М, М:М). Однако в реальных СУБД на модель накладываются
различные ограничения. Так, имеются сетевые СУБД с разнотипными файлами. В них все
файлы разделены на два типа: основные и зависимые. В таких СУБД входом в базу дан-
ных могут служить только основные файлы, а связываться между собой могут только раз-
нотипные файлы.
Во многих сетевых СУБД не поддерживается непосредственно отношение М:М.
В таких моделях каждая связь между парой файлов определяется отдельно, и для каждой
из них один файл в этой паре объявляется «владельцем», а другой – «членом». Отноше-
ние между записью-«владельцем» и записями-«членами» – 1:М.
Связи между файлами в иерархических и сетевых моделях определяются при опи-
сании структуры базы данных и физически чаще всего передаются при помощи различ-
ных указателей.
В реляционной модели используется своеобразная терминология, но это не меняет
сущности модели. Часто даже в рамках одной модели в разных СУБД используется раз-
ная терминология. Так, на логическом уровне элемент чаще всего называют атрибутом;
кроме того, для него используются термины «колонка», «столбец», «поле». Совокупность
атрибутов образует строку (синонимичные термины – «ряд», «запись», «кортеж»). Сово-
купность строк образует отношение («таблицу», «файл базы данных»). Понятие базы
данных как множества отношений поддерживается далеко не всеми реляционными
СУБД (т.е. при создании БД описываются отдельные отношения (файлы, таблицы), а для
всей базы данных, как самостоятельной информационной единицы, никакого описания
не предусмотрено). Хотя следует отметить, что в последнее время новые версии даже тех
«настольных» СУБД, которые раньше не поддерживали понятие БД, сейчас его включают.
Связи между файлами в реляционной модели в явном виде могут не описываться.
Они устанавливаются динамически в момент обработки данных по равенству значений
соответствующих полей.
В сетевых и иерархических моделях структура записи, в принципе, может быть
любой. Хотя многие СУБД накладывают различные ограничения на структуру записи. В
реляционных моделях структура записи должна быть линейной.
Каждое отношение по определению имеет ключ, т.е. атрибут (простой ключ) или
совокупность атрибутов (составной ключ), однозначно идентифицирующих кортеж. В
некоторых случаях в отношении могут быть несколько возможных (вероятных, альтерна-
тивных) ключей.
К сожалению, не все реляционные СУБД поддерживают концепцию ключа, так
как в этом случае многие проблемы (в частности, обеспечение проверки на уникальность
ключа и соблюдение некоторых других ограничений целостности) возлагаются на поль-