Хорошие разработчики умеют работать с базами данных. Мы сосредоточимся на понимании ER-моделирования, рассмотрев один простой пример — базу данных COMPANY. К концу этого руководства мы рассмотрим основы разработки концептуальной схемы для реляционной базы данных. Я разработал учебник, чтобы:

  1. Представьте проблему
  2. Показать решение
  3. Прохождение, как мы решили проблему

Если вы хотите бросить вызов себе. Я предлагаю вам сначала прочитать задачу. Попытка разработать схему. Затем проверьте свой ответ. Затем вернитесь к шагам, чтобы увидеть, как мы определили окончательную схему.

База данных компании

  • Нам необходимо создать схему схемы базы данных на основе следующих (упрощенных) требований к базе данных COMPANY.
  • Компания состоит из ОТДЕЛОВ. У каждого отдела есть имя, номер и сотрудник, который управляет отделом. Мы отслеживаем дату начала работы руководителя отдела. У отдела может быть несколько отделений.

Каждый отдел контролирует несколько ПРОЕКТОВ. Каждый проект имеет уникальное имя, уникальный номер и находится в одном месте.

В базе данных будут храниться номер социального страхования каждого СОТРУДНИКА, адрес, зарплата, пол. strong> и дата рождения.

  • Каждый сотрудник работает в одном отделе, но может работать над несколькими проектами.
  • БД будет отслеживать количество часов в неделю, которые сотрудник в настоящее время работает над каждым проектом.
  • Необходимо отслеживать непосредственного руководителя каждого сотрудника.
  • У каждого сотрудника может быть несколько ЗАВИСИМЫХ.

Для каждого иждивенца в базе данных хранятся записи об имени, поле, дате рождения и отношениях с сотрудником.

Окончательная модель ER

Сущности и атрибуты

  • Сущность — это базовая концепция модели ER. Сущности — это определенные вещи или объекты в мини-мире, представленные в базе данных.
  • Например, СОТРУДНИК Джон Смит, исследовательский отдел, проект ProductX.
  • Атрибуты — это свойства, используемые для описания сущности.
  • Например, объект EMPLOYEE может иметь атрибуты Name, SSN, Address, Sex, BirthDate.
  • Конкретный объект будет иметь значение для каждого из своих атрибутов.
  • Например, конкретный сотрудник может иметь имя = «Джон Смит», SSN = «123456789», адрес = «731, Fondren, Houston, TX», пол = «M», дата рождения = «09-JAN-55».

С каждым атрибутом связан набор значений (или тип данных), например целое число, строка, дата, перечисляемый тип, ..

Пример проектирования сущностей и атрибутов

Концептуальная схема БД компании

  • Основываясь на требованиях к схеме, мы можем определить четыре исходных типа сущностей в базе данных COMPANY:
  1. ОТДЕЛЕНИЕ

2. ПРОЕКТ

3. СОТРУДНИК

4. ЗАВИСИМЫЙ

Знакомство с отношениями

Модель ER имеет три основных концепции:

  1. Сущности
  2. Атрибуты
  3. Отношения
  • Связь связывает два или более отдельных объекта с определенным значением.
  • Например, СОТРУДНИК Джон Смит работает над проектом ProductX, а СОТРУДНИК Франклин Вонг руководит отделом исследований.
  • Отношения одного типа группируются или типизируются в типе отношения.
  • Например, тип отношения WORKS_ON, в котором участвуют СОТРУДНИКИ и ПРОЕКТЫ, или тип отношения УПРАВЛЯЕТ, в котором участвуют СОТРУДНИКИ и ОТДЕЛЫ.
  • Степень отношения – это количество участвующих типов объектов.
  • И MANAGERS, и WORKS_ON являются бинарными отношениями.

Тип отношения и набор отношений

  • Набор отношений — это состояние отношений.
  • Тип отношения — это описание схемы отношения. Он идентифицирует имя и типы участвующих объектов, а также идентифицирует определенные ограничения отношений.

Тип отношений

На диаграммах ER мы представляем тип связи следующим образом:

  • Поле в форме ромба используется для отображения типа отношения.
  • Подключен к участвующим типам сущностей прямыми линиями.

Создание отношений для схемы БД компании

  • При изучении требований определены шесть типов отношений.
  • Все отношения являются бинарными (степень 2).
  • Ниже перечислены типы участвующих организаций:

  • WORKS_FOR (между СОТРУДНИКОМ, ОТДЕЛОМ)
  • УПРАВЛЯЕТ (также между СОТРУДНИКОМ, ОТДЕЛОМ)
  • КОНТРОЛЬ (между ОТДЕЛОМ, ПРОЕКТОМ)
  • WORKS_ON (между СОТРУДНИКАМИ, ПРОЕКТОМ)
  • НАДЗОР (между СОТРУДНИКОМ (как подчиненным), СОТРУДНИКОМ (как руководителем))
  • DEPENDENTS_OF (между СОТРУДНИКАМИ, ЗАВИСИМЫМИ

Ограничения на отношения:

  • Ограничения на типы отношений
  • (Также известно как ограничения отношения)

Коэффициент кардинальности (указывает максимальное участие):

  • Один к одному (1:1)
  • Один ко многим (1:N) или Многие к одному (N:1)
  • Многие ко многим (М:Н)

Ограничение зависимости существования (указывает минимальное участие) (также называемое ограничением участия):

  • ноль (необязательное участие, не зависящее от существования)
  • один или несколько (обязательное участие, зависит от наличия)

Рекурсивный тип связи

  • Тип отношения между одним и тем же типом участвующих объектов в разных ролях.
  • Также называется ссылающимся на себя типом связи.

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

  • Сущность, не имеющая ключевого атрибута и зависящая от идентификации от другого типа сущности.
  • Слабая сущность должна участвовать в идентифицирующем типе связи с владельцем или идентифицирующим типом сущности.
  • Сущности идентифицируются по:
  • Частичный ключ слабого типа сущности
  • Конкретный объект, с которым они связаны в идентифицирующем типе отношения.

Пример слабого типа объекта

  • ЗАВИСИМОЕ лицо идентифицируется по имени иждивенца и конкретному СОТРУДНИКУ, с которым связано ЗАВИСИМОЕ.
  • Имя DEPENDENT является частичным ключом.
  • DEPENDENT — это слабый тип сущности.
  • EMPLOYEE — это его идентифицирующий тип сущности через идентифицирующий тип отношения DEPENDENT_OF.

Нотация для ограничений на типы отношений

  • Соотношение мощностей (бинарных отношений): 1:1, 1:N, N:1 или M:N.
  • Отображается размещением соответствующих номеров на ребрах отношений.
  • Ограничение участия (для каждого типа участвующих объектов): полное (называемое зависимостью существования) или частичное.
  • Сумма показана двойной линией, часть - одной линией.
  • Примечание. Их легко указать для типа двоичной связи.

(Мин., Макс.) Обозначение для структурных ограничений отношений

  • У отдела есть только один менеджер, и сотрудник может управлять не более чем одним отделом.
  • Укажите (0,1) для участия СОТРУДНИКА в УПРАВЛЕНИИ
  • Укажите (1,1) для участия ОТДЕЛА в УПРАВЛЕНИИ
  • Сотрудник может работать только в одном отделе, но в отделе может быть любое количество сотрудников.
  • Укажите (1,1) для участия EMPLOYEE в WORKS_FOR
  • Укажите (0,n) для участия DEPARTMENT в WORKS_FOR

Сводка обозначений для диаграмм ER

Вывод

Это было простое пошаговое руководство по ER-моделированию. На этом этапе вы должны быть в состоянии интерпретировать проблему дизайна ER и создать потенциальную концептуальную схему.