- •Введение
- •Лабораторная работа № 1
- •Единиц информации
- •Задание
- •Лабораторная работа № 2
- •Реляционная модель данных
- •Функциональные зависимости и ключи
- •Вторая и третья нормальные формы
- •Ациклическая база данных
- •Доступ к реляционной базе данных
- •Библиографический список
- •390005, Рязань, ул. Гагарина, 59/1.
Вторая и третья нормальные формы
Отношение имеет вторую нормальную форму (2НФ), если оно соответствует 1НФ и не содержит неполных ФЗ.
Неполная ФЗ – это две зависимости:
вероятный ключ отношения функционально определяет некоторый неключевой атрибут;
часть вероятного ключа функционально определяет этот же неключевой атрибут.
Отношение, не соответствующее 2НФ, характеризуется избыточностью хранимых данных, которая может быть устранена разбиением исходного отношения на несколько новых.
База данных находится в 2НФ, если все ее отношения находятся в 2НФ.
Пусть дано отношение :
|
|||
Завод |
Изделие |
Цена |
План |
Луч |
Ч-15 |
80 |
2000 |
Луч |
Ч-17 |
75 |
1000 |
Чайка |
Ч-15 |
80 |
3000 |
Чайка |
Ч-20 |
70 |
1000 |
Вероятный ключ отношения является двухатрибутным:
.
В этом отношении имеются следующие функциональные зависимости:
; (1)
; (2)
; (3)
; (4)
. (5)
В отношении имеет место избыточность информации, т.к. цена указана столько раз, сколько заводов производят некоторое изделие.
Функциональные зависимости вида (3) и (2) образуют неполную функциональную зависимость.
Для приведения отношения к 2НФ необходимо разбить его на два новых отношения:
и
.
Отношения
и
соответствуют 2НФ, поскольку первое
отношение содержит двухатрибутный
ключ, а второе содержит только два
атрибута, между которыми существует
единственная функциональная зависимость.
Ниже приведены отношения и :
|
||
Завод |
Изделие |
План |
Луч |
Ч-15 |
2000 |
Луч |
Ч-17 |
1000 |
Чайка |
Ч-15 |
3000 |
Чайка |
Ч-20 |
1000 |
|
|
Изделие |
Цена |
Ч-15 |
80 |
Ч-17 |
75 |
Ч-20 |
70 |
Отношение соответствует третьей нормальной форме, если оно имеет 2НФ и среди его атрибутов отсутствуют транзитивные ФЗ.
Транзитивная ФЗ – это две зависимости:
вероятный ключ отношения функционально определяет неключевой атрибут;
этот неключевой атрибут функционально определяет другой неключевой атрибут.
База данных находится в 3НФ, если все ее отношения находятся в 3НФ.
Пусть дано отношение :
|
||
ФИО |
Группа |
Факультет |
Гришин Б.С. |
844 |
ВТ |
Милорадов В.Д. |
844 |
ВТ |
Князев Е.Е. |
717 |
РТ |
Рожкова А.Н. |
717 |
РТ |
Вероятным ключом отношения является атрибут ФИО.
.
В этом отношении имеются следующие функциональные зависимости:
; (6)
; (7)
; (8)
В отношении имеет место избыточность информации, т.к. принадлежность группы к факультету указана столько раз, сколько студентов в группе.
Функциональные зависимости вида (6) и (7) образуют транзитивную функциональную зависимость.
Для приведения отношения к 3НФ необходимо разбить его на два новых отношения:
и
.
Ниже приведены отношения и :
|
|
ФИО |
Группа |
Гришин Б.С. |
844 |
Милорадов В.Д. |
844 |
Князев Е.Е. |
717 |
Рожкова А.Н. |
717 |
|
|
Группа |
Факультет |
844 |
ВТ |
717 |
РТ |
Отношения и соответствуют 3НФ, т.к. отношения, в которых имеется либо одна функциональная зависимость, либо ни одной, соответствуют 3НФ, т.к. неполная ФЗ и транзитивная ФЗ предполагают существование двух функциональных зависимостей.
Алгоритм приведения БД к 3НФ сохраняет первоначальные ФЗ, обеспечивает соединение без потерь, а результат декомпозиции в 3НФ обычно содержит меньше значений атрибутов, чем исходное отношение.
Алгоритм приведения БД к 3НФ содержит следующие действия.
1. Получить исходное множество ФЗ для атрибутов рассматриваемой БД.
Для определения ФЗ можно использовать перечисление и отбраковку допустимых вариантов ФЗ. При этом рассматриваются сочетания:
по два атрибута;
по три атрибута, где первые два функционально определяют третий;
по четыре атрибута, где первые три функционально определяют четвертый, и т.д.
Перечисление вариантов заканчивается, как только сочетания атрибутов станут содержать первичный ключ.
Если в исходных
отношениях имеется
различных
атрибутов и первичный ключ содержит
атрибутов,
то требуется
проверок зависимостей, где
– число сочетаний из
по
.
2. Получить минимальное покрытие множества ФЗ, в котором должны отсутствовать ФЗ, являющиеся следствием оставшихся ФЗ. ФЗ с одинаковой левой частью должны быть объединены в одну ФЗ.
Обозначим минимальное
покрытие ФЗ через
.
3. Для каждой ФЗ
,
полученной на шаге 2, создать проекцию
исходного отношения
,
где
– объединение атрибутов из левой и
правой частей
.
4. Если первичный ключ исходного отношения не вошел полностью ни в одну проекцию, то создать отдельное отношение из атрибутов ключа.
Для взаимно однозначных соответствий принято выделение старшего атрибута, который затем представляет все атрибуты взаимно однозначного соответствия.
В качестве примера рассмотрим отношение со сведениями о научно-исследовательских работах. Список атрибутов отношения приведен в таблице.
Для атрибутов НИИ, ДИРЕКТОР, АДРЕС существует взаимно однозначное соответствие.
В качестве атрибута-представителя выберем НИИ.
Таблица. Список атрибутов
№ п/п |
Наименование атрибута |
Идентификатор |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Название НИИ Директор НИИ Адрес НИИ Код отдела Число сотрудников в отделе Код темы НИР Дата начала темы Дата окончания темы Приоритет темы Заказчик темы Объем финансирования темы Код работы в теме Продолжительность работы ФИО исполнителя работы |
НИИ ДИРЕКТОР АДРЕС ОТДЕЛ КСОТР ТЕМА ДАТАНАЧ ДАТАКОН ПРИОР ЗАКАЗ ОБФИН РАБОТА ПРОД ФИО |
Список ФЗ имеет вид:
ОТДЕЛ → НИИ
ОТДЕЛ → ДИРЕКТОР
ОТДЕЛ → КСОТР
ТЕМА → ДАТАНАЧ
ТЕМА → ДАТАКОН
ТЕМА → ПРИОР
ФИО → НИИ
ФИО → ДИРЕКТОР
ФИО → ОТДЕЛ
ТЕМА, ЗАКАЗ → ОБФИН
ТЕМА, РАБОТА, ФИО → ПРОД
Структура реляционной БД имеет вид:
R1(НИИ, ДИРЕКТОР, АДРЕС)
R2(НИИ, ОТДЕЛ, КСОТР)
R3(ТЕМА, ДАТАНАЧ,ДАТАКОН, ПРИОР)
R4(ФИО, ОТДЕЛ)
R5(ТЕМА, ЗАКАЗ, ОБФИН)
R6 (ТЕМА, РАБОТА, ФИО, ПРОД)
R7(ТЕМА, ЗАКАЗ, РАБОТА, ФИО)
Последнее отношение содержит ключ для исходного множества атрибутов, а остальные отношения построены на основе зависимостей из минимального покрытия.
