Управл_данными / 05-Даталогическое
.pdfФункциональные зависимости
Функциональная зависимость определяется для атрибутов , находящихся в одной и той же таблице.
Атрибут a2 функционально зависит от атрибута a1, если каждому значению a1 соответствует единственное значение a2.
Обозначается подобная ситуация так:
a1 a2
Левая часть функциональной зависимости называется детерминантом, а правая часть – зависимой частью.
21
Пример зависимостей
N_Комнаты Сотрудник
N_Комнаты Телефон
Сотрудник Телефон
22
Нормализация и Нормальные формы
Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации.
Теория нормализации является очень ценным достижением реляционной теории и практики, поскольку она даёт научно строгие и обоснованные
критерии качества проекта БД
и формальные методы для усовершенствования этого качества.
23
Проектирование БД путем декомпозиции исходной таблицы
Рассмотрим один из подходов к проектированию реляционной БД, который является классическим и исторически первым.
Он заключается в сборе информации об объектах решаемой задачи в рамках одной исходной таблицы и последующей декомпозиции, т.е. разбиение ее на несколько взаимосвязанных таблиц.
24
Исходная ненормализованная таблица
|
|
|
Преподаватели |
|
|
|
|
|
ФИО |
Должн |
Оклад |
Стаж |
Д_Стаж |
Каф |
Предм Группа |
ВидЗан |
|
Иванов И.И. |
Преп |
500 |
5 |
100 |
5 |
БД |
1 |
Практ, |
|
|
|
|
|
|
|
|
Лекц |
Иванов И.И. |
Преп |
500 |
5 |
100 |
5 |
Инф |
1 |
Практ |
Петров П.П. |
ст.преп |
800 |
7 |
100 |
5 |
БД |
2 |
Лекц |
Петров П.П. |
ст.преп |
800 |
7 |
100 |
5 |
ГИС |
2 |
Практ |
Сидоров С.С. |
Преп |
500 |
10 |
150 |
5 |
Инф |
1 |
Лекц |
Сидоров С.С. |
Преп |
500 |
10 |
150 |
5 |
ГИС |
2 |
Лекц |
Егоров В.В. |
Преп |
500 |
5 |
100 |
4 |
Матем |
1 |
Лекц |
Составной ключ из трех полей: ФИО + Предм + Группа
Исходная таблица содержит избыточное дублирование, которое является причиной аномалий редактирования.
25
Выявление зависимостей
ФИО --> Оклад |
ФИО --> Должн |
ФИО --> Д_Стаж |
ФИО --> Каф |
Стаж --> Д_Стаж |
Должн --> Оклад |
Оклад --> Должн |
ФИО.Предм.Группа --> ВидЗан |
Ключом для таблицы “Преподаватели” является сочетание трех атрибутов: ФИО, Предм и Группа, т.к. мы предполагаем, что каждый преподаватель в одной группе по одному предмету может либо читать лекции, либо проводить практические занятия.
26
Наряду с полной зависимостью от ключа (ФИО.Предм.Группа --> ВидЗан), существует несколько частичных зависимостей, в которых атрибуты Оклад, Должн, и др. находятся в функциональной связи с атрибутом ФИО, являющимся частью ключа.
Эта частичная зависимость от ключа приводит к избыточному дублированию , а значит и к аномалиям.
Кроме того, есть две транзитивные зависимости
ФИО --> Должн --> Оклад и ФИО --> Стаж --> Д_Стаж
Устранение избыточностей производится в несколько этапов путем последовательного перевода таблиц в нормальные формы более высокого порядка.
27