Моделирование взаимосвязей между сущностями

Реализация в базе данных


Рассмотрим в двух словах, как модель для сущностей КУПОН, МЕСТО и САМОЛЕТ может быть организована с помощью различных баз данных.

Реляционная база данных

В реляционной БД каждая сущность становится таблицей, а ее атрибуты - столбцами в таблице.

Рисунок 2-10. Реляционный проект

Столбцы с отметкой "**" используются для реализации связей между таблицами. Так, например, регистрационный номер самолета, включенный в таблицу SEAT, реализует связь между сущностями МЕСТО и САМОЛЕТ. Такой столбец именуют внешним ключом.

Выражение "not null" соответствует либо обязательной связи (которая на модели обозначается сплошной линией), либо обязательному атрибуту. Выражение "null" используется для обозначения либо необязательной связи (пунктирная линия), либо необязательного атрибута - "null" означает "значение может отсутствовать".

Сетевая база данных

В сетевой БД каждой сущности обычно соответствует запись. Каждой связи присваивается набор указателей NPO (Следующий, Предыдущий и Владелец). Записи, требующие доступа по ключу, располагаются с использованием алгоритма хэширования (CALC). Записи, которые на диске должны быть сгруппированы, требуют для своего размещения использования еще одной записи (VIA).

Символами "MA" на схеме обозначается обязательная автоматическая связь (Mandatory Automatic) - скажем, между записью "БИЛЕТ" и владельцем "САМОЛЕТ". Символы "OM" служат для обозначения необязательной связи.

Рисунок 2-11. Сетевой проект

Иерархическая база данных

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


Рисунок 2-12. Иерархический проект



Файл на языке КОБОЛ

Если используется алгоритмический язык КОБОЛ, запись САМОЛЕТ (AIRCRAFT) будет содержать повторяющуюся группу для сущности МЕСТО (SEAT):

Рисунок 2-13. Расположение полей в записи на КОБОЛе



Файл с ручной обработкой

Для того, чтобы картина была более полной, не стоит забывать, что большое количество информации в мире хранится в неавтоматических файловых (учетных) системах. На схеме представлена возможная реализация файла с данными о пассажирах в виде картотеки, хранящейся в бюро путешествий.

Рисунок 2-14. Регистрационный шкаф




Содержание раздела