|
|
|||||||||||||||||||||||||||||
|
Нормализация отношений (документация)Источник: info-system
С проектированием базы данных непосредственно связано понятие нормализации. Отношение называется нормализованным, если значение каждого атрибута в каждом кортеже является атомарным (неделимым). В реляционной модели данных поддерживаются только нормализованные отношения по следующим причинам:
Е. Кодд первоначально определил три уровня нормализации, которые он назвал первой, второй и третьей нормальными формами. Все нормализованные отношения находятся в первой нормальной форме (1НФ). Некоторые отношения 1НФ находятся также во второй нормальной форме (2НФ), некоторые отношения 2НФ находятся в третьей нормальной форме (ЗНФ). Р.Фейгин определил четвертую нормальную форму (4НФ), в которой находятся некоторые отношения ЗНФ. Имеется механизм, позволяющий любое отношение преобразовать к четвертой нормальной форме. В процессе таких преобразований могут выделяться новые отношения. Первая нормальная формаОпределение. Отношение R находится в 1НФ тогда и только тогда, когда все входящие в него значения (домены) содержат только атомарные значения. Это значит, что любое нормализованное отношение находится в 1 НФ. Функциональная зависимость. Пусть X и Y - два атрибута некоторого отношения. Говорят, что Y функционально зависит от X, если в любой момент времени каждому значению Х соответствует не более одного значения атрибута Y. Функциональную зависимость обозначают так X - > У. Возьмем отношение студент S (Ns, Fio, Ngr, Addr, Tel), определенное в. В этом отношении каждый из атрибутов Fio, Ngr, Addr, Tel функционально зависит от атрибута Ns. Можно представить функциональные зависимости в виде диаграммы - рис. 2. Выявление функциональных зависимостей является существенной частью понимания семантики данных. В отношении S_P (Ns, Np, Ball), определенном в , атрибут Ball функционально зависит от совокупности атрибутов Ns, Np (диаграмма представлена на рис. 3). Итак, в нормализованном отношении все неключевые атрибуты функционально зависят от ключа отношения. Ключом отношения S является атрибут Ns, ключом отношения S_P является совокупность атрибутов Ns, Np - составной ключ.
Неключевой атрибут функционально полно зависит от составного ключа, если он функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа. Вторая нормальная формаОтношение, которое находится только в 1НФ, имеет структуру, нежелательную по многим причинам. Предположим, что имеем отношение, содержащее информацию о студенте и его оценках: STUD (Ns, Flo, Ngr,Addr, Tel, Np, Ball) Отношение STUD находится в 1НФ. Но атрибуты Flo, Ngr, Addr, Tel нe находятся в полной функциональной зависимости от ключа отношения, так как они функционально зависят от части ключа - Ns. Это приводит к следующей нежелательной ситуации. Во-первых, имеет место дублирование информации. Во-вторых, информация о студенте появится только тогда, когда он получит оценку хотя бы по одному предмету. Определение. Отношение находится во 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от составного ключа. Чтобы отношение STUD привести ко 2НФ, необходимо: * построить его проекцию, исключив атрибуты, которые не находятся в полной функциональной зависимости от составного ключа; В нашем случае отношение STUD преобразуется последовательно в отношение S_P и в отношение S. Отношения S, S_P находятся во 2НФ. Транзитивная зависимость. Пусть X, Y, Z- атрибуты отношения R и Х ~> Y , Y-> Z, но обратное соответствие отсутствует. Тогда говорят, что Z транвитивно зависит от X. Построим отношение SS(Ns,Flo,Ngr,Spec,Addr,Tel), где Spec - специавьнооть, которая определяется конкретной группой. В этом отношении атрибут Spec транзитивно зависит от Ns. Эта транзитивность приводит к трудности выполнения операций запоминания (редактировавия). Информация о специальности будет храниться только тогда, когда в соответствупцей группе будет хотя 6ы один студент. Кроме того, значение атрибута Spec дублируется для всех студентов одной и той яе группы. Третья нормальная формаОпределение. Отношение R находится в ЗНФ, если оно находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа. Отношение, находящееся в 2НФ и не находящееся в ЗНФ, всегда может быть преобразовано в эквивалентную совокупность отношений 3НФ. Для преобразования отношения к ЗНФ необходимо построить несколько отношений. В нашем случае отношение SS приводится к двум отношениям S(Ns, Flo, Ngr, Addr, Tel), Spec_S(Ngr, Spec). Отношение в ЗНФ называют отношением в нормальной форме Бойса-Кодда (НФБК), если в нем отсутствуют зависимости ключей от неключевых атрибутов. В процессе приведения отношений ко второй и к третьей нормальнш формам число отношений в схеме базы данных увеличивается. Этот процесс является обратимым и никакая информация при преобразовании не теряется. Уровень нормализации отношения определяется семантикой данных, а не значениями даншх, которые появились в некоторый момент времени. Перед тем, как сделать заключение о том, в какой нормальной форме находится отношение, необходимо знать содержание данных (их смысловое значение и имеющиеся зависимости между ними). В этом смысле функциональные зависимости являются высказываниями о реальном мире. Они не могут быть доказаны, но они могут поддерживаться средствами системы базы данных. Следует отметить, что определить функциональные зависимости в базе данных может только проектировщик БД, т.е. тот, кто хорошо анает предметную область. Польза определений в том, что построенная в дальнейшем информационная система будет поддерживать для пользователя ограничения целостности. Кроме того, благодаря функциональной зависимости может существовать более эффективная реализация отношения. Четвертая нормальная форма4НФ применяется к схемам отношений с многозначными зависимостями. 4НФ запрещает хранить независимые элементы, когда между этими элементами существует связь типа "многие-ко-многим". 4НФ требует, чтобы такие элементы запоминались в отдельных отношениях. Определение. Говорят, что отношение R находится в 4НФ, если оно находится в НФБК и в нем отсутствуют невависимые многозначные вависимости, т.е. все невависимые многозначные зависимости выделены в отдельные отношения с одним и тем же ключом. Рассмотрим отношение R(Pred,Prep,Uch), где Pred - предмет, Prep - преподаватель, Uch - учебник. Семантика данных следующая: * данному предмету может соответствовать любое количество преподавателей и любое количество учебников;
* преподаватели и учебники не зависят друг от друга. В отношении R атрибут Pred многозначно определяет атрибут Prep; атрибут Uch многозначно зависит от Pred, причем эти завивисимости не являются функциональными. Проекции Rl (Pred, Prep) и R2 (Pred, Uch) не содержат таких зависимостей, поэтому отношения R1, R2 представляют собой улучшение по сравнению с первоначальным отношением R. Следует отметить, что понятие 4НФ так же, как и понятие функциональной зависимости, касается семантики (содержания) данных. Поэтому разработчик, использующий 4НФ, строит модель данных более близкую к реальному миру.
|
|