Третья нормальная форма

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Третья нормальная форма (3НФ) — одна из возможных нормальных форм таблицы реляционной базы данных. Третья нормальная форма является достаточной при решении большинства практических задач, и процесс проектирования реляционной базы данных, как правило, заканчивается приведением к ней. 3НФ была изначально сформулирована Э. Ф. Коддом в 1971 году.

Содержание

Определение

Согласно определению Кодда, таблица находится в 3НФ тогда и только тогда, когда выполняются следующие условия:

Непервичный(неключевой) атрибут R — это атрибут, который не принадлежит ни одному из возможных (альтернативных) ключей R. Транзитивная зависимость — это функциональная зависимость, при которой X → Z (X определяет Z) не напрямую, а посредством отношения X → Y и Y → Z (отношение Y → X не является обязательным условием).

Определение 3НФ, эквивалентное определению Кодда, но по-другому сформулированное, дал Карло Заниоло в 1972 году. Согласно ему, таблица находится в 3НФ тогда и только тогда, когда для каждой из ее функциональных зависимостей X → A выполняется хотя бы одно из следующих условий:

  • Х содержит А (то есть X → A — тривиальная функциональная зависимость)
  • Х — суперключ
  • А — первичный атрибут (то есть А входит в состав альтернативного ключа).

Определение Заниоло четко определяет разницу между 3НФ и более строгой нормальной формой Бойса-Кодда (НФБК): НФБК исключает третье условие («А — первичный атрибут»).

«Ничего, кроме ключа»

Запоминающееся и, по традиции, наглядное резюме определения 3НФ Кодда было дано Биллом Кентом: каждый неключевой атрибут «должен предоставлять информацию о ключе, полном ключе и ни о чем, кроме ключа». Это определение часто дополняется словами «Помоги мне Кодд!»

Условие зависимости от «целого ключа» неключевых атрибутов обеспечивает то, что таблица находится во второй нормальной форме; а условие зависимости их от «ничего, кроме ключа» — то, что они находятся в третьей нормальной форме.

Крис Дэйт говорит о резюме Кента как о «интуитивно привлекательной характеристике» 3НФ, и замечает, что с небольшим изменением она может служить и как определение более строгой нормальной формы Бойса-Кодда: «Каждый атрибут должен предоставлять информацию о ключе, всем ключа и ни о чем, кроме ключа». Вариант определения 3НФ Кента является менее строгим, чем вариант НФБК Дэйта, поскольку первая утверждает только, что неключевые атрибуты зависят от ключей. Первичные атрибуты (которые являются ключами или их частями) вовсе не должны быть функционально зависимыми; каждый из них предоставляет информацию о ключе предоставлением самого ключа или его части. Здесь следует отметить, что это правило справедливо только для неключевых атрибутов, так как применение его ко всем атрибутам будет полностью запрещать все сложные альтернативные ключи, поскольку каждый элемент такого ключа будет нарушать условие «полного ключа».


Пример

Пример приведения таблицы к третьей нормальной форме

Исходная таблица:

Фамилия Отдел Телефон
Гришин 1 11-22-33
Васильев 1 11-22-33
Петров 2 44-55-66

В результате приведения к 3НФ получаются две таблицы:

Фамилия Отдел
Гришин 1
Васильев 1
Петров 2
Отдел Телефон
1 11-22-33
2 44-55-66

См. также

cs:Třetí normální forma

de:Normalisierung (Datenbank)#Dritte_Normalform_.283NF.29 en:Third normal form es:Tercera forma normal vi:Dạng chuẩn 3 zh:第三正規化

Личные инструменты

Served in 0.107 secs.