Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Управл_данными / 06-Норм_Формы

.pdf
Скачиваний:
16
Добавлен:
03.06.2015
Размер:
956.19 Кб
Скачать

В нашем примере транзитивные зависимости от ключа есть в таблице R2

R2

ФИО

Должн

Оклад

Стаж

Д_Стаж

Каф

 

 

 

 

Оклад

Иванов И.И.

Преп

500

5

100

5

 

 

Должн

 

 

Петров П.П.

ст.преп

800

7

100

5

ФИО

 

 

 

Сидоров С.С.

Преп

500

10

150

5

 

 

 

 

 

 

 

Стаж

 

Д_Стаж

 

 

 

 

 

 

 

 

 

Егоров В.В.

Преп

500

5

100

4

 

 

 

 

 

 

 

 

 

 

 

 

Каф

 

 

 

 

 

 

 

 

 

 

 

 

Это означает, что таблица R2 не соответствует 3НФ

11

Разложение таблицы R2 на три новые: R3,R4,R5

12

На практике построение 3НФ схем отношений в большинстве случаев является достаточным. И на этом процесс нормализации заканчивается.

Так, в нашем примере, приведение к 3НФ позволило полностью удалить избыточное дублирование.

В теории существуют нормальные формы более высокого порядка :

- усиленная 3НФ или нормальная форма Бойса-Кодда (БКНФ)

- 4НФ

- 5НФ

Смысл их в том, чтобы устранить зависимости полей составного ключа от неключевых атрибутов (БКНФ); многозначные зависимости (4НФ) и зависимости соединений (5НФ).

13

Нормальная форма Бойса - Кодда (БКНФ или НФБК)

Другое название – усиленная 3НФ.

Определение для 3НФ было дано для упрощенной ситуации с допущением того, что отношение имеет только один потенциальный ключ, который, естественно, и является первичным ключом.

В более общем случае, возможна ситуация, когда:

1)Отношение имеет два (или более) потенциальных ключа.

2)Два потенциальных ключа являются составными.

3)Два потенциальных ключа перекрываются, т.е. имеют, по крайней мере один общий атрибут.

Такое сочетание указанных трех условий не часто встречается на практике, и для таблиц, в которых они не наблюдаются 3НФ и НФБК эквивалентны.

Отношение находится в НФБК в том и только в том случае, если оно находится в 3НФ и нет зависимости полей составного ключа от неключевых атрибутов.

14

Пример для БКНФ

Допустим, что при проектировании БД поставщики товаров рассматривается таблица:

Допустим также, что значения атрибута Имя_поставщ уникальны и могут быть использованы наряду с атрибутом ID_поставщ для идентификации поставщика.

В такой ситуации можно выделить два составных потенциальных ключа:

1)(ID_поставщ , ID_товара);

2)(Имя_поставщ , ID_товара)

В рассматриваемом отношении есть два атрибута ID_поставщ и Имя_поставщ , которые идентифицируют один и тот же объект, а значит, они определяют друг друга.

Т.е. есть зависимость ID_поставщ -->Имя_поставщ

15

Эта ситуация противоречит определению БКНФ, и следовательно, данное отношение не находится в БКНФ со всеми вытекающими негативными последствиями: избыточностью данных и аномалиями обновления.

Поскольку поставщик осуществляет неоднократные поставки, то изменение его имени приведет к необходимости во избежание несогласованности БД отыскать все кортежи, к нему относящиеся, и внести в них изменения.

Для приведения данной таблицы в БКНФ необходимо ее разделить на две таблицы:

Четвертая и Пятая нормальные формы

4НФ и 5НФ имеют дело с составными ключами, причем количество ключевых атрибутов не менее трех. Не ключевые атрибуты отсутствуют.

Такие отношения служат для связи между тремя другими отношениями.

4НФ устраняет многозначные зависимости.

5НФ устраняет зависимости соединений.

4НФ достигается путем декомпозиции исходного отношения на два.

5НФ достигается путем декомпозиции исходного отношения на три новых отношения.

На практике, обычно ограничиваются 3НФ или НФБК.

17

4НФ

– четвертая нормальная форма

Отношение находится в 4НФ, если оно находится в НФБК и не содержит нетривиальных многозначных зависимостей.

То есть все многозначные зависимости являются, по сути, функциональными зависимостями от ключей отношения.

Другими словами :

3НФ – зависимость неключевых атрибутов

БКНФ – зависимость неключевого от ключевого атрибута

4НФ – зависимости внутри ключа

18

Пример для 4НФ

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

Такая таблица не соответствует 4НФ, так как существует многозначная зависимость:

Ресторан Вид пиццы и Ресторан Район доставки

 

Например, при добавлении нового вида пиццы придется внести по одной новой записи для каждого района доставки. Возможна логическая аномалия, при которой определенному виду пиццы будут соответствовать лишь некоторые районы доставки из обслуживаемых рестораном районов.

19

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

В данном примере –

{Ресторан, Вид пиццы} и {Ресторан, Район доставки}.

20

Соседние файлы в папке Управл_данными