Физическая организация данных
Скачать 487.44 Kb.
|
Таблица 8.4. Отношение КНИГИ-АВТОРЫ-РЕДАКТОРЫ (2НФ)
Отношение во 2НФ является менее избыточным, чем в 1НФ, но оно также не свободно от аномалий. Например, при удалении книги Попова «Общение с ЭВМ на естественном языке» мы потеряем информацию о том, что есть рубрика «Кибернетика» с кодом 32.81. И внести сведения о новой рубрике нельзя, пока в списке книг не появится хотя бы одна книга по этой рубрике. Теперь рассмотрим понятие транзитивной зависимости. Пусть X, Y, Z - атрибуты некоторого отношения. При этом X^Y и Y^Z, но обратное соответствие отсутствует, т.е. Z не зависит от Y или Y не зависит от X. Тогда говорят, что Z транзитивно зависит от X (X^^Z). Третья нормальная форма (3НФ). Отношение находится в 3НФ, если оно находится во 2НФ и в нем отсутствуют транзитивные зависимости. Для отношения КНИГИ (табл. 8.3) атрибут Theme зависит от атрибута Code, а не от ключа (хотя название рубрики, естественно, соответствует её шифру). Поэтому для приведения отношения к 3НФ (табл. 8.5) нужно выделить из него ещё одно отношение РУБРИКАТОР (табл. 8.6).
Отношения, находящиеся в 3НФ, свободны от аномалий модификации. Но для табл. 8.5 можно ещё вынести в отдельную таблицу поле Тип, чтобы реализовать ограничение на домен для этого поля. Таблица ТИПЫ ИЗДАНИЙ будет состоять из одного поля Название типа, определённого как первичный ключ. Тогда поле Тип таблицы КНИГИ станет внешним ключом. Примечание: если для атрибутов X,Y,Z есть транзитивная зависимость X Z, и при этом Y ^ X или Z ^ Y, то такая зависимость не требует декомпозиции отношения. Например, для отношения АВТОМОБИЛИ с первичным ключом Государственный номерной знак и полями № кузова и № двигателя очевидно, что номера кузова и двигателя зависят как друг от друга, так и от первичного ключа. Но эта зависимость взаимно однозначная, поэтому декомпозиции отношения не нужна. Введём понятие многозначной зависимости. Многозначная зависимость существует, если заданным значениям атрибута X соответствует множество, состоящее из нуля (или более) значений атрибута Y. Если в отношении есть многозначные зависимости, то схема отношения должна находиться в 4НФ. Перефразируя вышесказанное, многозначная зависимость (X-»Y) имеет место, если по значению некоторого атрибута (X) мы можем определить набор значений другого атрибута (Y). Например, зная название страны, мы можем определить названия всех соседних с нею стран. Различают тривиальные и нетривиальные многозначные зависимости. Тривиальной называется многозначная зависимость X-»Y, для которой Y d X или X U Y = R, где R - рассматриваемое отношение. Тривиальная многозначная зависимость не нарушает 4НФ. Если хотя бы одно из двух этих условий не выполняется (т.е. Y не является подмножеством X или X U Y состоит не из всех атрибутов R), то такая многозначная зависимость называется нетривиальной. Четвертая нормальная форма (4НФ). Отношение находится в 4НФ, если оно находится в 3НФ и в нем отсутствуют нетривиальные многозначные зависимости. Отрицательный момент в нарушении 4НФ заключается в том, что в одно отношение включаются независящие друг от друга атрибуты. Например, у книги «Язык программирования СИ» (табл. 8.1) два автора и два редактора, но это не значит, что редактор Садчиков редактировал автора Бочкова, а редактор Седов - автора Субботина. А если у книги нет автора или редактора, то соответствующие поля останутся пустыми (null). Т.е. в отношении КНИГИ-АВТОРЫ-РЕДАКТОРЫ (табл. 8.4) атрибуты Author и Editor образуют две многозначные зависимости от ключа, и при этом значения этих атрибутов не зависят друг от друга. Поэтому для приведения отношения к 4НФ нужно разбить его на два отношения КНИГИ-АВТОРЫ и КНИГИ-РЕДАКТОРЫ (табл. 8.7, 8.8).
|