DBMS - Представление ER Диаграммы

Здравствуйте,future database designers! Сегодня мы окунемся в чудесный мир Entity-Relationship (ER) Diagrams. Как ваш добрый сосед по компьютерным наукам, я здесь, чтобы помочь вам понять этот важный аспект дизайна базы данных. Не волнуйтесь, если вы никогда не программировали раньше - мы начнем с основ и постепенно поднимемся. Так что возьмите杯咖啡(или чай, если это ваше дело) и давайте начнем!

DBMS - ER Diagram Representation

Сущность

Что такое сущность?

Сущность - это как "вещь" или "объект" в реальном мире, о котором мы хотим хранить информацию в нашей базе данных. Представьте это как существительное в предложении. Например, в базе данных школы у нас могут быть сущности, такие как "Student", "Teacher" или "Course".

Как представить сущность в ER диаграмме

В ER диаграмме мы представляем сущность в виде прямоугольника с именем сущности внутри. Это так просто!

+---------+
| Student |
+---------+

В этом примере "Student" - наша сущность. Легко, правда?

Сильные и слабые сущности

Теперь давайте добавим немного остроты. У нас есть два типа сущностей:

  1. Сильная сущность: Это сущность, которая может существовать самостоятель. Это как супергерой, который не нуждается в подручном.
  2. Слабая сущность: Эта сущность зависит от другой сущности для существования. Это больше похоже на Робина к Бэтмену.

В ER диаграмме мы представляем слабую сущность с помощью двойного прямоугольника:

+===========+
|  Address  |
+===========+

Здесь "Address" может быть слабой сущностью,因为她依赖于 сущность "Student" или "Teacher" для существования.

Атрибуты

Что такое атрибуты?

Атрибуты - это характеристики или свойства сущности. Если сущность - это существительное, то атрибуты - это прилагательные, которые описывают ее. Для нашей сущности "Student" атрибуты могут включать "Name", "Age", "Student ID" и т.д.

Типы атрибутов

Давайте рассмотрим различные типы атрибутов:

Тип атрибута Описание Представление
Простая Единичное, неделимое значение Овал, connected к сущности
Составная Может быть разделена на более мелкие части Овал с connected овалами
Многоznачная Может иметь несколько значений Двойной овал
Вычисляемая Значение, вычисленное из других атрибутов Пунктирный овал
Ключ Уникально identifies сущность Подчеркнутый овал

Представление атрибутов в ER диаграммах

Давайте посмотрим, как это выглядит в ER диаграмме:

(Name)
|
(Age)
|
+--------+    (StudentID)
|Student |------(Address)
+--------+        |
((Phone Numbers))
|
/(GPA)\

В этой диаграмме:

  • "Name", "Age" и "Address" - простые атрибуты
  • "StudentID" - ключевой атрибут (обратите внимание на подчеркивание)
  • "Phone Numbers" - многоznachnyy атрибут (обратите внимание на двойной овал)
  • "GPA" - вычисляемый атрибут (обратите внимание на пунктирный овал)

Отношение

Что такое отношение?

Отношение - это связь между двумя или более сущностями. Это как глагол в предложении, описывающий, как сущности взаимодействуют друг с другом. Например, Student "записывается" на Course.

Представление отношений в ER диаграммах

Мы представляем отношения в виде ромбовидных фигур в ER diagраммах, connected к связанным сущностям линиями.

+---------+        +-----------+        +---------+
| Student |--------| Enrolls   |--------| Course |
+---------+        +-----------+        +---------+

Кардинальность в отношениях

Кардинальность告诉我们, сколько экземпляров одной сущности может быть связано с другой сущностью в relation. Это как мультипликативность в UML, если вы знакомы с этим.

У нас есть несколько типов кардинальности:

  1. One-to-One (1:1)
  2. One-to-Many (1:N)
  3. Many-to-One (N:1)
  4. Many-to-Many (M:N)

Давайте посмотрим, как мы их представляем:

// One-to-One
+---------+        +-----------+        +---------+
| Student |--------| Has       |--------| Address |
+---------+        +-----------+        +---------+
|                                       |
1                                       1

// One-to-Many
+---------+        +-----------+        +---------+
| Teacher |--------| Teaches   |--------| Course  |
+---------+        +-----------+        +---------+
|                                       |
1                                       N

// Many-to-Many
+---------+        +-----------+        +---------+
| Student |--------| Enrolls   |--------| Course  |
+---------+        +-----------+        +---------+
|                                       |
M                                       N

Ограничения участия

Ограничения участия告诉我们, должны ли все экземпляры сущности участвовать в relation. У нас есть два типа:

  1. Полное участие: Все экземпляры должны участвовать (представлено двойной линией)
  2. Частичное участие: Некоторые экземпляры могут не участвовать (представлено единственной линией)

Вот пример:

+---------+        +-----------+        +---------+
| Student |========| Enrolls   |--------| Course  |
+---------+        +-----------+        +---------+

На этой диаграмме двойная линия indicates, что все студенты должны записываться на курс (полное участие), а единственная линия показывает, что не все курсы должны иметь записанных студентов (частичное участие).

И вот и все, folks! Мы рассмотрели основы ER Diagram representation. Помните, что практика делает perfect. Попробуйте создать ER diagраммы для систем, с которыми вы знакомы - может быть, для системы библиотеки вашей школы или местной службы доставки пиццы. Чем больше вы практикуетесь, тем естественнее это станет.

Заканчивая, я вспомнил забавную историю из моих первых дней преподавания. У меня был студент, который нарисовал свою целую ER diagрамму с помощью emoji вместо фигур. Хотя это было нестандартное обозначение,但它 действительно запомнилось при оценке!

Продолжайте исследовать, задавайте вопросы и, самое главное, получайте удовольствие от дизайна базы данных. До свидания, счастливого diagramming!

Credits: Image by storyset