Процесс нормализации и другие нормальные формы — различия между версиями
(→Иерархия нормальных форм) |
|||
Строка 1: | Строка 1: | ||
− | + | == Иерархия нормальных форм == | |
*[[Нормальные_формы:_первая_и_вторая#Первая_нормальная_форма|1НФ]] - необходимо проверить отношение на наличие повторяющихся групп атрибутов и не атомарных атрибутов | *[[Нормальные_формы:_первая_и_вторая#Первая_нормальная_форма|1НФ]] - необходимо проверить отношение на наличие повторяющихся групп атрибутов и не атомарных атрибутов | ||
*[[Нормальные_формы:_первая_и_вторая#Вторая_нормальная_форма|2НФ]] - находим все функциональные зависимости, у которых левая часть является подключом и декомпозируем по ним | *[[Нормальные_формы:_первая_и_вторая#Вторая_нормальная_форма|2НФ]] - находим все функциональные зависимости, у которых левая часть является подключом и декомпозируем по ним | ||
Строка 7: | Строка 7: | ||
*[[Зависимости_соединения_и_пятая_нормальная_форма#Пятая_нормальная_форма_(Проекционно-соединительная)| 5НФ]] - находим зависимости соединения. Если находим, то снова декомпозируем. Лучшая нормальная форма для декомпозиции | *[[Зависимости_соединения_и_пятая_нормальная_форма#Пятая_нормальная_форма_(Проекционно-соединительная)| 5НФ]] - находим зависимости соединения. Если находим, то снова декомпозируем. Лучшая нормальная форма для декомпозиции | ||
− | + | == Теоремы Дейта-Фейгина == | |
Строка 27: | Строка 27: | ||
Обычно при грамотном построении [[Модель_сущность-связь|модели сущность-связь]] полученное отношение будет находиться как минимум в 3НФ. | Обычно при грамотном построении [[Модель_сущность-связь|модели сущность-связь]] полученное отношение будет находиться как минимум в 3НФ. | ||
+ | |||
+ | === Набор операций === | ||
+ | 1. Проекция - разбиение на части | ||
+ | 2. Соединения - склейка частей | ||
+ | |||
+ | Можно задать другой набор операций и определить свои нормальные формы. Например, разбить множество строк на разные куски и объединять соответствующие множества. | ||
== Доменно-ключевая нормальная форма == | == Доменно-ключевая нормальная форма == |
Версия 16:47, 22 декабря 2021
Содержание
Иерархия нормальных форм
- 1НФ - необходимо проверить отношение на наличие повторяющихся групп атрибутов и не атомарных атрибутов
- 2НФ - находим все функциональные зависимости, у которых левая часть является подключом и декомпозируем по ним
- 3 НФ - находим транзитивные нормальные зависимости и декомпозируем по ним
- НФБК - декомпозируем, если все еще есть функциональные зависимости, у которых в левой части не надключ. При этом могут пропасть некоторые функциональные зависимости. Лучшая нормальная форма, которую можем получить на базе ФЗ
- 4НФ - находим множественные зависимости. При наличии нетривиальных МЗ декомпозируем. Лучшая нормальная форма для декомпозиции на два отношения
- 5НФ - находим зависимости соединения. Если находим, то снова декомпозируем. Лучшая нормальная форма для декомпозиции
Теоремы Дейта-Фейгина
Теорема: |
Теорема Дейта-Фейгина 1. Если отношение находится в 3НФ и все ключи простые, то отношение находится в 5НФ. |
Теорема: |
Теорема Дейта-Фейгина 2. Если отношение находится в НФБК и существует простой ключ, то отношение находится в 4НФ. |
Процесс нормализации
- 1НФ
- НФБК. Если приведение к НФБК разрушает полезные нам функциональные зависимости, то останавливаемся на 3НФ.
- 4 НФ
- 5 НФ, если находим нетривиальные зависимости соединения
Обычно при грамотном построении модели сущность-связь полученное отношение будет находиться как минимум в 3НФ.
Набор операций
1. Проекция - разбиение на части 2. Соединения - склейка частей
Можно задать другой набор операций и определить свои нормальные формы. Например, разбить множество строк на разные куски и объединять соответствующие множества.
Доменно-ключевая нормальная форма
Определение: |
В доменно-ключевой нормальной форме все ограничения являются следствием ограничения доменов и ключей. Где ограничение домена – тип атрибута, ограничение ключа – множество атрибутов, являющихся ключом. |
Формально, ДКНФ - это та форма, к которой хотим в итоге привести отношение, так как база данных умеет эффективно проверять ограничения ключей, а также ограничения доменов - что мы не можем записать значения несоответствующего типа атрибута.
Теорема: |
Доменно-ключевая нормальная форма является более строгой, чем пятая нормальная форма. (Фейгин) |
Утверждение: |
ДКНФ не достижима инкрементально. |
С одной стороны, именно эта нормальная форма используется на практике, так как нас интересует именно ограничение доменов и ключей, но мы пользуемся тем, что ситуации, когда отношение находится в 5НФ и не находится в ДКНФ, вырожденные, хотя и существуют в теории.