Name already in use
PiRIS / articles / 5_1_1_1_erd_workbench.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
0 contributors
Users who have contributed to this file
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Создание ER-диаграммы в среде MySQL Workbench
Давайте теперь поработаем с системой базы данных MyFlix Video Library, чтобы помочь понять концепцию ER-диаграмм. Мы будем использовать эту базу данных для всей практической работы в оставшейся части этого урока
MyFlix — это юридическое лицо, которое сдает в аренду фильмы своим членам. MyFlix хранит свои записи вручную. Теперь руководство хочет перейти на СУБД
Вспомним шаги по разработке диаграммы EER для базы данных:
- Определить сущности и отношения, которые существуют между ними.
- Каждая сущность, атрибут и отношение должны иметь соответствующие имена, которые могут быть легко понятны и нетехническим людям.
- Отношения не должны быть связаны напрямую друг с другом. Отношения должны соединять сущности.
- Каждый атрибут в данном объекте должен иметь уникальное имя.
Объекты, которые должны быть включены в нашу ER-диаграмму:
Участники — эта сущность будет хранить информацию об участниках.
Фильмы — эта сущность будет содержать информацию о фильмах
Категории — эта сущность будет содержать информацию, которая помещает фильмы в различные категории, такие как «Драма», «Действие», «Эпический» и т. Д.
Прокат фильмов — эта сущность будет хранить информацию о фильмах, сдаваемых в аренду ее членам.
Платежи — эта сущность будет хранить информацию о платежах, произведенных участниками.
Определение отношений между сущностями
Участники и фильмы
- Участник может арендовать один или больше фильмов.
- Фильм может быть арендован более чем одним участником.
Из приведенного выше сценария мы можем видеть, что нужно использовать отношение «многие ко многим». Реляционные базы данных не поддерживают отношения «многие ко многим». Нам нужно ввести новую сущность — таблицу связей. Эту роль будет играет таблица MovieRentals. Она имеет отношение один-ко-многим с таблицей участников и отношение один-ко-многим с таблицей фильмов.
Фильмы и категории лиц
- Фильм может принадлежать только к одной категории, но в категории может быть несколько фильмов.
Из этого можно сделать вывод, что характер отношений между категориями и таблицей фильмов один-ко-многим.
Участники и платежные организации
- Участник может иметь только одну учетную запись, но может сделать несколько платежей.
Из этого можно сделать вывод, что характер взаимоотношений между участниками и платежными организациями один-ко-многим.
Теперь давайте создадим модель EER, используя MySQL Workbench
Модель улучшенного отношения сущностей (EER)
Модель Enhanced Entity Relationship (EER) — это модель данных высокого уровня, которая предоставляет расширения для исходной модели Entity Relationship (ER). EER Models поддерживает более детальный дизайн. EER Modeling появилась как решение для моделирования очень сложных баз данных.
В рабочей среде MySQL Workbench перейдите в режим моделирования и нажмите кнопку «+»

Дважды щелкните кнопку Добавить диаграмму, чтобы открыть рабочее пространство для диаграмм ER.

Появляется окно EER Diagram

Давайте посмотрим на два типа объектов, с которыми мы будем работать.
- Объект таблицы позволяет нам создавать объекты и определять атрибуты, связанные с конкретным объектом.
- Кнопки отношений позволяет нам определять отношения между объектами.
Участники организации будет иметь следующие атрибуты
- Членский номер
- Полные имена
- Пол
- Дата рождения
- Физический адрес
- Почтовый адрес
Создадим таблицу участников:
Кликните по кнопке «Таблица»
В верхней части окна диаграммы появится запрос параметров для создаваемой таблицы:

В поле Collation Выбираем utf8mb4_0900_ai_ci и кликаем по области диаграммы — появится сущность с названием table1 (остальные параметры не меняем)
- CI — Case Insensitive — без учета регистра;
- CS — Case Sensitive — c учетом регистра;
- AS — Accent Sensitive — с учетом аксонов или диакритических знаков, проще говоря ‘a’ не считается равным ‘ấ’.
- AI — Accent Insensitive — без учета аксонов или диакритических знаков, проще говоря ‘е’ считается равным ‘ё’.
- UTF8 — позволяет хранить данные в UTF8.
- mb4 — минимальное количество байт для хранения символа utf (utf8 без суффикса mb4 использует 3 байта на символ, и в этот набор не входят, например, emoji)
- bin — простое побитовое сравнение
Дважды кликните мышкой по этой сущности. Появится окно свойств, показанное ниже:

Задайте название сущности (поле Table Name) и добавьте атрибуты (Column Name)
Должно получиться примерно такое:

Повторите эти действия для всех сущностей, в итоге должно получиться примерно так:

- Таблица связей названа по именам связываемых сущностей
- В названиях сущностей и атрибутов используем CamelCase и единственное число
- сразу создаем атрибуты для связей (PaymentId, MemberId, MovieId? CategoryId). В принципе MySQL Workbench может автоматически созавать эти атрибуты при создании связей, но при этом он называет их не по нашему стандарту.
Кликаем по иконке создания связи «один-ко-многим»

Затем последовательно кликаем по внешнему ключу MemberMovie.MemberId и Member.id (нужные поля подсвечиваются под курсором)

Повторяем эти действия для всех связей, в итоге получится примерно следующее:
PRE-NOTE (If you want to create an ERD fast then read this)
![]()
When I initially tried to create an ERD using pgAdmin 4 I clicked on the “New ERD Project” option in the Tools dropdown and it gave me a blank grid to work off of. Because of that I actually had to manually create each table, row, and constraint in the diagram and it took me hours. The next time I attempted to create an ERD I first right-clicked on the database I wanted to work with and instead chose “Generate ERD” and initially it still appeared that I had a blank ERD to start with but when I zoomed out I noticed that an ERD was already created for me and it included all of the accurate table names, row names, constraints and relationships. In the end what had previously taken me hours to complete now only took me 30 seconds.
That being said, I found it very useful to create my own ERD manually. It got me thinking about the process, the data types, constraints, and relationships in a way that I felt further solidified my knowledge of SQL.
PREREQUISITES
This tutorial assumes you already have PostgreSQL, pgAdmin 4, and The Pagila Database installed and set-up. If you need instructions on setting this up please visit my previous article: Simulating A Real-world SQL Environment.
How can I generate an entity–relationship (ER) diagram of a database using Microsoft SQL Server Management Studio?
I want to generate an ER diagram of an SQL database using Microsoft SQL Server Management Studio (SMSS). However, I don’t know how to.
However, I am not able to see "Database Node" or "Database Diagrams" nodes as mentioned in the first and second steps.
Hence, how can I generate an ER diagram from an existing database?
From the comments, I realize that I was right in my understanding that Database node means the node with my database name. But then my problem is I am not able to find the "Database Diagrams" node under my Database name. What should I do so that I can see it?
Entity Relationship Model(ER model)
Entity-Relationship (ER) model is a visual representation of the table’s structure and the relationships between logically related tables.
In ER modeling the database structure is represented as a diagram known as ER diagram (ERD). An ER diagram gives a better understanding of the overall database structure. It becomes easier to map the tables, their keys, and relationships.
The ER diagram displays:
- Table structure along with the column names and their data types
- Primary and foreign key constraints
- Relationship between tables
Pre-requisite
- MS SQL Server
- SQL Server Management Studio (SSMS)
Create entities and relationships
To create an ER diagram; the tables must be logically related to one another with foreign key constraints.