Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных лекции.doc
Скачиваний:
6
Добавлен:
05.12.2018
Размер:
592.9 Кб
Скачать

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

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

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

Пример.

Пусть задан следующий отчет:

Страница 1 Отчет о проверке проведения работ 01.02.03

на объекте

Объект: PG4

Адрес: Коломна

Дата проверки

Время проверки

Комментарий

Шифр проверяющего

Ф.И.О.

Транспорт

05.01.03

10:00

Замечаний нет

SG37

Петров

М251

21.01.03

9:00

Замечаний нет

SG14

Сидоров

М523

22.01.03

12:00

Отставание от графика

SG14

Сидоров

М721

Страница 2 Отчет о проверке проведения работ 01.02.03

на объекте

Объект: PG16

Адрес: Ногинск

Дата проверки

Время проверки

Комментарий

Шифр проверяющего

Ф.И.О.

Транспорт

08.01.03

11:00

Замечаний нет

SG37

Петров

М251

20.01.03

14:00

Заменить трубы

SG14

Сидоров

М523

На основе этого отчета можем построить ненормализованную таблицу «Проверка»:

объекта

Адрес

ПДата

ПВремя

Коммент.

Сл.

ФИО

Транс.

PG4

Коломна

05.01.03

10:00

Замечаний нет

SG37

Петров

М251

21.01.03

9:00

Замечаний нет

SG14

Сидоров

М523

22.01.03

12:00

Отставание от графика

SG14

Сидоров

М721

PG16

Ногинск

08.01.03

11:00

Замечаний нет

SG37

Петров

М251

20.01.03

14:00

Заменить трубы

SG14

Сидоров

М523

Для получения первой нормальной формы воспользуемся выравниванием таблицы.

объекта

Адрес

ПДата

ПВремя

Коммент.

Сл.

ФИО

Транс.

PG4

Коломна

05.01.03

10:00

Замечаний нет

SG37

Петров

М251

PG4

Коломна

21.01.03

9:00

Замечаний нет

SG14

Сидоров

М523

PG4

Коломна

22.01.03

12:00

Отставание от графика

SG14

Сидоров

М721

PG16

Ногинск

08.01.03

11:00

Замечаний нет

SG37

Петров

М251

PG16

Ногинск

20.01.03

14:00

Заменить трубы

SG14

Сидоров

М523

Отношение «Проверка» имеет три потенциальных ключа (№ объекта, ПДата), (№ Сл., ПДата, ПВремя), (Транс., Пдата, Пвремя). В качестве первичного ключа выберем (№ объекта, Пдата). Отношение «Проверка» определим следующим образом:

Проверка(№ объекта, Пдата, Пвремя, Адрес, Коммент, № Сл., ФИО, Транс).

Построим функциональные зависимости:

Fd1: № объекта, Пдата  Пвремя, Адрес, Коммент, № Сл., ФИО, Транс (Первичный ключ).

Fd2: № объекта  Адрес (Частичная зависимость).

Fd3: № сл  ФИО (Транзитивная зависимость)

Fd4: № сл, Пдата  Транс

Fd5: Транс, Пдата, Пвремя  № объекта, Адрес, Коммент, № Сл, ФИО (Потенциальный ключ).

Fd6: № сл, Пдата, Пвремя  № объекта, Адрес, Коммент, ФИО (Потенциальный ключ)

Это же можно представить в виде диаграммы:

Отношение «Проверка» может быть преобразовано во вторую НФ путем удаления частичной зависимости из этого отношения путем создания двух новых отношений «Объект» и «Проверка1».

Объект(№ объекта, Адрес)

Проверка1(№ объекта, Пдата, Пвремя, Коммент, № Сл., ФИО, Транс).

Теперь проанализируем полученные отношения.

Отношение «Объект»:

№ объекта  Адрес

Отношение «Проверка1»:

Fd1*: № объекта, Пдата  Пвремя, Коммент, № Сл., ФИО, Транс

Fd3: № сл  ФИО

Fd4: № сл, Пдата  Транс

Fd5*: Транс, Пдата, Пвремя  № объекта, Коммент, № Сл, ФИО

Fd6*: № сл, Пдата, Пвремя  № объекта, Коммент, ФИО

Отношение «Объект» не содержит транзитивных зависимостей, следовательно, находится в третьей нормальной форме.

В отношении «Проверка1» есть транзитивная зависимость:

№ объекта, Пдата  № Сл  ФИО.

Транзитивная зависимость удаляется преобразованием отношения «Проверка1» в два отношения «Служащий» и «Проверка2».

Служащий(№ Сл, ФИО)

Проверка2(№ объекта, Пдата, Пвремя, Коммент, № Сл, Транс)

Проанализируем отношение «Проверка2».

Fd1**: № объекта, Пдата  Пвремя, Коммент, № Сл., Транс

Fd4: № сл, Пдата  Транс

Fd5**: Транс, Пдата, Пвремя  № объекта, Коммент, № Сл

Fd6*: № сл, Пдата, Пвремя  № объекта, Коммент

В отношении содержится детерминант № Сл, Пдата, который не является потенциальным ключом. Поэтому это отношение может страдать от аномалии обновления. Отношение «Проверка2» не находится в НФБК. Для его преобразования его в НФБК его надо разбить на два новых отношения:

Транспорт_для_сотрудника(№ сл, Пдата, Транс)

Инспекция(№ объекта, Пдата, Пвремя, Коммент, № Сл).

Схема декомпозиции будет выглядеть:

Результирующие отношения имеют вид:

Объект(№ объекта, Адрес)

Служащий(№ Сл, ФИО)

Транспорт_для_сотрудника(№ сл, Пдата, Транс)

Инспекция(№ объекта, Пдата, Пвремя, Коммент, № Сл).

4 НФ

НФБК позволяют устранить аномалии, вызываемые функциональными зависимостями. Однако, проблемы, связанные с избыточностью данных, могут вызывать многозначные зависимости. Рассмотрим отношение Подразделение_Служащий_Клиент, в котором содержатся имена сотрудников, взаимодействующие с клиентами некоторого отдела.

Отдел

Служащий

Клиент

Библиотека

Петров

Николаев

Библиотека

Сидоров

Николаев

Библиотека

Петров

Викторов

Библиотека

Сидоров

Викторов

В этом примере в библиотеке два сотрудника, которые обслуживают двух клиентов. Поскольку между сотрудниками и клиентами нет связи, необходимо создать строку для каждой комбинации. В данном примере существует многозначная зависимость, так как в нем содержится две независимые связи 1 : n.

В случае многозначной зависимости, существующей между атрибутами A, B, C некоторого отношения, для каждого значения A имеется набор значений атрибута B и набор значений атрибута C. Однако, входящие в этот набор значения атрибутов B, C не зависят друг от друга. .

Многозначная зависимость AB некоторого отношения R определяется как тривиальная, если атрибут B является подмножеством атрибута A или В противном случае зависимость нетривиальная.

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

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

5 НФ

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

5 НФ – отношение без зависимостей соединения.