Хорошие разработчики умеют работать с базами данных. Мы сосредоточимся на понимании ER-моделирования, рассмотрев один простой пример — базу данных COMPANY. К концу этого руководства мы рассмотрим основы разработки концептуальной схемы для реляционной базы данных. Я разработал учебник, чтобы:
- Представьте проблему
- Показать решение
- Прохождение, как мы решили проблему
Если вы хотите бросить вызов себе. Я предлагаю вам сначала прочитать задачу. Попытка разработать схему. Затем проверьте свой ответ. Затем вернитесь к шагам, чтобы увидеть, как мы определили окончательную схему.
База данных компании
- Нам необходимо создать схему схемы базы данных на основе следующих (упрощенных) требований к базе данных COMPANY.
- Компания состоит из ОТДЕЛОВ. У каждого отдела есть имя, номер и сотрудник, который управляет отделом. Мы отслеживаем дату начала работы руководителя отдела. У отдела может быть несколько отделений.
Каждый отдел контролирует несколько ПРОЕКТОВ. Каждый проект имеет уникальное имя, уникальный номер и находится в одном месте.
В базе данных будут храниться номер социального страхования каждого СОТРУДНИКА, адрес, зарплата, пол. strong> и дата рождения.
- Каждый сотрудник работает в одном отделе, но может работать над несколькими проектами.
- БД будет отслеживать количество часов в неделю, которые сотрудник в настоящее время работает над каждым проектом.
- Необходимо отслеживать непосредственного руководителя каждого сотрудника.
- У каждого сотрудника может быть несколько ЗАВИСИМЫХ.
Для каждого иждивенца в базе данных хранятся записи об имени, поле, дате рождения и отношениях с сотрудником.
Окончательная модель ER
Сущности и атрибуты
- Сущность — это базовая концепция модели ER. Сущности — это определенные вещи или объекты в мини-мире, представленные в базе данных.
- Например, СОТРУДНИК Джон Смит, исследовательский отдел, проект ProductX.
- Атрибуты — это свойства, используемые для описания сущности.
- Например, объект EMPLOYEE может иметь атрибуты Name, SSN, Address, Sex, BirthDate.
- Конкретный объект будет иметь значение для каждого из своих атрибутов.
- Например, конкретный сотрудник может иметь имя = «Джон Смит», SSN = «123456789», адрес = «731, Fondren, Houston, TX», пол = «M», дата рождения = «09-JAN-55».
С каждым атрибутом связан набор значений (или тип данных), например целое число, строка, дата, перечисляемый тип, ..
Пример проектирования сущностей и атрибутов
Концептуальная схема БД компании
- Основываясь на требованиях к схеме, мы можем определить четыре исходных типа сущностей в базе данных COMPANY:
- ОТДЕЛЕНИЕ
2. ПРОЕКТ
3. СОТРУДНИК
4. ЗАВИСИМЫЙ
Знакомство с отношениями
Модель ER имеет три основных концепции:
- Сущности
- Атрибуты
- Отношения
- Связь связывает два или более отдельных объекта с определенным значением.
- Например, СОТРУДНИК Джон Смит работает над проектом 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 и создать потенциальную концептуальную схему.