Лекции и практики (1). Курс лекций и материалы для практических занятий
Скачать 1.01 Mb.
|
Третья нормальная форма (3НФ).Отношение находится в 3НФ, если оно находится во 2НФ и в нем отсут- ствуют транзитивные зависимости. Для отношения КНИГИ(табл. 9.3) атрибут Themeзависит от атрибута Code, а не от ключа (хотя название рубрики, естественно, соответствует её шифру). Поэтому для приведения отношения к 3НФ (табл. 9.5) нужно выделить из него ещё одно отношение РУБРИКАТОР(табл. 9.6). Таблица 9.5. Отношения КНИГИ, приведённые к 3НФ Табл. 9.6. Отношение
РУБРИКАТОР
Отношения, находящиеся в 3НФ, свободны от аномалий модификации. Но для табл. 9.5 можно ещё вынести в отдельную таблицу поле Тип, чтобы реа- лизовать ограничение на домен для этого поля. Таблица ТИПЫИЗДАНИЙбу- дет состоять из одного поля Названиетипа, определённого как первичный ключ. Тогда поле Типтаблицы КНИГИстанет внешним ключом. Примечание: если для атрибутов X,Y,Z есть транзитивная зависимость X Z, и при этом Y X или Z Y, то такая зависимость не требует декомпозиции отношения. Например, для отношения АВТОМОБИЛИс первичным ключом Государствен-ный номерной знаки полями № кузоваи № двигателяочевидно, что номера кузова и двигателя зависят как друг от друга, так и от первичного ключа. Но эта зависимость взаимно однозначная, поэтому декомпозиция отношения не нужна. Введём понятие многозначной зависимости. Многозначная зависимость существует, если заданным значениям атрибута X соответствует множество, состоящее из нуля (или более) значений атрибута Y. Если в отношении есть многозначные зависимости, то схема отношения должна находиться в 4НФ. Перефразируя вышесказанное, многозначная зависимость (X–»Y) имеет место, если по значению некоторого атрибута (Х) мы можем определить набор значений другого атрибута (Y). Например, зная название страны, мы можем определить названия всех соседних с нею стран. Различают тривиальные и нетривиальные многозначные зависимости. Тривиальной называется многозначная зависимость X–»Y, для которой Y X или X U Y = R, где R – рассматриваемое отношение. Тривиальная многознач- ная зависимость не нарушает 4НФ. Если хотя бы одно из двух этих условий не выполняется (т.е. Y не является подмножеством X или X U Y состоит не из всех атрибутов R), то такая многозначная зависимость называется нетривиальной. |