Связи в ERD будем обозначать используя нотацию Crow’s Foot (воронья лапка)
Согласно данной нотации, связь изображается линией, которая связывает две сущности, участвующие в отношении. Степень конца связи указывается графически, множественность связи изображается в виде «вилки» (вороньей лапки) на конце связи. Модальность связи так же изображается графически — необязательность связи помечается кружком на конце связи.
Давайте теперь поработаем с системой базы данных MyFlix Video Library, чтобы помочь понять концепцию ER-диаграмм. Мы будем использовать эту базу данных для всей практической работы в оставшейся части этого урока
MyFlix — это юридическое лицо, которое сдает в аренду фильмы своим членам. MyFlix хранит свои записи вручную. Теперь руководство хочет перейти на СУБД
Вспомним шаги по разработке ER диаграммы для базы данных:
Участники — эта сущность будет хранить информацию об участниках.
Фильмы — эта сущность будет содержать информацию о фильмах
Категории — эта сущность будет содержать информацию, которая помещает фильмы в различные категории, такие как «Драма», «Действие», «Эпический» и т. Д.
Прокат фильмов — эта сущность будет хранить информацию о фильмах, сдаваемых в аренду ее членам.
Платежи — эта сущность будет хранить информацию о платежах, произведенных участниками.
Участники и фильмы
Из приведенного выше сценария мы можем видеть, что нужно использовать отношение «многие ко многим». Реляционные базы данных не поддерживают отношения «многие ко многим». Нам нужно ввести новую сущность - таблицу связей. Эту роль будет играет таблица MovieRentals. Она имеет отношение один-ко-многим с таблицей участников и отношение один-ко-многим с таблицей фильмов.
Фильмы и категории лиц
Из этого можно сделать вывод, что характер отношений между категориями и таблицей фильмов один-ко-многим.
Участники и платежные организации
Из этого можно сделать вывод, что характер взаимоотношений между участниками и платежными организациями один-ко-многим.
Давайте посмотрим на два типа объектов, с которыми мы будем работать (на примере программы draw.io).
Участники организации будет иметь следующие атрибуты
Перетащите на форму объект "таблица"
Задайте название сущности и добавьте атрибуты
Добавление нового атрибута:
Должно получиться примерно такое:
При наведении курсора мышки на объект, показывается информация о типе объекта
Повторите эти действия для всех сущностей, в итоге должно получиться примерно так:
Обратите внимание:
Используем тип связи "один-ко-многим"
Соединяем нужные аттрибуты сущностей соответствующими сторонами связи (проговариваем для себя: "в одной категории может быть много фильмов"), учитывая модальность связи.
Повторяем эти действия для всех связей, в итоге получится примерно следующее:
Задание
Разработать ER-диаграмму для своей предметной области