Процесс нормализации и другие нормальные формы — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Доменно-ключевая нормальная форма)
м (rollbackEdits.php mass rollback)
 
(не показано 8 промежуточных версий 3 участников)
Строка 1: Строка 1:
=== Иерархия нормальных форм ===
+
== Иерархия нормальных форм ==
*[[Нормальные_формы:_первая_и_вторая#Первая_нормальная_форма|1НФ]]
+
*[[Нормальные_формы:_первая_и_вторая#Первая_нормальная_форма|1НФ]] - необходимо проверить отношение на наличие повторяющихся групп атрибутов и не атомарных атрибутов.
*[[Нормальные_формы:_первая_и_вторая#Вторая_нормальная_форма|2НФ]]
+
*[[Нормальные_формы:_первая_и_вторая#Вторая_нормальная_форма|2НФ]] - находим все функциональные зависимости, у которых левая часть является подключом и декомпозируем по ним.
*[[Нормальные формы:_третья_и_Бойса-Кодда#Третья_нормальная_форма|3 НФ]]
+
*[[Нормальные формы:_третья_и_Бойса-Кодда#Третья_нормальная_форма|3 НФ]] - находим транзитивные нормальные зависимости и декомпозируем по ним.
*[[Нормальные формы:_третья_и_Бойса-Кодда#Третья_нормальная_форма|НФБК]]: Лучшая для ФЗ
+
*[[Нормальные формы:_третья_и_Бойса-Кодда#Третья_нормальная_форма|НФБК]] - декомпозируем, если все еще есть функциональные зависимости, у которых в левой части не надключ. При этом могут пропасть некоторые функциональные зависимости. Лучшая нормальная форма, которую можем получить на базе ФЗ.
*[[Многозначные_зависимости_и_четвертая_нормальная_форма|4НФ]]: Лучшая для декомпозиции на два отношения
+
*[[Многозначные_зависимости_и_четвертая_нормальная_форма|4НФ]] - находим множественные зависимости. При наличии нетривиальных МЗ декомпозируем. Лучшая нормальная форма для декомпозиции на два отношения.
*[[Зависимости_соединения_и_пятая_нормальная_форма#Пятая_нормальная_форма_(Проекционно-соединительная)| 5НФ]]: Лучшая для декомпозиции
+
*[[Зависимости_соединения_и_пятая_нормальная_форма#Пятая_нормальная_форма_(Проекционно-соединительная)| 5НФ]] - находим зависимости соединения. Если находим, то снова декомпозируем. Лучшая нормальная форма для декомпозиции.
=== Теоремы Дейта-Фейгина ===
+
 
 +
== Теоремы Дейта-Фейгина ==
  
  
Строка 26: Строка 27:
  
 
Обычно при грамотном построении [[Модель_сущность-связь|модели сущность-связь]] полученное отношение будет находиться как минимум в 3НФ.
 
Обычно при грамотном построении [[Модель_сущность-связь|модели сущность-связь]] полученное отношение будет находиться как минимум в 3НФ.
 +
 +
== Набор операций ==
 +
1. Проекция - разбиение на части
 +
 +
2. Соединения - склейка частей
 +
 +
Можно задать другой набор операций и определить свои нормальные формы. Например, разбить множество строк на разные куски и объединять соответствующие множества.
  
 
== Доменно-ключевая нормальная форма ==
 
== Доменно-ключевая нормальная форма ==

Текущая версия на 19:26, 4 сентября 2022

Иерархия нормальных форм

  • 1НФ - необходимо проверить отношение на наличие повторяющихся групп атрибутов и не атомарных атрибутов.
  • 2НФ - находим все функциональные зависимости, у которых левая часть является подключом и декомпозируем по ним.
  • 3 НФ - находим транзитивные нормальные зависимости и декомпозируем по ним.
  • НФБК - декомпозируем, если все еще есть функциональные зависимости, у которых в левой части не надключ. При этом могут пропасть некоторые функциональные зависимости. Лучшая нормальная форма, которую можем получить на базе ФЗ.
  • 4НФ - находим множественные зависимости. При наличии нетривиальных МЗ декомпозируем. Лучшая нормальная форма для декомпозиции на два отношения.
  • 5НФ - находим зависимости соединения. Если находим, то снова декомпозируем. Лучшая нормальная форма для декомпозиции.

Теоремы Дейта-Фейгина

Теорема:
Теорема Дейта-Фейгина 1. Если отношение находится в 3НФ и все ключи простые, то отношение находится в 5НФ.
Теорема:
Теорема Дейта-Фейгина 2. Если отношение находится в НФБК и существует простой ключ, то отношение находится в 4НФ.

Процесс нормализации

  • 1НФ
  • НФБК. Если приведение к НФБК разрушает полезные нам функциональные зависимости, то останавливаемся на 3НФ.
  • 4 НФ
  • 5 НФ, если находим нетривиальные зависимости соединения

Обычно при грамотном построении модели сущность-связь полученное отношение будет находиться как минимум в 3НФ.

Набор операций

1. Проекция - разбиение на части

2. Соединения - склейка частей

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

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

Определение:
В доменно-ключевой нормальной форме все ограничения являются следствием ограничения доменов и ключей. Где ограничение домена – тип атрибута, ограничение ключа – множество атрибутов, являющихся ключом.

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

Теорема:
Доменно-ключевая нормальная форма является более строгой, чем пятая нормальная форма. (Фейгин)
Утверждение:
ДКНФ не достижима инкрементально.

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