Денормализация БД
НФ
Опр.1: Отношение находится в 3НФ, если:
- Удовлетворяются все требования 2НФ.
- Если каждый неключевой атрибут не транзитивно зависит от первичного ключа.
Опр.2: Отношение находится в 3НФ в том случае, если все неключевые атрибуты взаимно независимы и полностью зависят от первичного ключа.
ФИО > оклад > должность
ФИО > стаж > Д_стаж
ФИО > должность > оклад
Транзитивные зависимости также порождают избыточное порождение данных.
Чтобы устранить транзитивные зависимости, необходимо использовать проекцию на атрибуты, являющиеся причиной данных транзитивных зависимостей.
В результате получим:
r3
ФИО | Должность | Стаж | Кафедра |
Иванов И.М | Преподаватель | ||
Петров М.И | Ст. преподаватель | ||
Сидоров Н.Г | Преподаватель | ||
Егоров В.В | Преподаватель |
r4
Должность | Оклад |
Преподаватель | |
Ст. преподаватель |
r5
Стаж | Д_стаж |
На практике, в большинстве случаев приведение к 3НФ является достаточным, и дальнейшую нормализацию не проводят.
Если в отношении имеется зависимость атрибутов составного ключа от неключевых атрибутов, то необходимо перейти к усиленной 3НФ, она называется НФБК.
Отношение находится в НФБК, если оно находится в 3НФ, и в нем отсутствуют зависимости ключей (атрибутов составного ключа) от неключевых атрибутов.
Денормализация – это процесс изменения структуры таблиц нормализованной БД, направленной на получение управляемой избыточности данных с целью повышения производительности систем.