Пример проектирования БД с использованием метода сущность связь

 

В качестве примера рассмотрим БД Деканат.

  • БД должна содержать следующие сведения:
  • ФИО – фамилия имя отчество преподавателя (фамилии и инициалы не совпадают)
  • Должн – должность преподавателя
  • Оклад – оклад преподавателя
  • Стаж – стаж преподавателя
  • Надбавка – надбавка за стаж
  • Каф – номер кафедры
  • Предм – название дисциплины, которую ведет преподаватель
  • Группа – номер группы, в которой преподаватель проводит занятия
  • ВидЗан – вид занятий, проводимых преподавателем в уч. группе (в одной группе преподаватель ведет только один вид занятий).

 

1-й этап проектирования – выделение сущностей и связей между ними.

Сущности:

ПРЕПОДАВАТЕЛЬ (ключ - ФИО)

ЗАНЯТИЕ (ключ – Группа, Предм)

СТАЖ (ключ-стаж)

ДОЛЖНОСТЬ (ключ – Должн)

Связи между сущностями:

ПРЕПОДАВАТЕЛЬ ИМЕЕТ СТАЖ

ПРЕПОДАВАТЕЛЬ ВЕДЕТ ЗАНЯТИЕ

ПРЕПОДАВАТЕЛЬ ЗАНИМАЕТ ДОЛЖНОСТЬ

ФИО,
Группа, Предмет,
Должн,
Стаж,
м
м
м
м
Должность
Стаж
Занятие  
2-ой этап проектирования – построение диаграмм ER- типа с учетом сущностей и связей между ними.

 

       
 
   
 

 


Рис. 6 ДиаграммаER-типа

ИМЕЕТ – связь М:1 – одинаковый стаж могут иметь несколько преподавателей.

ВЕДЕТ – связь М:М – преподаватель может вести несколько предметов, каждое занятие может проводиться несколькими преподавателями. Здесь обязательный класс принадлежности с обеих сторон.

ЗАНИМАЕТ – связь М:1 – преподаватель занимает должность, одинаковые должности могут занимать несколько преподавателей.

3-й этап проектирования - формирование набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения, используя ER – диаграмму.

Связь ИМЕЕТ удовлетворяет условиям правила 4, строится 2 таблицы:

  1. ПРЕПОДАВАТЕЛЬ (ФИО, Стаж)
  2. СТАЖ (Стаж, …) с соответствующими ключевыми полями.

Связь ВЕДЕТ удовлетворяет условиям правила 6, строится 3 таблицы:

  1. ПРЕПОДАВАТЕЛЬ (ФИО, Стаж),
  2. ВЕДЕТ(ФИО, Группа, Предм)
  3. ЗАНЯТИЕ (Группа, Предм, )

Связь ЗАНИМАЕТ аналогична ИМЕЕТ (правило 4):

  1. ПРЕПОДАВАТЕЛЬ (ФИО, Стаж, Должн,…),
  2. ДОЛЖНОСТЬ (Должн, …)

4-й этап – добавление неключевых атрибутов в отношения, с тем чтобы они отвечали требованиям нормальной формы Бойса-Кодда (все неключевые атрибуты отношения взаимно независимы, зависят только от первичного ключа, отсутствуют зависимости ключей от неключевых атрибутов).

Получится следующая схема отношений:

 

Отношение ЗАНЯТИЕможно исключить из схемы, т.к. оно не несет новой информации. На последнем этапе проектирования отношения анализируются на предмет избыточного дублирования информации. Конечный результат – соответствие нормальной форме Бойса-Кодда.

 

Результат проектирования по методу "сущность-связь" – совокупность взаимосвязанных таблиц. связь осуществляется через одинаковые по смыслу, типу и значению атрибутов. Это атрибуты связи. Они могут быть ключевыми или вводятся дополнительно по правилам 1-6 для отображения связи.

В таблице ПРЕПОДАВАТЕЛЬатрибутФИО ключевой, а в таблице ВЕДЕТобычный атрибут. Таблица, в которой атрибут связи является ключевым называется главной (родительской), связанная с ней по этому ключу таблица называется подчиненной (дочерней). Информация в подчиненной таблицы зависит от данных главной таблицы. Атрибут связи в подчиненной таблице называется внешним ключом.

Данные в связанных таблицах должны удовлетворять следующим ограничениям целостности:

  • Каждой записи главной таблицы может соответствовать нуль или более записей подчиненной таблицы;
  • В подчиненной таблице не должно быть записей, которые не имеют родительской записи в главной таблице;
  • Каждой записи подчиненной таблицы может иметь только одну родительскую запись в главной таблице.

Эти ограничения определяют порядок выполнения операций ввода, удаления и обновления записей.

Перед заполнением таблиц следует определить между ними отношения порядка. К нулевому уровню относятся таблицы, в которых данные не зависят от данных в других таблицах. Это справочники. К первому уровню относятся таблицы, которые зависят только от нулевого уровня; ко второму – зависят от нулевого и первого и т.д. это определяет порядок заполнения таблиц. Сначала заполняют таблицы нулевого, потом – первого и т.д.