Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретические основы реляционных баз данных. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
936 Кб
Скачать

- 119 -

C{ ДОЦЕНТ СТУДЕНТ ДЕНЬ }[ ДОЦЕНТ=« Кузьмин »]( расписание)=4 {C{СТУДЕНТ }[ ДОЦЕНТ =« Кузьмин »]( расписание )=2

C{ ДЕНЬ}[ ДОЦЕНТ=« Кузьмин »](расписание)=2

C{ ДОЦЕНТ СТУДЕНТ ДЕНЬ }[ ДОЦЕНТ=« Петров »]( расписание)=2 {C{СТУДЕНТ }[ ДОЦЕНТ=« Петров »](расписание)=2

C{ ДЕНЬ}[ ДОЦЕНТ=« Петров »]( расписание)=2

C{ ДОЦЕНТ СТУДЕНТ ДЕНЬ }[ ДОЦЕНТ=« Потапов »]( расписание)=1 {C{СТУДЕНТ }[ ДОЦЕНТ =« Потапов »](расписание)=1

C{ ДЕНЬ}[ ДОЦЕНТ=« Потапов »]( расписание)=1

{C{ ДОЦЕНТ СТУДЕНТ ДЕНЬ }[ ДОЦЕНТ=« Гущин »]( расписание)=2 C{СТУДЕНТ }[ ДОЦЕНТ=« Гущин »]( расписание)=2

C{ ДЕНЬ}[ ДОЦЕНТ=« Гущин »]( расписание)=1

У нас имеется четыре значения атрибута ДОЦЕНТ, и для каждого из них выполняется условие c = c1 c2, следовательно, отношение расписание удовлетворяет многозначной зависимости ДОЦЕНТ >СТУДЕНТ.

Что касается отношения расписание, то здесь проверку не проходят кортежи, удовлетворяющие условию ДОЦЕНТ= «Кузьмин»:

C{ ДОЦЕНТ СТУДЕНТ ДЕНЬ }[ ДОЦЕНТ=« Кузьмин »]( расписание)=3 {C{СТУДЕНТ }[ ДОЦЕНТ=« Кузьмин »]( расписание )=2

C{ ДЕНЬ}[ ДОЦЕНТ =« Кузьмин »]( расписание)=2

На основе приведенной проверки дается еще одно определение многозначной зависимости.

Отношение r(R) удовлетворяет многозначной зависимости X >Y, если для каждого X-значения x и Y-значения y в r выполняется условие

cZ [X = x] (r) = cZ [ X Y = x y ] (r), где X Y R, Z = R - ( X Y ).

3.6.2. Многозначные и функциональные зависимости

После знакомства с многозначными зависимостями легко прийти к выводу о том, что они являются более общим видом зависимостей, чем функциональные. Определение многозначной зависимости не противоречит определению функциональной зависимости. Следовательно, если имеется отношение r(R) и X Y R, то когда

- 120 -

отношение r удовлетворяет F-зависимости X Y, то оно удовлетворяет и MV-зависимости X >Y.

Естественно возникает вопрос о том, какие многозначные зависимости можно определить на основе уже известного множества F-зависимостей F над схемой R. Уже выяснено, что если зависимость X Y принадлежит к замыканию F, то отношение удовлетворяет и MVзависимости X >Y . Также известно, что отношение обязательно будет удовлетворять и MV-зависимости X >R - XY.

Осталось проверить: существуют ли в отношении r MVзависимости, которые совершенно не связаны ни с одной из F- зависимостей с r? Отрицательный ответ можно получить из теоремы, которая приводится без доказательств.

Теорема. Имеется множество F-зависимостей F над схемой R. XZZ R и Z = R - (XY). Если ни X, ни Z не являются подмножествами X+, то существует отношение r, которое удовлетворяет F и не удовлетворяет MV-зависимости X >Y.

Из теоремы следует, что все MV-зависимости, выводимые из F- зависимостей, имеют вид X >Y , где Y X+ или R - (XY) X+.

Пример. Пусть R = ABCDEI и F = {A BC, C D}. В этом случае из F следует A >BCD, A >C, потому что A+ = ABCD, и не следует зависимость A >DE, так как ее правая часть DE не является подмножеством A+.

3.6.3. Аксиомы вывода для многозначных зависимостей

Ранее были определены MV-зависимости, которые можно было вывести из F-зависимостей, и теперь осталось определить, каким образом можно вывести MV-зависимости из множества MVзависимостей. Определим класс MV- и F-зависимостей, выводимых из класса MV- и F-зависимостей.

3.6.4. Только многозначные зависимости

Всего рассматривается семь аксиом, среди которых первые шесть можно рассматривать как аналоги аксиом вывода для F-зависимостей, а седьмую мы уже практически рассматривали. Предварительные условия: имеются r(R) и W, X, Y, Z — подмножества схемы R.

M1.

Рефлексивность: X

 

X.

 

 

 

 

M2.

Пополнение: X

 

 

 

 

 

 

M3.

Y ZX Y.

 

 

 

 

Аддитивность:

 

 

 

Z

X

 

X

 

 

Y и X

 

YZ.

M4.

X — Y.

 

 

 

 

 

- 121 -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

Y, X

Z

X

X

 

Y и X

 

 

Проективность:

 

 

 

 

 

 

 

 

 

 

M5.

 

 

 

 

 

 

 

 

 

 

 

Y и Y

 

 

Z

 

X

 

Z — Y.

 

 

M6.

Транзитивность: X

 

 

 

 

 

 

Псевдотранзитивность: X

 

 

Y и YW

 

 

Z

 

X W

 

M7.

Z — (Y W).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y и Z = R — (X Y)

X

 

 

 

> Z.

 

 

 

 

Дополнение: X

 

 

 

 

 

 

 

 

Пример. Пусть R =

ABCDE и F = {A

BC, DE

 

 

C}, тогда можно

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вывести следующие MV-зависимости:

 

 

 

 

 

 

 

 

 

 

 

1.

A

BC A

 

DE (дополнение).

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

A DE, DE C A

 

C (транзитивность).

 

 

 

 

 

 

 

3.

A C AD C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

 

 

 

 

 

(пополнение).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BE (дополнение).

 

 

 

 

 

 

 

 

 

 

 

 

 

AD C

 

AD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

зависимостям удовлетворяет отношение r(ABCDE).

 

Всем этим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r ( A

B

C

D

 

E)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

b

c

d

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

b

c

d

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

b

c

d

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

b

c

d

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

b

c

d

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.6.5. Функциональные и многозначные зависимости

Множества, состоящие из многозначных и функциональных зависимостей, можно комбинировать только с помощью двух аксиом. Пусть имеются r(R) и W, X, Y, Z — подмножества R.

C1. X Y X >Y.

C2. X >Y, Z W, W R, Y Z= X W.

Пример. Имеется R = ABCDE и F = {A >BC, D C}. Согласно C2 выводится F-зависимость A C. Приведенное ниже отношение удовлетворяет F.

r(

A

B

C

D

E )

 

a

b

c

d

e

 

 

a

b

c

d

e

 

a

b

c

d

e

 

a

b

c

d

e

3.6.6. Зависимости соединения

Рассмотренные нами виды зависимостей (F-зависимости и MVзависимости) позволяют производить декомпозицию отношений без потерь путем разделения их на два отношения, однако некоторые

- 122 -

отношения обладают свойством декомпозиции без потерь на число отношений больше, чем два, и не обладают этим свойством для любых двух из них.

Пример. Отношение r представлено своими проекциями:

r( A

B

C

) AB(r) = A

B

AC(r) = A

C BC(r) =

B

C

 

a1

b1

c1

 

a1

b1

 

a1

c1

 

b1

c1

 

a1

b2

c2

 

a1

b2

 

a1

c2

b2

c2

 

a3

b3

c3

 

a3

b3

 

a3

c3

b3

c3

 

a4

b3

c4

 

a4

b3

 

a4

c4

b3

c4

 

a5

b5

c5

 

a5

b5

 

a5

c5

b5

c5

 

a6

b6

c5

 

a6

b6

 

a6

c5

b6

c5

Отношение разлагается на проекции AB, AC, BC, но при этом не удовлетворяет ни одной MV-зависимости и, следовательно, не имеет декомпозиции без потерь на пары отношений по схемам R1 и R2 такие, что R1 ABC и R2 ABC.

Пусть R = {R1, R2, ..., Rp} — множество схем отношений над множеством атрибутов U, тогда отношение r(U) удовлетворяет зависимости соединения (J-зависимости) *[R1, R2, ..., Rp], если r разлагается без потерь на R1, R2, ..., Rp , то есть выполняется условие r=π rR1(r ) π R2 (r) ... π Rp(r ) .

Вместо записи *[R1, R2, ..., Rp] можно использовать следующую форму: *[ R].

Пример. Отношение r удовлетворяет зависимости соединения *[AB, AC, BC].

Для выполнения зависимости соединения *[R1, R2, ..., Rp] в отношении r(U) соблюдается равенство U = R1 R2 ... Rp. Также следует заметить, что многозначные зависимости являются частным случаем зависимостей соединения. Известно, что отношение r удовлетворяет многозначной зависимости X Y тогда, когда отношение разлагается

без потерь на два отношения со схемами R1 = XY и R2 = XZ, что по определению полностью совпадает с зависимостью соединения *[XY, XZ]. С другой стороны, зависимость соединения *[R1, R2] аналогична зависимости соединения R1 R2 > R1.

Определение, данное ранее для многозначных зависимостей, можно адаптировать для зависимостей соединения. В модернизированном виде оно будет выглядеть следующим образом:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]