При изменении одной записи необходимо одну или несколько других записей
Возможные потери информации
Решение: разбивка на несколько отношений – декомпозиция.
Функциональная зависимость. В отношении r определена функциональная зависимость X -> Y, если πY(σX=x(r)) – содержит только одно значение или значения атрибута Х однозначно определяют значения атрибута Y.
Аксиомы вывода (для построения всех функциональных зависимостей)
Рефлексивность. Х –> Х
Пополнение. Х–>Y => ХZ–>Y
Аддитивность. Х–>Y, Х–>Z => Х–>YZ
Проективность. Х–>Y, Y–>Z => Х–>Z
Псевдотранзитивность. Х–>Y, YZ–>W => ХZ–>W
Нормальные формы.
Отношение находится в 1-й нормальной форме (1нф) если все его атрибуты атомарны (принимают единственное значение).
Отношение находится во 2нф, если оно находится в 1нф и в нем отсутствуют неполные зависимости от ключа.
R(A, B, C, D), {A, B} – ключ.
{A, B} -> C - по определению ключа
{A, B} -> D - по определению ключа
B ->C - неполная зависимость от ключа
Переход к 3нф – декомпозиция: R1(B, C), B – ключ; R2(A, B, D), {A, B} – ключ.
Отношение находится во 3нф, если оно находится в 2нф и в нем отсутствуют транзитивные зависимости от ключа.
R(A, B, C, D), A – ключ.
A -> C - по определению ключа
С ->D - транзитивная зависимость от ключа
Переход к 3нф – декомпозиция: R1(C, D), C – ключ; R2(A, B, C), A – ключ.
Отношение находится в нормальной форме Бойса-Кодда (НФБК), если оно находится в 3нф и в нем отсутствуют функциональные зависимости ключевых атрибутов от неключевых.
Многозначная зависимость. X->>Y. X многозначно определяет Y, если каждому х соответствует несколько значений у, не зависящих от остальных атрибутов.
Отношение находится во 3нф, если оно находится в НФБК и в нем отсутствуют многозначные зависимости.
Свойства декомпозиции:
соединение без потерь,
R, F – множество функциональных зависимостей
ρ (декомпозиция)
R, F => R1,…, Rn F1,…,Fn
декомпозиция ρ обладает свойством соединения без потерь, если
r(R) : πR1(r) πR2(r) … πRn(r) =r
сохранение функциональных зависимостей.
ρ (декомпозиция)
R, F => R1,…, Rn F1,…,Fn
Из множества F1,…,Fn можно вывести все функциональные зависимости F.
Теоремы приведения к НФ.
Всякое отношение можно привести к 3нф с сохранением зависимостей и соединением без потерь.
Всякое отношение с множеством функциональных зависимостей и с множеством многозначных зависимостей можно привести к 4нф с соединением без потерь; выполнение 2-го свойства декомпозиции не гарантируется.