- •Раздел 4. Проектирования бд
- •4.1. Метод нормальных форм
- •4.1.1. Цели проектирования реляционных бд
- •Возможность хранения всех необходимых данных в бд
- •Исключение избыточных данных.
- •Нормализация отношений.
- •Аномалии добавления (insert)
- •Аномалии обновления (update)
- •Аномалии удаления (delete)
- •4.1.2.Формирование исходного отношения. Функциональные зависимости (фз)
- •Существует 6 нормальных форм, на практике ограничиваются 4-мя. 1,2,3 нф и форма Бойса-Кодда (нфбк).
- •4.1.4. Рекомендации по разработке структур
- •4.2. Метод сущность - связь
- •4.2.1. Основные понятия метода
- •4.2.2. Этапы проектирования
- •Правила формирования отношений для 1:1
- •Правила формирования отношений для 1:м
- •Правила формирования отношений для м:м
- •4.2.3. Пример проектирования бд с использованием метода сущность связь
Правила формирования отношений для м:м
При наличии связи М:М между сущностями необходимо наличие трех отношении независимо от класса принадлежности любой из сущностей.
Правило 6.
Если степень связи М:М, то независимо от класса принадлежности сущностей формируются три отношения. Два отношения соответствуют связываемым сущностям и их ключи являются первичными ключами этих отношений. Третье отношение является связным между первыми двумя, а его ключ объединяет ключевые атрибуты связываемых отношений.
К1 К2
КП |
Фамилия |
Телефон |
КД |
Дисциплина |
Часы |
П1 |
Андреев |
234567 |
Д1 |
Физика |
62 |
П1 |
Андреев |
234567 |
Д2 |
Логика |
74 |
П2 |
Петров |
234568 |
Д3 |
Информатика |
74 |
- |
- |
- |
Д4 |
СУБД |
80 |
П3 |
Рушин |
234569 |
Д5 |
С++ |
100 |
П4 |
Репин |
234561 |
Д2 |
Логика |
74 |
П4 |
Репин |
234561 |
Д6 |
Экономика |
120 |
П5 |
Егоров |
234562 |
- |
- |
- |
КП |
Фамилия |
Телефон |
П1 |
Андреев |
234567 |
П2 |
Петров |
234568 |
П3 |
Рушин |
234569 |
П4 |
Репин |
234561 |
П5 |
Егоров |
234562 |
КП |
КД |
П1 |
Д1 |
П1 |
Д2 |
П2 |
Д3 |
П3 |
Д5 |
П4 |
Д2 |
П4 |
Д6 |
КД |
Дисциплина |
Часы |
Д1 |
Физика |
62 |
Д2 |
Логика |
74 |
Д3 |
Информатика |
74 |
Д4 |
СУБД |
80 |
Д5 |
С++ |
100 |
Д6 |
Экономика |
120 |
4.2.3. Пример проектирования бд с использованием метода сущность связь
В качестве примера рассмотрим БД Деканат.
-
БД должна содержать следующие сведения:
-
ФИО – фамилия имя отчество преподавателя (фамилии и инициалы не совпадают)
-
Должн – должность преподавателя
-
Оклад – оклад преподавателя
-
Стаж – стаж преподавателя
-
Надбавка – надбавка за стаж
-
Каф – номер кафедры
-
Предм – название дисциплины, которую ведет преподаватель
-
Группа – номер группы, в которой преподаватель проводит занятия
-
ВидЗан – вид занятий, проводимых преподавателем в уч. группе (в одной группе преподаватель ведет только один вид занятий).
1-й этап проектирования – выделение сущностей и связей между ними.
Сущности:
ПРЕПОДАВАТЕЛЬ (ключ - ФИО)
ЗАНЯТИЕ (ключ – Группа, Предм)
СТАЖ (ключ-стаж)
ДОЛЖНОСТЬ (ключ – Должн)
Связи между сущностями:
ПРЕПОДАВАТЕЛЬ ИМЕЕТ СТАЖ
ПРЕПОДАВАТЕЛЬ ВЕДЕТ ЗАНЯТИЕ
ПРЕПОДАВАТЕЛЬ ЗАНИМАЕТ ДОЛЖНОСТЬ
2
Стаж
Занятие
Должность
1
м
1
м
м
м
Стаж,…
Группа,
Предмет,…
……
Должн,…
ФИО,…
Рис. 6 ДиаграммаER-типа
ИМЕЕТ – связь М:1 – одинаковый стаж могут иметь несколько преподавателей.
ВЕДЕТ – связь М:М – преподаватель может вести несколько предметов, каждое занятие может проводиться несколькими преподавателями. Здесь обязательный класс принадлежности с обеих сторон.
ЗАНИМАЕТ – связь М:1 – преподаватель занимает должность, одинаковые должности могут занимать несколько преподавателей.
3-й этап проектирования - формирование набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения, используя ER – диаграмму.
Связь ИМЕЕТ удовлетворяет условиям правила 4, строится 2 таблицы:
-
ПРЕПОДАВАТЕЛЬ (ФИО, Стаж)
-
СТАЖ (Стаж, …) с соответствующими ключевыми полями.
Связь ВЕДЕТ удовлетворяет условиям правила 6, строится 3 таблицы:
-
ПРЕПОДАВАТЕЛЬ (ФИО, Стаж),
-
ВЕДЕТ(ФИО, Группа, Предм)
-
ЗАНЯТИЕ (Группа, Предм, …)
Связь ЗАНИМАЕТ аналогична ИМЕЕТ (правило 4):
-
ПРЕПОДАВАТЕЛЬ (ФИО, Стаж, Должн,… ),
-
ДОЛЖНОСТЬ (Должн, …)
4-й этап – добавление неключевых атрибутов в отношения, с тем чтобы они отвечали требованиям нормальной формы Бойса-Кодда (все неключевые атрибуты отношения взаимно независимы, зависят только от первичного ключа, отсутствуют зависимости ключей от неключевых атрибутов).
Получится следующая схема отношений:
Отношение ЗАНЯТИЕ можно исключить из схемы, т.к. оно не несет новой информации. На последнем этапе проектирования отношения анализируются на предмет избыточного дублирования информации. Конечный результат – соответствие нормальной форме Бойса-Кодда.
Результат проектирования по методу "сущность-связь" – совокупность взаимосвязанных таблиц. связь осуществляется через одинаковые по смыслу, типу и значению атрибутов. Это атрибуты связи. Они могут быть ключевыми или вводятся дополнительно по правилам 1-6 для отображения связи.
В таблице ПРЕПОДАВАТЕЛЬ атрибут ФИО – ключевой, а в таблице ВЕДЕТ обычный атрибут. Таблица, в которой атрибут связи является ключевым называется главной (родительской), связанная с ней по этому ключу таблица называется подчиненной (дочерней). Информация в подчиненной таблицы зависит от данных главной таблицы. Атрибут связи в подчиненной таблице называется внешним ключом.
Данные в связанных таблицах должны удовлетворять следующим ограничениям целостности:
-
Каждой записи главной таблицы может соответствовать нуль или более записей подчиненной таблицы;
-
В подчиненной таблице не должно быть записей, которые не имеют родительской записи в главной таблице;
-
Каждой записи подчиненной таблицы может иметь только одну родительскую запись в главной таблице.
Эти ограничения определяют порядок выполнения операций ввода, удаления и обновления записей.
Перед заполнением таблиц следует определить между ними отношения порядка. К нулевому уровню относятся таблицы, в которых данные не зависят от данных в других таблицах. Это справочники. К первому уровню относятся таблицы, которые зависят только от нулевого уровня; ко второму – зависят от нулевого и первого и т.д. это определяет порядок заполнения таблиц. Сначала заполняют таблицы нулевого, потом – первого и т.д.