Пример проектирования БД с использованием метода сущность связь
В качестве примера рассмотрим БД Деканат.
- БД должна содержать следующие сведения:
- ФИО – фамилия имя отчество преподавателя (фамилии и инициалы не совпадают)
- Должн – должность преподавателя
- Оклад – оклад преподавателя
- Стаж – стаж преподавателя
- Надбавка – надбавка за стаж
- Каф – номер кафедры
- Предм – название дисциплины, которую ведет преподаватель
- Группа – номер группы, в которой преподаватель проводит занятия
- ВидЗан – вид занятий, проводимых преподавателем в уч. группе (в одной группе преподаватель ведет только один вид занятий).
1-й этап проектирования – выделение сущностей и связей между ними.
Сущности:
ПРЕПОДАВАТЕЛЬ (ключ - ФИО)
ЗАНЯТИЕ (ключ – Группа, Предм)
СТАЖ (ключ-стаж)
ДОЛЖНОСТЬ (ключ – Должн)
Связи между сущностями:
ПРЕПОДАВАТЕЛЬ ИМЕЕТ СТАЖ
ПРЕПОДАВАТЕЛЬ ВЕДЕТ ЗАНЯТИЕ
ПРЕПОДАВАТЕЛЬ ЗАНИМАЕТ ДОЛЖНОСТЬ
|
|
|
|



|
|
|
|
|
|
|










|

|

![]() | |||
![]() | |||
Рис. 6 ДиаграммаER-типа
ИМЕЕТ – связь М:1 – одинаковый стаж могут иметь несколько преподавателей.
ВЕДЕТ – связь М:М – преподаватель может вести несколько предметов, каждое занятие может проводиться несколькими преподавателями. Здесь обязательный класс принадлежности с обеих сторон.
ЗАНИМАЕТ – связь М:1 – преподаватель занимает должность, одинаковые должности могут занимать несколько преподавателей.
3-й этап проектирования - формирование набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения, используя ER – диаграмму.
Связь ИМЕЕТ удовлетворяет условиям правила 4, строится 2 таблицы:
- ПРЕПОДАВАТЕЛЬ (ФИО, Стаж)
- СТАЖ (Стаж, …) с соответствующими ключевыми полями.
Связь ВЕДЕТ удовлетворяет условиям правила 6, строится 3 таблицы:
- ПРЕПОДАВАТЕЛЬ (ФИО, Стаж),
- ВЕДЕТ(ФИО, Группа, Предм)
- ЗАНЯТИЕ (Группа, Предм, …)
Связь ЗАНИМАЕТ аналогична ИМЕЕТ (правило 4):
- ПРЕПОДАВАТЕЛЬ (ФИО, Стаж, Должн,…),
- ДОЛЖНОСТЬ (Должн, …)
4-й этап – добавление неключевых атрибутов в отношения, с тем чтобы они отвечали требованиям нормальной формы Бойса-Кодда (все неключевые атрибуты отношения взаимно независимы, зависят только от первичного ключа, отсутствуют зависимости ключей от неключевых атрибутов).
Получится следующая схема отношений:
Отношение ЗАНЯТИЕможно исключить из схемы, т.к. оно не несет новой информации. На последнем этапе проектирования отношения анализируются на предмет избыточного дублирования информации. Конечный результат – соответствие нормальной форме Бойса-Кодда.
Результат проектирования по методу "сущность-связь" – совокупность взаимосвязанных таблиц. связь осуществляется через одинаковые по смыслу, типу и значению атрибутов. Это атрибуты связи. Они могут быть ключевыми или вводятся дополнительно по правилам 1-6 для отображения связи.
В таблице ПРЕПОДАВАТЕЛЬатрибутФИО –ключевой, а в таблице ВЕДЕТобычный атрибут. Таблица, в которой атрибут связи является ключевым называется главной (родительской), связанная с ней по этому ключу таблица называется подчиненной (дочерней). Информация в подчиненной таблицы зависит от данных главной таблицы. Атрибут связи в подчиненной таблице называется внешним ключом.
Данные в связанных таблицах должны удовлетворять следующим ограничениям целостности:
- Каждой записи главной таблицы может соответствовать нуль или более записей подчиненной таблицы;
- В подчиненной таблице не должно быть записей, которые не имеют родительской записи в главной таблице;
- Каждой записи подчиненной таблицы может иметь только одну родительскую запись в главной таблице.
Эти ограничения определяют порядок выполнения операций ввода, удаления и обновления записей.
Перед заполнением таблиц следует определить между ними отношения порядка. К нулевому уровню относятся таблицы, в которых данные не зависят от данных в других таблицах. Это справочники. К первому уровню относятся таблицы, которые зависят только от нулевого уровня; ко второму – зависят от нулевого и первого и т.д. это определяет порядок заполнения таблиц. Сначала заполняют таблицы нулевого, потом – первого и т.д.