Рисунок 2.8 – Диаграмма, изображающая две связи между сущностями СОТРУДНИК и ОТДЕЛ
Связь «руководит» -- это связь 1:1, а «работает в» -- M:1 (или 1:N). На рисунке 2.9 показан пример связи M:N между сущностями СОТРУДНИК и ПРОЕКТ.
Рисунок 2.9 – Связь многие-ко-многим
Часто на ER-диаграммах показывается кардинальность связи, или классы принадлежности сущностей к данной связи. Так, у любого отдела обязан быть руководитель, но не каждый сотрудник руководит каким-либо отделом. Это показывается следующим образом (рис. 2.10): СОТРУДНИК имеет обязательный класс принадлежности связи «руководит», а ОТДЕЛ – необязательный.
Рисунок 2.10 – Пример изображения кардинальности связи
Существуют и другие нотации для ER-диаграмм, в которых сущности, связи и их характеристики изображаются несколько по-иному. Ознакомиться с ними можно по многочисленным публикациям о проектировании БД.
Создание ER-модели начинается с выявления сущностей и связей, после чего определяются их конкретные атрибуты. Очень важно, чтобы атрибуты были определены правильно. Неформальным критерием правильности является следующий критерий: атрибут должен отражать одно из неотъемлемых свойств именно той сущности или связи, к которой он приписан. К примеру, номер студенческого билета не может быть атрибутом сущности ФАКУЛЬТЕТ: он характеризует только студента, а не факультет и не учебную группу. Значение атрибута характеризует конкретный экземпляр сущности или связи. Когда произносится фамилия «Иванов», то ясно, что речь идет о человеке, а не о предприятии; именно поэтому недопустимо для сущности ПРЕДПРИЯТИЕ определять атрибут «фамилия_директора». Директор предприятия – это отдельная сущность, предприятие – тоже отдельная сущность. Связь между этими сущностями показывает, что директора руководят предприятиями.
Если ER-схема создается с учетом данного замечания, то, как правило, все функциональные зависимости между атрибутами оказываются корректными. В редких случаях требуется нормализация сущностей или связей.
Схема реляционной БД получается из ER-схемы достаточно легко. Поскольку типы связей в ER-модели четко классифицированы, для большинства типов связей существуют правила отображения на таблицы БД. Часть из них приведена в табл. 2.1.
Таблица 2.1 – Правила порождения реляционной схемы из модели «сущность-связь»
Тип связи |
Пример связи |
Правило построения отношений |
Отношения |
(1,1):(1,1) |
Требуется только одно отношение. Первичным ключом данного отношения может быть ключ любой из сущностей. |
Продолжение таблицы 2.1
(1,1):(0,1) |
Для каждой сущности создается свое отношение, при этом ключи сущностей служат ключами соответствующих отношений. Кроме того, ключ сущности с обязательным классом принадлежности добавляется в качестве внешнего ключа в отношение, созданное для сущности с необязательным классом принадлежности. В некоторых случаях требуется указывать дополнительные ограничения целостности, а именно:
Случай (0,1):(1,N) является нетривиальным. Для точного отражения данного типа связи в БД необходимо использовать дополнительные механизмы обеспечения целостности БД (ограничения общего вида, триггеры), о которых будет говориться в отдельной главе конспекта. |
||
(0,1):(0,1) |
|||
(0,1):(0,N) |
Продолжение таблицы 2.1
M : N |
В этом случае всегда используются три отношения: по одному для каждой сущности, причем ключ каждой сущности служит первичным ключом соответствующего отношения. Третье отношение содержит атрибуты связи и два внешних ключа для обеспечения связи между первыми двумя отношениями. |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.