Проектирование
реляционных баз данных с использованием
нормализации
В процессе нормализации рассматриваются
различные функциональные зависимости.
Функциональные зависимости
определяют не текущее состояние
БД, а все возможные ее состояния,
то есть они отражают те связи между
атрибутами, которые присущи реальному
объекту, моделируемые в БД.
Функциональные
зависимости
- Атрибут Y некоторого отношения функционально зависит от X (атрибуты могут быть составными), если в любой момент времени каждому значению X соответствует одно значение Y. Функциональная зависимость обозначается X Y.
Функциональная
зависимость.
- – это зависимость, заключающая в себе такую информацию, которая может быть получена на основе других зависимостей, имеющихся в базе данных.
Избыточная
функциональная зависимость
- Неключевой атрибут функционально полно зависит от составного ключа если он функционально зависит от всего ключа в целом, но не находится в функциональной зависимости от какого-либо из входящих в него атрибутов.
Полная
функциональная зависимость.
- Пусть
X, Y, Z – три атрибута некоторого
отношения. При этом X Y и Y Z, но обратное соответствие отсутствует, т.е.
Z -/-> Y и Y -/-> X. Тогда Z транзитивно зависит от X.
Транзитивная функциональная зависимость.
- Пусть
X, Y, Z – три атрибута отношения R. В отношении R существует многозначная зависимость R.X
->> R.Y только в том случае, если множество значений Y, соответствующее паре значений
X и Z, зависит только от X и не зависит от Z.
Многозначная зависимость.
- отношение находится в 1НФ, если значения всех его атрибутов атомарны.
- Иначе можно сказать, что в каждой позиции пересечения столбца и строки таблицы расположено в точности одно значение, а не набор значений.
Первая
нормальная форма (1НФ):
Вторая нормальная форма (2НФ): Отношение (таблица) находится во 2НФ, если оно
находится в 1НФ, и каждый неключевой атрибут функционально полно зависит от всего ключа.
Если какой-либо атрибут зависит от части составного первичного ключа, то необходимо:
- создать новое отношение, атрибутами которого будут:
- часть составного ключа (первичный ключ нового отношения)
- атрибут, зависящий от нового ключа
- из исходного отношения исключить атрибут, включенный в новое отношение
Вторая нормальная форма
- включения (пока поставщиком не будет поставлен продукт, нельзя указать единицу измерения)
- удаления (исключение поставщика может привести к потере единицы измерения продукта)
- обновления (при изменении единицы измерения продукта, приходится менять данные везде, где встречается данный продукт)
Данные виды аномалий возникают при любой избыточной функциональной зависимости.
При неполной функциональной зависимости возникают аномалии:
- Отношение находится в 3НФ, если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Третья нормальная форма (3НФ):
- Ситуация, когда отношение будет находиться в 3НФ, но не в нормальной форме Бойса-Кодда (НФБК), возникает при условии, что отношение имеет два (или более) возможных ключа, которые являются составными и имеют общий атрибут. На практике такая ситуация встречается достаточно редко, для всех прочих отношений 3НФ и НФБК эквивалентны.
Нормальная форма Бойса-Кодда
- Отношение находится в 4НФ, если оно находится в НФБК, и в нем отсутствуют многозначные зависимости, не являющиеся функциональными зависимостями.
- или
- Отношение R находится в 4НФ в том случае, если в случае существования многозначной зависимости A ->> B все остальные атрибуты R функционально зависят от A.
Четвертая нормальная форма (4НФ):
- Дано отношение Книги(ISBN, Название, Автор, Область знаний). Книга имеет уникальный идентификатор ISBN, книга может быть написана коллективом авторов, книга может относиться к нескольким областям знаний.
Пример:
- Существуют следующие функциональные зависимости:
- ISBN Название
- ISBN ->> Автор
- ISBN ->> Область знаний
- После приведения отношения к 4НФ будут получены отношения:
- Книги(ISBN, Название)
- АвторыКниг(ISBN, Автор)
- ОбластиЗнанийКниг(ISBN, Область знаний)
- Отношение R (X, Y, ..., Z) удовлетворяет зависимости соединения
*(X, Y, ..., Z) в том и только в том случае, когда R восстанавливается без потерь путем соединения своих проекций на
X, Y, ..., Z. Где X, Y, ..., Z – наборы атрибутов отношения R.
Зависимость соединения.
- Отношение R находится в 5НФ в том и только в том случае, когда любая зависимость соединения в R следует из существования некоторого возможного ключа в R.
Пятая нормальная форма (5НФ):
- Очень тяжело определить само наличие зависимостей
- «проекции-соединения», потому что утверждение о наличии такой зависимости делается для всех
- возможных состояний БД, а не только для текущего экземпляра отношения R.
5НФ редко используется на практике.