Нормальные формы основаны на понятии функциональной зависимости атрибутов отношения
Определение 1. Функциональная зависимость В отношении R атрибут Y функционально зависит от атрибута X (X и Y могут быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y: R.X ->R.Y. Определение 2. Полная функциональная зависимость Функциональная зависимость R.X ->R.Y называется полной, если атрибут Y не зависит функционально от любого точного подмножества X. Определение 3. Транзитивная функциональная зависимость Функциональная зависимость R.X -> R.Y называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R.X -> R.Z и R.Z -> R.Y и отсутствует функциональная зависимость R.Z -/-> R.X. . Требования 1НФ - все атрибуты сущности содержат атомарные значения и среди атрибутов нет повторяющихся групп. Атрибуты хобби и телефон содержат несколько значений для каждого экземпляра сущности. В атрибутах Дата начала и завершения проекта и Дата зачисления и увольнения хранятся разные по смыслу два значения. Если хранить только одно значение, то невозможно понять, какая именно дата внесена. Алгоритм приведения отношения к первой нормальной форме. 1 разделить сложное отношение; 2 перенести в нее все «повторяющиеся» атрибуты; 3 выбрать ключевой атрибут (первичный ключ) для нового отношения; 4 установить связь от прежнего отношения к новому. Первичный ключ прежнего отношения мигрирует в новое отношение и станет его вторичным ключем. Требования 2НФ отношение находится в 1НФ и все не ключевые атрибуты полностью зависят от всего ключа. 2НФ имеет место для отношений, имеющих сложный (составной) первичный ключ.
Алгоритм приведения сущности ко второй нормальной форме. 1 выделить атрибуты, которые зависят от части первичного ключа; 2 создать новую сущность; 3 поместить атрибуты, зависящие от части первичного ключа в их собственную новую сущность; 4 установить связь от прежней сущности к новой. Часть первичного ключа прежней сущности мигрирует в новую сущность и станет ее первичным ключем. 2НФ позволяет избежать следующих аномалий при выполнении операций: - Обновления. Имеет место дублирование данных о сотруднике, если он участвует в нескольких проектах. - Вставки. Невозможно ввести данные о сотруднике, если он не участвует в проекте. - Удаления. Если сотрудник прекращает работать над проектом, данные о нем теряются.
Требования 3НФ – Отношение R находится в третьей нормальной форме (3NF) в том и только в том случае, если находится в 2NF, и каждый не ключевой атрибут не является транзитивно зависимым от какого-либо ключа R. Отношение находится в третьей нормальной форме и никакой не ключевой атрибут не зависит от другого не ключевого атрибута.
Алгоритм приведения отношения к третьей нормальной форме 1 создать новое отношение и перенести в нее атрибуты с одной и той же зависимостью от не ключевого атрибута; 2 использовать атрибут(ы), определяющий эту зависимость, в качестве первичного ключа нового отношения; 3 установить связь от нового отношения к старому. 3НФ позволяет избежать следующих аномалий при выполнении операций: - Обновления. Имеет место дублирование данных об окладе, если должность занимают несколько сотрудников. - Вставки. Невозможно ввести данные об окладе, если нет сотрудника, занимающего эту должность. - Удаления. В случае удаления из таблицы сотрудника, занимающего уникальную должность данные об окладе теряются Введём понятие многозначной зависимости. Многозначная зависимость существует, если заданным значениям атрибута X соответствует множество, состоящее из нуля (или более) значений атрибута Y (X–»Y). Если в отношении присутствуют многозначные зависимости, то схема отношения должна находиться в 4НФ. Различают тривиальные и нетривиальные многозначные зависимости. Тривиальной называется такая многозначная зависимость X–»Y, для которой Y Ì X или X U Y = R, где R – рассматриваемое отношение. Тривиальная многозначная зависимость не нарушает 4НФ. Если хотя бы одно из двух этих условий не выполняется (т.е. Y не является подмножеством X или X U Y состоит не из всех атрибутов R), то такая многозначная зависимость называется нетривиальной.
|