Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_BD.doc
Скачиваний:
57
Добавлен:
26.09.2019
Размер:
254.46 Кб
Скачать

20. Функциональные зависимости. Нормализация отношений. Нормальные формы.

Функциональная зависимость – это связь между двумя множествами атрибутов, выделенных в рамках модели предметной области. Обратите внимание на то, что при изучении основ функциональных зависимостей понятие отношения еще не используется!

Итак, пусть заданы множествo X = {X1, …, Xn}  P и атрибут Y  P. Будем говорить, что множество X функционально определяет атрибут Y, если по значениям любого возможного кортежа (x1, …, xn), где xi  Xi, можно однозначно определить значение атрибута Y. Это обозначается так: X  Y. Множество X будем называть детерминантом функциональной зависимости. По аналогии можно определить функциональную зависимость между множествами атрибутов.

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

-Если верны функциональные зависимости X  Y1, X  Y2, то верна и зависимость X  Y1Y2 (знак операции объединения здесь и в дальнейшем пропущен).

-Верно и обратное утверждение: X  Y1Y2  X  Y1, X  Y2.

-Для любого множества атрибутов Z  P из зависимости X  Y выводится зависимость XZ  YZ.

(следствие из утверждений 2 и 3). Для любого множества атрибутов Z  P из зависимости X  Y выводится зависимость XZ  Y.

-(транзитивность) X  Y, Y  Z  X  Z.

студент  {руководитель, рецензент, тема}

На основе понятия функциональных зависимостей можно переопределить понятие ключа отношения: пусть задано отношение R(A1, …, At). Ключом этого отношения назовем такое множество атрибутов A  {A1, …, At}, что A  A1…At, но ни для какого подмножества A  A утверждение A  A1…At несправедливо.

Нормализация отношений

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

(1НФ): отношение, находящееся в 1НФ, не имеет составных атрибутов.

Отношение находится во второй нормальной форме (2НФ), если оно находится в 1НФ и в нем нет неключевых атрибутов, функционально зависящих от части ключа.

Если отношение не находится во 2НФ, его необходимо разбить на несколько, выделяя неключевые атрибуты, зависящие от части ключа, в отдельные отношения вместе с соответствующими частями ключа исходного отношения.

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

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

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

Определение. Отношение находится в четвертой нормальной форме (4НФ), если в нем нет многозначных зависимостей.

Для перевода отношения в 4НФ достаточно, как и ранее, выполнить его декомпозицию на несколько отношений. В общем случае исходное отношение делится на два: R1 (A, B) и R2 (A, С).

В нашем конкретном примере имеют место многозначные зависимости К  А и К  М. Поэтому следует разбить исходное отношение на два:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]