Нормальные формы
10.10.2024
Нормализация отношений. Шесть нормальных форм
Введение
В данной теме рассматриваются шесть нормальных форм (НФ) и методы приведения таблиц к этим формам. Процесс проектирования баз данных (БД) с использованием нормальных форм является итеративным, где отношения последовательно переводятся из одной нормальной формы в более высокую. Каждая следующая НФ ограничивается определёнными типами функциональных зависимостей и устраняет соответствующие аномалии.
Используемые термины
Атрибут: свойство сущности, также называется полем таблицы.
Домен атрибута: множество допустимых значений атрибута.
Кортеж: множество взаимосвязанных значений атрибутов (строка таблицы).
Отношение: множество кортежей (таблица).
Схема отношения: структура таблицы, состоящая из набора атрибутов.
Проекция: отношение, полученное путём удаления или перестановки атрибутов.
Функциональная зависимость: зависимость между атрибутами, например, если {X} → {Y}, то для одинаковых значений X совпадают значения Y.
Нормальная форма: требование к структуре таблиц для устранения избыточных функциональных зависимостей.
Цель нормализации
Исключить избыточное дублирование данных, что предотвращает аномалии при добавлении, редактировании и удалении кортежей.
Аномалии
Аномалии-модификации: изменение данных может потребовать просмотр всей таблицы.
Аномалии-удаления: удаление кортежа приводит к потере информации.
Аномалии-добавления: невозможно добавить информацию, пока она не полная.
Первая нормальная форма (1НФ)
Отношение находится в 1НФ, если все атрибуты являются простыми, и домены содержат только скалярные значения. Не должно быть повторяющихся строк.
Пример: Таблица «Автомобили»:
BMW
M5, X5M, M1
Nissan
GT-R
Исправление:
BMW
M5
BMW
X5M
BMW
M1
Nissan
GT-R
Вторая нормальная форма (2НФ)
Отношение находится во 2НФ, если оно в 1НФ и каждый неключевой атрибут зависит от первичного ключа.
Пример:
M5
BMW
5500000
5%
X5M
BMW
6000000
5%
M1
BMW
2500000
5%
GT-R
Nissan
5000000
10%
Исправление:
Таблица: (Модель, Фирма, Цена)
Таблица: (Фирма, Скидка)
Третья нормальная форма (3НФ)
Отношение в 3НФ, если оно во 2НФ и каждый неключевой атрибут зависит только от первичного ключа (нет транзитивных зависимостей).
Пример:
BMW
Риал-авто
87-33-98
Audi
Риал-авто
87-33-98
Nissan
Некст-Авто
94-54-12
Исправление:
Таблица: (Магазин, Телефон)
Таблица: (Модель, Магазин)
Нормальная форма Бойса-Кодда (НФБК)
Отношение в НФБК, если каждая нетривиальная функциональная зависимость имеет потенциальный ключ в качестве детерминанта.
Четвёртая нормальная форма (4НФ)
Отношение в 4НФ, если оно в НФБК и все многозначные зависимости являются функциональными.
Пятая нормальная форма (5НФ)
Отношения в 5НФ, если они в 4НФ и отсутствуют сложные зависимые соединения между атрибутами.
Last updated