Нормальная форма: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Строка 92: Строка 92:
| 1 || 14 || 20-Feb-2016 || AEG35 || Холодильник || −50
| 1 || 14 || 20-Feb-2016 || AEG35 || Холодильник || −50
|-
|-
| 2 || 3 || 14-Jan-2016 || ScaSC02 || Пылесос || −21
| 2 || 3 || 14-Jan-2016 || ScaSC02 || Пылесос || −11
|-
|-
| 2 || 3 || 14-Jan-2016 || Lg08 || Холодильник|| −21
| 2 || 3 || 14-Jan-2016 || Lg08 || Холодильник|| −10
|-
|-
| 3 || 21 || 20-Feb-2016 || AEG35 || Холодильник || −18
| 3 || 21 || 20-Feb-2016 || AEG35 || Холодильник || −18
Строка 102: Строка 102:
| 3 || 21 || 20-Feb-2016 || Lg08 || Холодильник || −60
| 3 || 21 || 20-Feb-2016 || Lg08 || Холодильник || −60
|}
|}



=== Третья нормальная форма (3NF) ===
=== Третья нормальная форма (3NF) ===

Версия от 22:53, 22 февраля 2016

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

Процесс преобразования отношений базы данных к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных.Шаблон:-1 Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации. Как отмечает К. Дейт,Шаблон:-1 общее назначение процесса нормализации заключается в следующем:

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

Устранение избыточности производится, как правило, за счёт декомпозиции отношений таким образом, чтобы в каждом отношении хранились только первичные факты (то есть факты, не выводимые из других хранимых фактов).

Роль нормализации в проектировании реляционных баз данных

При том, что идеи нормализации весьма полезны для проектирования баз данных, они отнюдь не являются универсальным или исчерпывающим средством повышения качества проекта БД. Это связано с тем, что существует слишком большое разнообразие возможных ошибок и недостатков в структуре БД, которые нормализацией не устраняются. Несмотря на эти рассуждения, теория нормализации является очень ценным достижением реляционной теории и практики, поскольку она даёт научно строгие и обоснованные критерии качества проекта БД и формальные методы для усовершенствования этого качества. Этим теория нормализации резко выделяется на фоне чисто эмпирических подходов к проектированию,Шаблон:-1 которые предлагаются в других моделях данных. Более того, можно утверждать, что во всей сфере информационных технологий практически отсутствуют методы оценки и улучшения проектных решений, сопоставимые с теорией нормализации реляционных баз данных по уровню формальной строгости.

Нормализацию иногда упрекают на том основании, что «это просто здравый смысл», а любой компетентный профессионал и сам «естественным образом» спроектирует полностью нормализованную БД без необходимости применять теорию зависимостей.Шаблон:-1 Однако, как указывает К. Дейт, нормализация в точности и является теми принципами здравого смысла, которыми руководствуется в своём сознании зрелый проектировщик, то есть принципы нормализации — это формализованный здравый смысл. Между тем, идентифицировать и формализовать принципы здравого смысла — весьма трудная задача, и успех в её решении является существенным достижением.Шаблон:-1

Нормальные формы

В создании и развитии теории нормализации принимали участие многие учёные. Однако первые три нормальные формы и концепцию функциональной зависимости предложил Э. Кодд.Шаблон:-1

Рассмотрим нормализацию на примере следующей таблицы:

CustID CustName TrID Date ArtID ArtGroup Amount
1 Джонс 12 14-Jan-2016 ScaSC02 Пылесос −87
1 Джонс 14 15-Jan-2016 AEG35 Холодильник −50
2 Уилкинс 3 14-Jan-2016 ScaSC02, Lg08 Пылесос, Холодильник −21
3 Стевенс 21 20-Feb-2016 AEG35 Холодильник −18
3 Стевенс 21 20-Feb-2016 ScaSC02 Пылесос −70
3 Стевенс 21 20-Feb-2016 Lg08 Холодильник −60


Первая нормальная форма (1NF)

Переменная отношения находится в первой нормальной форме (1НФ) тогда и только тогда, когда в любом допустимом значении отношения каждый его кортеж содержит только одно значение для каждого из атрибутов. В нашем примере неправильно записана сделка с Уилкинсом. Исправим ее запись:

CustID CustName TrID Date ArtID ArtGroup Amount
1 Джонс 12 14-Jan-2016 ScaSC02 Пылесос −87
1 Джонс 14 20-Feb-2016 AEG35 Холодильник −50
2 Уилкинс 3 14-Jan-2016 ScaSC02 Пылесос −11
2 Уилкинс 3 14-Jan-2016 Lg08 Холодильник −10
3 Стевенс 21 20-Feb-2016 AEG35 Холодильник −18
3 Стевенс 21 20-Feb-2016 ScaSC02 Пылесос −70
3 Стевенс 21 20-Feb-2016 Lg08 Холодильник −60

В реляционной модели отношение всегда находится в первой нормальной форме по определению понятия отношение. Что же касается различных таблиц, то они могут не быть правильными представлениями отношений и, соответственно, могут не находиться в 1НФ.

Вторая нормальная форма (2NF)

Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый неключевой атрибут неприводимо (функционально полно) зависит от её потенциального ключа. В нашем случае ключем может быть сочетание CustID (код покупателя) и TrID (код сделки). Имя покупателя зависит не от всего ключа, а только от его части, поэтому для приведения нашей реляционной модели во вторую нормальную форму мы должны разделить ее на две таблицы:

CustID CustName
1 Джонс
2 Уилкинс
3 Стевенс
CustID TrID Date ArtID ArtGroup Amount
1 12 14-Jan-2016 ScaSC02 Пылесос −87
1 14 20-Feb-2016 AEG35 Холодильник −50
2 3 14-Jan-2016 ScaSC02 Пылесос −11
2 3 14-Jan-2016 Lg08 Холодильник −10
3 21 20-Feb-2016 AEG35 Холодильник −18
3 21 20-Feb-2016 ScaSC02 Пылесос −70
3 21 20-Feb-2016 Lg08 Холодильник −60

Третья нормальная форма (3NF)

Переменная отношения находится в третьей нормальной форме тогда и только тогда, когда она находится во второй нормальной форме, и отсутствуют транзитивные функциональные зависимости неключевых атрибутов от ключевых:

ArtID ArtGroup
ScaSC02 Пылесос
AEG35 Холодильник
Lg08 Холодильник
CustID TrID Date
1 12 14-Jan-2016
1 14 20-Feb-2016
2 3 14-Jan-2016
3 21 20-Feb-2016
CustID TrID ArtID Amount
1 12 ScaSC02 −87
1 14 AEG35 −50
2 3 ScaSC02 −21
2 3 Lg08 −21
3 21 AEG35 −18
3 21 ScaSC02 −70
3 21 Lg08 −60

Нормальная форма Бойса — Кодда (BCNF)

Переменная отношения находится в нормальной форме Бойса — Кодда (иначе — в усиленной третьей нормальной форме) тогда и только тогда, когда каждая её нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ.

Четвёртая нормальная форма (4NF)

Переменная отношения находится в четвёртой нормальной форме, если она находится в нормальной форме Бойса — Кодда и не содержит нетривиальных многозначных зависимостей.

Пятая нормальная форма (5NF)

Переменная отношения находится в пятой нормальной форме (иначе — в проекционно-соединительной нормальной форме) тогда и только тогда, когда каждая нетривиальная зависимость соединения в ней определяется потенциальным ключом (ключами) этого отношения.

Доменно-ключевая нормальная форма (DKNF)

Переменная отношения находится в ДКНФ тогда и только тогда, когда каждое наложенное на неё ограничение является логическим следствием ограничений доменов и ограничений ключей, наложенных на данную переменную отношения.

Шестая нормальная форма (6NF)

Переменная отношения находится в шестой нормальной форме тогда и только тогда, когда она удовлетворяет всем нетривиальным зависимостям соединения. Из определения следует, что переменная находится в 6НФ тогда и только тогда, когда она неприводима, то есть не может быть подвергнута дальнейшей декомпозиции без потерь. Каждая переменная отношения, которая находится в 6НФ, также находится и в 5НФ.

Введена К. Дейтом в его книге,Шаблон:-1 как обобщение пятой нормальной формы для хронологической базы данных.

Примечания

Ошибка в сносках?: Тег <ref> с именем «Date», определённый в <references>, не используется в предшествующем тексте.

Ошибка в сносках?: Тег <ref> с именем «Date_Writings», определённый в <references>, не используется в предшествующем тексте.

См. также

Ссылки