Практические задания - Нормальные формы отношений - файл n1.doc

Практические задания - Нормальные формы отношений
скачать (855.5 kb.)
Доступные файлы (1):
n1.doc856kb.04.12.2012 03:09скачать

n1.doc

Нормальные формы отношений

Методические указания

Нормальные формы отношений - это отношения с дополни­тельно соблюдаемыми ограничениями. Нормальные формы ну­меруются, и чем больше номер нормальной формы, тем больше ограничений должно соблюдаться.

Нормализованный файл соответствует определению отноше­ния в первой нормальной форме (1НФ).

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

Неполная функциональная зависимость - это две зависимости:

• вероятный ключ отношения функционально определяет не­который неключевой реквизит;

• часть вероятного ключа функционально определяет этот же неключевой реквизит.

Отношение, не соответствующее 2НФ, характеризуется избы­точностью хранимых данных. В качестве примера рассмотрим функциональные зависимости отношения ТТ(Магазин, Изделие, Цена, План_текущего_года):

1) Магазин, Изделие —> План_текущего„года;

2) Изделие --> Цена.

Вероятным ключом в ТТ являются реквизиты Магазин, Изделие. Для доказательства можно сослаться на функциональные зависимости:

Магазин, Изделие —> План_ текущего_года;

3) Магазин, Изделие —> Цена (теорема 4)

4) Магазин, Изделие —> Магазин (теорема 1)

5) Магазин, Изделие —> Изделие (теорема 1)

Зависимости 3) и 2) образуют неполную функциональную за­висимость, по этой причине отношение ТТ находится лишь в 1НФ, а не в 2НФ.

Избыточность иллюстрируется тем фактом, что цена изделия указывается столько раз, сколько магазинов продают это изде­лие. Переход к 2НФ и соответственно устранение отмеченной из­быточности данных связано с созданием двух отношений вместо исходного отношения ТТ

ТТ1=ТТ[Магазин, Изделие, План_ текущего_года],

ТТ2=ТТ[Изделие, Цена].

Ключом в ТТ1 служат реквизиты Магазин, Изделие, в TT2 -Изделие, и легко определить, что оба отношения соответствуют требованиям 2НФ.

База данных находится в 2НФ, если все ее отношения находятся в 2НФ.

Отношение соответствует ЗНФ, если оно соответствует 2НФ и среди его реквизитов отсутствуют транзитивные функциональ­ные зависимости (ФЗ). Транзитивная ФЗ - это две ФЗ:

• вероятный ключ отношения функционально определяет неключевой реквизит;

• этот реквизит функционально определяет другой неключевой реквизит.

Если К - ключ отношения, А, В - неключевые реквизиты и справедливы ФЗ К—> А,А В, то они являются транзитивными. Частный случай транзитивной ФЗ - неполная ФЗ, когда К = С,Е, K E, E A.

Рассмотрим, например, функциональные зависимости отно­шения P(ФИО, Группа, Факультет)

6) ФИО  Группа.

7) Группа  Факультет.

8) ФИО  Факультет.

Ключ отношения Р - ФИО. Зависимости 6) и 7) образуют тран­зитивную ФЗ, поэтому Р находится в 2НФ, а не в ЗНФ.

Избыточность данных в Р связана с тем, что принадлежность группы к факультету указывается столько раз, сколько студен­тов обучается в этой группе.

Переход от Р к отношениям в ЗНФ дает следующие резуль­таты:

Р1=Р[ФИО,Группа]

Р2=Р[Группа,Факультет].

Отношения Р1, Р2 получились двухреквизитными, поэтому нарушение требований ЗНФ в них невозможно.

База данных находится в ЗНФ, если все ее отношения находятся в ЗНФ.

Приведенные примеры показывают, что отношения, в которых соблюдается одна ФЗ либо ни одной, будут соответствовать условиям 2НФ и ЗНФ, так как неполная и транзитивная ФЗ пред­ставляют собой две зависимости. На этом принципе основан ал­горитм получения отношений в ЗНФ.

Исходными данными для алгоритма служит некоторый спи­сок реквизитов, охватывающий одно отношение, базу данных или ее часть. В любом случае предполагается (хотя бы теоретически) наличие одного отношения с заданным списком реквизитов. В противном случае нельзя применять некоторые теоремы о функ­циональных зависимостях и нельзя гарантировать, что одна и та же ФЗ, например, А —> В, справедливая в двух различных отно­шениях R и S, соответствует равным отношениям R[A,B] и S[A,B]. Алгоритм получения отношений в ЗНФ обладает следующи­ми свойствами:

• сохраняет все первоначальные функциональные зависимос­ти, т.е. зависимость, справедливая в R, справедлива и в одном из производных отношений. Это гарантирует получение осмыслен­ных отношений с легко интерпретируемой структурой;

• обеспечивает соединение без потерь, т.е. значения исходно­го отношения R могут быть восстановлены из проекций отноше­ния R с помощью операции соединения;

• результат декомпозиции в ЗНФ обычно содержит меньше значений реквизитов, чем исходное отношение R (происходит уменьшение избыточности).
Алгоритм нормализации к ЗНФ

Исходные данные - множество всех реквизитов базы данных.

Метод - создание отношений, в которых соблюдается одна функциональная зависимость либо ни одной.

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

Шаг 1. Получить исходное множество функциональных за­висимостей для реквизитов рассматриваемой базы данных.

Если исходные функциональные зависимости не удается оп­ределить путем анализа содержательных ролей реквизитов, при­ходится использовать перечисление и отбраковку допустимых ва­риантов функциональных зависимостей.

Для этого рассматриваются все сочетания по два реквизита и в каждом случае доказывается или отвергается функциональная зависимость. Затем рассматриваются сочетания:

• по три реквизита, где первые два могут функционально оп­ределять третий;

• по четыре реквизита, где первые три могут функционально определять четвертый и т.д.

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

Шаг 2. Получить минимальное покрытие множества функ­циональных зависимостей. В минимальном покрытии должны от­сутствовать зависимости, которые являются следствием остав­шихся зависимостей по теоремам Т1 - Т6. В частности, требуется объединить функциональные зависимости с одинаковой левой частью в одну зависимость. Обозначим полученное минималь­ное покрытие функциональных зависимостей через F = {f1,..., fi,…,fk}.

Шаг 3. Определить первичный ключ отношения.

Ш а г 4. Для каждой функциональной зависимости fi создать проекцию исходного отношения Ri = R[Xi], где Xi - объединение реквизитов из левой и правой частей fi.

Шаг 5. Если первичный ключ исходного отношения не во­шел полностью ни в одну проекцию, полученную на шаге 4, не­обходимо создать отдельное отношение из реквизитов ключа.

Для практического применения алгоритма нормализации до ЗНФ необходимо решить два вопроса:

• как учесть наличие взаимно-однозначных соответствий?

• как сократить объем перебора вариантов при первоначаль­ном определении множества функциональных зависимостей?

Для взаимно-однозначных соответствий принято выделение старшего (по объему представляемого понятия) реквизита, кото­рый затем представляет все реквизиты взаимно-однозначного со­ответствия.

Для ускорения шага 1 алгоритма нормализации не рассмат­риваются такие зависимости, которые являются следствием уже найденных зависимостей и теорем Т1-Т6, и используется ряд за­кономерностей об отсутствии функциональных зависимостей. Среди них теорема:



и правило, согласно которому функциональные зависимости с реквизитом-основанием в левой части не требуется рассматри­вать (в противном случае алгоритм станет создавать отношения, состоящие только из реквизитов-оснований, не имеющие эконо­мического смысла).


Задание. Примените алгоритм получения отношений в ЗНФ, если ЗНФ не соблюдается. Постройте реализацию получен­ных отношений средствами СУБД. Проверьте, выполняется ли свойство соединения без потерь.

1.


2.

3.



Учебный материал
© bib.convdocs.org
При копировании укажите ссылку.
обратиться к администрации