- •Основы проектирования баз данных.
- •Функциональные зависимости.
- •Аксиомы вывода.
- •Применение аксиом вывода.
- •Ориентированные ациклические графы вывода.
- •Основные определения.
- •Покрытия и эквивалентность.
- •Минимальные покрытия.
- •Кольцевые покрытия и составные зависимости.
- •Нормальные формы реляционных баз данных.
- •Первая нормальная форма бд.
- •Аномалии и вторая нормальная форма бд.
- •Избыточность данных и третья нормальная форма.
- •Многозначные зависимости и четвертая нормальная форма.
- •Нормальная форма вида «проекция-соединение».
- •Концепция модели «Сущность-связь».
- •Типы сущностей.
- •Атрибуты.
- •Типы атрибутов.
- •Типы связей.
- •Структурные ограничения.
Аксиомы вывода.
«Деяние есть живое единство теории и практики». АРИСТОТЕЛЬ, 384-322гг. до н.э.
Множество функциональных зависимостей, заданных на конечной схеме отношения, всегда конечно. Но оно может быть черезвычайно велико, т.к. общее количество подмножество схемы 2n, гдеn – количество атрибутов. Если известны некоторые F–зависимости семейства Ф, то мы можем вывести из них все остальные. Следовательно, семейство функциональных зависимостей Ф будет не полным, если из него возможен вывод не содержащейся в нем зависимости зависимости XY. Выводимость такой зависимости обозначается как ФXY и принято говорить, что XY является логическим следствием Ф, или что XY следует из Ф.
АКСИОМА ВЫВОДА – правило, устанавливающее, что если отношение удовлетворяет определённым F–зависимостям, то оно должно удовлетворять и другим F–зависимостям. Если мы имеем неполную систему аксиом вывода, то мы можем построить по известным нам функциональным зависимостям Ф, справедливых для конкретной предметной области, полное множество функциональных зависимостей Ф+.Ясно, что именно это семейство должно полностью описать все ограничения на допустимые состояния экземпляров отношений рассматриваемой предметной области. Заметим, что в реальной жизни не всегда ясно, что является первичным: функциональные зависимости или допустимые состояния экземпляров отношений. Особенно сложной можно считать ситуацию с динамической семантикой, когда в различные моменты времени неявно меняется семантика объекта, т.е. возникают новые функциональные связи и отменяются другие. Поэтому пока мы будем считать семантику предметной области статической.
Введем и рассмотрим шесть аксиом вывода для F–зависимостей.
А1. Рефлексивность: XX.
Отношение X(X=x(r(R))) по определению имеет не более одного кортежа, следовательно XXвсегда имеет место в любом r(R).
А2. Пополнение: XY влечет XZY.
|
Z |
XY |
|
|
ZXY |
W | |||
C1 |
Z1 |
X1=X2 |
Y1=Y2 |
W1 |
|
Z1=Z2 |
X1=X2 |
Y1=Y2 |
W1 |
... |
... |
... |
... |
... |
|
... |
... |
... |
... |
C2 |
Z2 |
X2=X1 |
Y2=Y1 |
W2 |
|
Z2=Z1 |
X2=X1 |
Y2=Y1 |
W2 |
... |
... |
... |
... |
... |
|
|
... |
... |
... |
Имеет место расширение левой части F–зависимости. Еслиr(R) удовлетворяет XY, тоY(X=x(r(R))) имеет не более одного кортежа для любого Х-значения х. Если Zявляется любым подмножествомr(R), то для операций выбора справедливоXZ=xz(r(R)) (X=x(r(R)) и следовательно, Y(XZ=xz(r(R))) Y(X=x(r(R))), т.е. имеет самое большое один кортеж.
А3. Аддитивность: XY и XZ влечет XYZ.
|
XY |
|
|
|
|
|
|
| |
|
|
XZ |
|
|
XYZ |
| |||
C1 |
Y1=Y2 |
X1=X2 |
Z1=Z2 |
W1 |
|
X1=X2 |
Y1=Y2 |
Z1=Z2 |
W1 |
... |
... |
... |
... |
... |
|
... |
... |
... |
... |
C2 |
Y2=Y1 |
X2=X1 |
Z2=Z1 |
W2 |
|
X2=X1 |
Y2=Y1 |
Z2=Z1 |
W2 |
... |
... |
... |
... |
... |
|
|
... |
... |
... |
Эта аксиома позволяет объединить две F–зависимости, имеющих одинаковые левые части. Если отношение r(R) удовлетворяет XY иXZ, то обе проекции Y(X=x(r(R))) иZ(X=x(r(R))) имеют не более одного кортежа для каждого Х–значения х. Если бы отношение YZ(X=x(r(R))) имело бы более одного кортежа, то это было бы справедливо и для одного из них. Таким образом r(R) удовлетворяетF–зависимостиXYZ.
А4. Проективность: XYZ влечет XY.
|
|
|
|
XY |
| ||||
|
XYZ |
|
|
|
XZ |
| |||
C1 |
X1=X2 |
Y1=Y2 |
Z1=Z2 |
W1 |
|
Y1=Y2 |
X1=X2 |
Z1=Z2 |
W1 |
... |
... |
... |
... |
... |
|
... |
... |
... |
... |
C2 |
X2=X1 |
Y2=Y1 |
Z2=Z1 |
W2 |
|
Y2=Y1 |
X2=X1 |
Z2=Z1 |
W2 |
... |
... |
... |
... |
... |
|
|
... |
... |
... |
Эта аксиома в известном смысле обратна аксиоме аддитивности. Если r(R) удовлетворяет XYZ, тоYZ(X=x(r(R)))имеет не более одного кортежа для любого Х–значения х. Так как Y(YZ(X=x(r(R)))) = Y(X=x(r(R))), следовательноr(R) удовлетворяет иXY (а из соображений симметрии и XZ).
А5. Транзитивность: XY и YZ влечет XZ.
|
XY |
|
|
|
|
|
|
| |
|
|
YZ |
|
|
|
XZ |
| ||
C1 |
Y1=Y2 |
X1=X2 |
Z1=Z2 |
W1 |
|
Y1=Y2 |
X1=X2 |
Z1=Z2 |
W1 |
... |
... |
... |
... |
... |
|
... |
... |
... |
... |
C2 |
Y2=Y1 |
X2=X1 |
Z2=Z1 |
W2 |
|
Y2=Y1 |
X2=X1 |
Z2=Z1 |
W2 |
... |
... |
... |
... |
... |
|
... |
... |
... |
... |
Эта и следующая акксиомы наиболее мощные в системе аксиом вывода. Пусть r(R) удовлетворяетXY иYZ. Рассмотрим два кортежа с1 и с2 вr(R). Если с1(Х) = с2(Х), то из этого следует что с1(Y) = c2(Y). Последнее условие обеспечивает выполнение и c1(Z) = c2(Z). Из с1(Х) = с2(Х) вытекаетc1(Z) = c2(Z), то r(R) удовлетворяетXZ.
А6. Псевдотранзитивность: XY и YZW влечет XZW.
|
XY |
Z |
W |
|
Y |
X |
Z |
W | |
|
X |
YZW |
|
|
XZW | ||||
C1 |
X1=X2 |
Y1=Y2 |
Z1=Z2 |
W1=W2 |
|
Y1=Y2 |
X1=X2 |
Z1=Z2 |
W1=W2 |
... |
... |
... |
... |
... |
|
... |
... |
... |
... |
C2 |
X2=X1 |
Y2=Y1 |
Z2=Z1 |
W2=W1 |
|
Y2=Y1 |
X2=X1 |
Z2=Z1 |
W2=W1 |
... |
... |
... |
... |
... |
|
|
... |
... |
... |
Пусть r(R) удовлетворяетXY иYZW. Рассмотрим два кортежа с1 и с2 вr(R). Если с1(Х) = с2(Х), то из этого следует что с1(Y) = c2(Y). Аналогично, если с1(YZ) = с2(YZ), то из этого следует что с1(W) = c2(W). Из с1(ХZ) = с2(ХZ) следует что с1(X) = c2(X). Последнее условие обеспечивает выполнение и c1(Z) = c2(Z). Значит мы имеем с1(Y) = с2(Y) и с1(YZ)=c2(YZ) из чего и вытекаетc1(W) = c2(W), или что r(R) удовлетворяетXZW.