- •Лекция№10 Нормализация реляционных баз данных
- •Цель нормализации
- •Функциональные зависимости
- •Процесс нормализации
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (знф)
- •Нормальная форма Бойса-Кодда (нфбк)
- •Четвертая нормальная форма (4нф)
- •Пятая нормальная форма (5нф)
- •Определение пятой нормальной формы (5нф)
Вторая нормальная форма (2нф)
Вторая нормальная форма (2НФ) основана на понятии полной функциональной зависимости, которая описывается ниже.
Полная функциональная зависимость - в некотором отношении атрибут В называется полностью функционально зависимым от атрибута А, если атрибут В функционально зависит от полного значения атрибута А и не зависит ни от какого подмножества полного значения атрибута А.
Функциональная зависимость АВ является полной функциональной зависимостью, если удаление какого-либо атрибута из А приводит к утрате этой зависимости. Частичной функциональной зависимостью называется такая зависимость АВ, если в А есть некий атрибут, при удалении которого эта зависимость сохраняется.
Вторая нормальней форма применяется к отношениям с составными ключами, т.е. к таким отношениям, первичный ключ которых состоит из двух или больше атрибутов. Дело в том, что отношение с первичным ключом на основе единственного атрибута всегда находится, по крайней мере, в 2НФ. Отношение, которое не находится в 2НФ, может страдать от аномалий обновления.
Вторая нормальная форма (2НФ) - отношение, которое находится в первой нормальной форме и каждый атрибут которого, не входящий в состав первичного ключа, характеризуется полной функциональной зависимостью от этого первичного ключа.
Нормализация 1НФ-отношений с образованием 2НФ-отношений включает устранение частичных зависимостей. Если в отношении между атрибутами существует частичная зависимость, то функционально-зависимые атрибуты удаляются из него и помещаются в новое отношение вместе с копией их детерминанта.
Третья нормальная форма (знф)
Хотя 2НФ-отношения в меньшей степени обладают избыточностью данных, чем 1НФ-отношения, они все еще могут страдать от аномалий обновления.
Транзитивная зависимость - если для атрибутов А, В и С некоторого отношения существуют зависимости вида АВ и ВС, то говорят, что атрибут С транзитивно зависит от атрибута А через атрибут В (при условии, что атрибут А функционально не зависит ни от атрибута В, ни от атрибута С).
Транзитивная зависимость является описанием такого типа функциональной зависимости, которая возникает при наличии следующих функциональных зависимостей между атрибутами А, В и С:
АВ и ВС.
В данном случае транзитивная зависимость АС осуществляется через атрибут В. Это утверждение справедливо только в том случае, если атрибут А функционально не зависит от атрибутов В и С.
Третья нормальная форма (ЗНФ) - отношение, которое находится в первой и второй нормальных формах и не имеет не входящих в первичный ключ атрибутов, которые находились бы в транзитивной функциональной зависимости от этого первичного ключа.
Нормализация 2НФ-отношений с образованием ЗНФ-отношений включает устранение транзитивных зависимостей. Если в отношении существует транзитивная зависимость между атрибутами, в таком случае транзитивно-зависимые атрибуты удаляются из него и помещаются в новое отношение вместе с копией их детерминанта.
Нормальная форма Бойса-Кодда (нфбк)
Отношения базы данных проектируются таким образом, чтобы исключить в них присутствие частичных или транзитивных зависимостей, поскольку эти зависимости приводят к появлению аномалий обновления. До сих пор мы использовали определения второй и третьей нормальных форм, для получения которых требуется найти и исключить частичные и транзитивные зависимости от первичного ключа. Однако в этих определениях не рассматриваются такие же зависимости от потенциальных ключей отношения, если таковые имеются.
Нормальная форма Бойса-Кодда (НФБК) учитывает функциональные зависимости, в которых участвуют все потенциальные ключи отношения, а не только его первичный ключ. Для отношения с единственным потенциальным ключом его ЗНФ и НФБК являются эквивалентными.
Нормальная форма Бойса-Кодда (НФБК) - отношение находится в НФБК тогда и только тогда, когда каждый его детерминант является потенциальным ключом.
Для проверки принадлежности отношения к НФБК необходимо найти все его детерминанты и убедиться в том, что они являются потенциальными ключами. Напомним, что детерминантом является один атрибут или группа атрибутов, от которой полностью функционально зависит другой атрибут.
Различие между ЗНФ и НФБК заключается в том, что функциональная зависимость АВ допускается в ЗНФ-отношении, если атрибут В является первичным ключом, а атрибут А не обязательно является потенциальным ключом. Тогда как в НФБК-отношении эта зависимость допускается только тогда, когда атрибут А является потенциальным ключом. Следовательно нормальная форма Бойса-Кодда является жесткой версией формы ЗНФ, поскольку каждое НФБК-отношение является ЗНФ-отношением, но не всякое ЗНФ-отношение является НФБК-отношением.
Нарушения требований НФБК происходят крайне редко, поскольку это может случиться только тогда, когда:
имеются два (или более) составных потенциальных ключа;
эти потенциальные ключи перекрываются, т.е. ими совместно используется, по крайней мере, один общий атрибут.