Определение второйнормальнойформы (2НФ): отношение r находится во 2НФ, если оно находится в 1НФ и если каждый его атрибут, не являющийся основным атрибутом, функционально полно зависит от первичного ключа этого отношения.
Определение третьейнормальнойформы (3НФ): отношение r находится в 3НФ, если оно является отношением во 2НФ и каждый его атрибут, не являющийся основным, не транзитивно зависит от первичного ключа этого отношения.
Транзитивная зависимость определяется следующим образом: если X -> Y и Y -> Z, то X -> Z (Z транзитивно зависит от X).
A, B -> C
A, B -> D
C -> D
C -> E
Первичный ключ: AB.
Отношение находится в 1НФ, поскольку все атрибуты имеют атомарные значения.
Отношение находится во 2НФ, т.к. все атрибуты функционально полно зависят от первичного ключа отношения.
Так как A, B -> C; C -> E, т. е. E транзитивно зависит от первичного ключа, значит отношение не находится в 3НФ.
Отношение находится в НФБК если каждый детерминант отношения является его возможным ключом.
Детерминант это атрибут, от которого зависит другой атрибут.
Отношение r находится в 4НФ тогда и только тогда, когда при существовании многозначной зависимости в r атрибута Y от атрибута X, все остальные атрибуты r функционально зависят от Х.
Атрибут Х многозначно определяет атрибут Y, если с каждым значением x может использоваться значение y из фиксированного подмножества значений Y. Обозначается: X Y.
Избыточной функциональной зависимостью называют зависимость, заключающую в себе такую информацию, которая может быть получена на основе других зависимостей из числа использованных при проектировании БД.
Пусть r отношение со схемой R,
w, x, y, z подмножества R.
1-я аксиома вывода. Рефлексивность.
В r всегда имеет место Х -> Х
2-я аксиома вывода. Пополнение.
Если r удовлетворяет Х -> Y, то r удовлетворяет F-зависимости XZ -> Y
3-я аксиома вывода. Аддитивность (так же известна под названием объединение).
Если отношение r удовлетворяет X -> Y и X -> Z, то r удовлетворяет F-зависимости Х -> YZ. (можно объединить правые части)
4-я аксиома вывода. Проективность.
Если отношение r удовлетворяет X -> YZ, то r удовлетворяет X -> Y и X -> Z.
(разбиваем совокупность)
5-я аксиома вывода. Транзитивность.
Х -> Y и Y -> Z влечет за собой X -> Z. (избыточная транзитивная зависимость может быть удалена)
6-я аксиома вывода. Псевдотранзитивность.
Если r удовлетворяет зависимостям X -> Y и YZ -> W, то r удовлетворяет XZ -> W.
Исходная диаграмма функциональных зависимостей:
A -> B; A -> D; A -> G,
D -> G,
G -> D; G -> C; G -> F; G -> E,
E -> F,
F -> E
Удалим из исходного набора функциональных зависимостей все избыточные:
т. к. A -> D, D -> G, то A -> G исключим по аксиоме транзитивности
т. к. G -> E, E -> F, то G -> F исключим по аксиоме транзитивности
т. к. G -> E, G -> C, то по аксиоме аддитивности G -> E, C
т. к. A -> B; A -> D, то по аксиоме аддитивности A -> D, B
Окончательная диаграмма функциональных зависимостей:
Пример проектирования методом декомпозиции БД интернет-магазин.
Уточнив вопрос о том какую информацию следует хранить в базе данных, определим все атрибуты, представляющие интерес для проектируемой базы данных. Это: для каждого товара его код, название, цена, процентная скидка; ФИО, адрес, телефон каждого клиента; для каждого заказа его код, сумма, дата выполнения и количество товара для каждого заказанного названия.
Применим для всех атрибутов краткие обозначения:
Название товара НТ
Цена товара ЦТ
Процентная скидка на товар ПСТ
Код клиента КК
ФИО клиента ФИО
Адрес клиента АК
Телефон клиента ТК
Код заказа КЗ
Сумма заказа СЗ
Дата выполнения заказа ДВЗ
Количество товара для каждого заказанного названия КТЗ.
Универсальное отношение будет иметь вид: r (НТ, ЦТ, ПСТ, КК, ФИО, АК, ТК, КЗ, СЗ, ДВЗ, КТЗ).
Определив все функциональные зависимости, имеющиеся между атрибутами универсального отношения, построим диаграмму функциональных зависимостей (см. рис. 1.1).