Лабораторная работа: Проектирование РБД "Санатория" с помощью инструментария AllFusion ERwin Data Modeler
6. Связи между сущностями:
В IDEF1X концепция зависимых и независимых сущностей усиливается типом взаимосвязей между двумя сущностями. Если вы хотите, чтобы внешний ключ передавался в дочернюю сущность (и, в результате, создавал зависимую сущность), то можете создать идентифицирующую связь между родительской и дочерней сущность.
Идентифицирующие взаимосвязи обозначаются сплошной линией между сущностями.
Неидентифицирующие связи, являющиеся уникальными для IDEF1X, также связывают родительскую сущность с дочерней. Неидентифицирующие связи используются для отображения другого типа передачи атрибутов внешних ключей - передача в область данных дочерней сущности (под линией).
Неидентифицирующие связи отображаются пунктирной линией между объектами. Так как переданные ключи в неидентифицирующей связи не являются составной частью первичного ключа дочерней сущности, то этот вид связи не проявляется ни в одной идентифицирующей зависимости. В этом случае и ОТДЕЛ, и СОТРУДНИК рассматриваются как независимые сущности.
При проектировании БД Санатория определены следующие связи между сущностями:
· Отделение состоит из секторов (один-ко-многим);
· Отделение обслуживает клиентов (многие-ко-многим);
· Сектор состоит из рабочих мест (один-ко-многим);
· Рабочее место предоставляется сотруднику (один-ко-многим):
· Функции выполняется на рабочем месте (один-ко-многим);
· Автотранспорт принадлежит отделению (один-ко-многим);
· Клиент имеет путевку (один-ко-многим);
· Клиент работает на предприятии (один-ко-многим);
· Жил.комплекс предоставляется клиенту (один-ко-многим);
· Предприятие-отправитель предоставляет путевки (один-ко-многим);
Рис.1. Логический уровень проектирования БД
7. Переход на физический уровень. Процесс преобразования связи многие-ко-многим:
При переходе на физический уровень особого внимания заслуживают такие типы связей как “многие-ко-многим” и «супертипа с подтипами».
Стандарт EDEF1X допускает присутствие в модели обоих типов связей. Однако без их разрешения физическая база данных будет далека от оптимальной. ERwin предоставляет возможность разрешения этих связей.
Стандартным разрешением связи “многие-ко-многим” является механизм, показанный на рис. 3.
Рис. 2. Разрешение связи "многие-ко-многим"
На логическом уровне проектирования БД существовала связь «многие-ко-многим» между сущностями Отделение и Клиент. В результате перехода на физический уровень образовалась дополнительная сущность с соответствующей областью первичных ключей:
Рис.3 Переход на физический уровень
8. Скрипт для создания БД в Access:
' Starting Access Basic DAO Session...
Dim ERwinWorkspace As Workspace
Dim ERwinDatabase As Database
Dim ERwinTableDef As TableDef