1) имеем: X > X (из правила рефлексивности вывода Армстронга);
2) имеем далее: X ? Z > X (получаем, применяя сначала правило пополнения вывода Армстронга, а потом как следствие первого шага доказательства).
Правило тривиальности доказано.
2. Проведем пошаговое доказательство правила аддитивности:
1) имеем: X > Y (это посылка 1);
2) имеем: X > Z (это посылка 2);
3) имеем: Y ? Z > Y ? Z (из правила рефлексивности вывода Армстронга);
4) имеем: X ? Z > Y ? Z (получаем при помощи применения правила псевдотранзитивности вывода Армстронга, а потом как следствие первого и третьего шагов доказательства);
5) имеем: X ? X > Y ? Z (получаем, применяя правило псевдотранзитивности вывода Армстронга, а после следует из второго и четвертого шагов);
6) имеем X > Y ? Z (следует из пятого шага).
Правило аддитивности доказано.
3. И, наконец, проведем построение доказательства правила проективности:
1) имеем: X > Y ? Z, X > Y ? Z (это посылка);
2) имеем: Y > Y, Z > Z (выводится при помощи правила рефлексивности вывода Армстронга);
3) имеем: Y ? z > y, Y ? z > Z (получается из правила пополнения вывода Армстронга и следствием из второго шага доказательства);
4) имеем: X > Y, X > Z (получается, применением правила псевдотранзитивности вывода Армстронга, а затем как следствие из первого и третьего шагов доказательства).
Правило проективности доказано.
Все производные правила вывода доказаны.
4. Полнота системы правил Армстронга
Пусть
Обозначим через inv <
Итак, это множество ограничений, накладываемое функциональными зависимостями, расшифровывается следующим образом: для любого правила из системы функциональных зависимостей X > Y, принадлежащего множеству функциональных зависимостей
Пусть какое-то отношение
Применяя правила вывода Армстронга к функциональным зависимостям, определенным для множества
Правило вывода 1.
Правило вывода 2.
Правило вывода 3.
Возвращаясь к нашим рассуждениям, пополним множество
Действительно, такое название вполне логично, ведь мы собственноручно путем длительного построения «замкнули» множество имеющихся функциональных зависимостей само на себе, прибавив (отсюда «+») все новые функциональные зависимости, получившиеся из имеющихся.
Необходимо заметить, что этот процесс построения замыкания конечен, ведь конечна сама схема отношения, на которой и проводятся все эти построения.
Само собой разумеется, что замыкание является надмножеством замыкаемого множества (действительно, ведь оно больше!) и ни сколько не изменяется при своем повторном замыкании.
Если записать только что сказанное в формулярном виде, то получим:
Далее из доказанной истинности (т. е. законности, правомерности) правил вывода Армстронга и определения замыкания следует, что любое отношение, удовлетворяющее ограничениям заданного множества функциональных зависимостей, будет удовлетворять ограничению зависимости, принадлежащей замыканию.
X > Y ?
Итак, теорема полноты системы правил вывода Армстронга утверждает, что внешняя импликация может совершенно законно и обоснованно быть заменена эквивалентностью.
(Доказательство этой теоремы мы рассматривать не будем, так как сам процесс доказательства не столь важен в нашем конкретном курсе лекций.)
Лекция № 10. Нормальные формы
1. Смысл нормализации схем баз данных
Понятие, которое мы будем рассматривать в данном разделе, связано с понятием функциональных зависимостей, т. е. смысл нормализации схем баз данных неразрывно связан с понятием ограничений, накладываемых системой функциональных зависимостей, и во многом следует из этого понятия.
Исходной точкой любого проектирования базы данных является представление предметной области в виде одного или нескольких отношений, и на каждом шаге проектирования производится некоторый набор схем отношений, обладающих «улучшенными» свойствами. Таким образом, процесс проектирования