Определение второй нормальной формы(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).
Читать дальше