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

- 114 -

Операции удаления посторонних атрибутов в кольцевых покрытиях выполняются аналогично обычным покрытиям. Для упрощения редукции можно пользоваться правилом (X1 X2 ...

Xk) Y= для любой CF-зависимости (X1, X2, ... , Xk) Y. К сожалению, минимальное редуцированное кольцевое покрытие не может быть получено простой группировкой зависимостей из минимального редуцированного покрытия множества F-зависимостей.

Пример. Рассмотрим редуцированное и минимальное множество

F-зависимостей F = {B1B2 A, D1D2 B1B2, B1 C1, B2 C2, D1 A, D2 A, AB1C2 D2, AB2C1 D1}. Обратим внимание, что

единственными эквивалентными левыми множествами являются B1B2 и D1D2, причем, если F-зависимость D1D2 B1B2 задана, то зависимость B1B2 D1D2 выводится из F через B1B2 A и атрибут A здесь посторонним не является, поскольку тогда разрушается эквивалентность B1B2 D1D2. После группировки по CFзависимостям будет получено множество G = { (B1B2, D1D2) A,

(B1) C1, (B2) C2, (D1) A, (D2) A, (AB1C2) D2, (AB2C1) D1}. Множество G в отличие от F не редуцировано, поскольку атрибут A

можно удалить из правой части CF-зависимости (B1B2, D1D2) A без изменения замыкания G, и уже зависимость (B1B2, D1D2) сама по себе несет информацию о B1B2 D1D2. Отсюда следует вывод о необходимости проведения дополнительной редукции.

3.6. Многозначные зависимости и зависимости соединения

Кроме рассмотренных уже F-зависимостей, достаточно редко, но все-таки встречаются зависимости между данными другого рода. Для примера рассмотрим отношение, которое описывает следующие отношения между данными. «Преподаватели руководят научной работой студентов и встречаются с ними в определенные дни недели. Доцент Кузьмин консультирует Колобаева и Моторина по вторникам и четвергам. Доцент Петров консультирует Сердюка по средам и пятницам. Доцент Потапов консультирует Кошкина по средам. Доцент Гущин консультирует Пронина и Кирилюка по вторникам».

расписание( ДОЦЕНТ

СТУДЕНТ

ДЕНЬ

)

 

Кузьмин

Колобаев

вторник

 

 

Кузьмин

Колобаев

четверг

 

 

Кузьмин

Моторин

вторник

 

 

Кузьмин

Моторин

четверг

 

 

Петров

Сердюк

среда

 

 

Петров

Сердюк

пятница

 

 

Потапов

Кошкин

среда

 

 

Гущин

Пронин

вторник

 

 

Гущин

Кирилюк

вторник

 

- 115 -

Кортеж < p s d > в отношении расписание означает, что преподаватель p в день d проводит консультацию со студентом s. Данное отношение не удовлетворяет F-зависимостям ДОЦЕНТ СТУДЕНТ, ДОЦЕНТ ДЕНЬ, однако оно обладает одним интересным свойством — способностью разлагаться без потерь на два отношения со схемами R1= ДОЦЕНТ СТУДЕНТ и R2= ДОЦЕНТ ДЕНЬ.

r( ДОЦЕНТ

СТУДЕНТ

) s ( ДОЦЕНТ

ДЕНЬ

)

 

Кузьмин

Колобаев

 

 

Кузьмин

вторник

 

 

Кузьмин

Моторин

 

 

Кузьмин

четверг

 

 

Петров

Сердюк

 

 

Петров

среда

 

 

Потапов

Кошкин

 

 

Петров

пятница

 

 

Гущин

Пронин

 

 

Потапов

среда

 

 

Гущин

Кирилюк

 

 

Гущин

вторник

 

Как видно из таблицы, вместо девяти кортежей в отношении расписание мы имеет два отношения, в которых оказалось меньше кортежей, чем в исходном (на то, что число кортежей одинаково в обоих отношениях, внимания обращать не стоит). Особенно важно то, что после соединения этих отношений будет восстановлено исходное отношение:

расписание = {ДОЦЕНТ, СТУДЕНТ}( расписание) {ДОЦЕНТ, ДЕНЬ }

( расписание)

Рассмотрим еще один вариант отношения

расписание ( ПРЕПОДАВАТЕЛЬ СТУДЕНТ ДЕНЬ_НЕДЕЛИ )

Кузьмин

Колобаев

вторник

Кузьмин

Колобаев

четверг

Кузьмин

Моторин

вторник

Петров

Сердюк

среда

Петров

Сердюк

пятница

Потапов

Кошкин

среда

Гущин

Пронин

вторник

Гущин

Кирилюк

вторник

После декомпозиции по той же схеме получаются такие же отношения, что и для отношения расписание:

расписание = {ДОЦЕНТ, СТУДЕНТ}( расписание ) {ДОЦЕНТ, ДЕНЬ }

( расписание )

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

-116 -

3.6.1.Многозначные зависимости

Теперь следует определить, какие свойства имеются у отношения расписание и отсутствуют у отношения расписание . Главное отличие заключается в том, что при анализе отношения расписание можно заметить, что преподаватель, консультирующий студента в один из указанных в расписании дней, обязательно консультирует его и в любой другой указанный день. Так, если Кузьмин консультирует Колобаева во вторник, то он его консультирует и во второй указанный в расписании Кузьмина день (четверг).

Отношение расписание этому условию не удовлетворяет, поскольку тот же Кузьмин, консультируя Моторина по вторникам, не консультирует его по четвергам.

Выявленное свойство можно сформулировать иначе. Если отношение расписание содержит кортежи < p s d > и < p s d >, то обязательно должен содержаться и кортеж < p s d >.

Если R — схема отношения, X и Y — непересекающиеся подмножества R, а Z = R - (X Y), тогда отношение r(R) удовлетворяет многозначной (MV) зависимости X Y, если

для любых двух кортежей t1 и t2 из отношения r , удовлетворяющих условию t1(X)=t2(X), следует, что в отношении r должен быть кортеж t3 , для которого выполняются условия t3(X)=t1(X), t3(Y)=t1(Y) и t3(Z)=t2(Z), и кортеж t4 , для которого выполняются условия t4(X)=t1(X), t4(Y)=t2(Y) и t4(Z)=t1(Z).

Данное определение следует пояснить. Попробуем доказать, что

отношение расписание удовлетворяет многозначной зависимости

ДОЦЕНТ

 

СТУДЕНТ. Так, с кортежами, удовлетворяющими

условию ДОЦЕНТ = «Кузьмин», все сразу ясно. Есть кортеж <Кузьмин Колобаев вторник> и кортеж <Кузьмин Моторин четверг>, значит, отношение должно содержать кортежи <Кузьмин Колобаев четверг > и <Кузьмин Моторин вторник>. Кортеж ДОЦЕНТ = «Потапов» существует в единственном экземпляре и, следовательно, по определению не противоречит многозначной зависимости. Кортежи ДОЦЕНТ = «Гущин» также не противоречат определению, поскольку в них имеются дубли значения атрибута ДЕНЬ. Таким образом, все кортежи отношения расписание удовлетворяют MV-зависимости ДОЦЕНТ СТУДЕНТ. Отношение же расписание содержит кортежи

<Кузьмин Колобаев четверг> и <Кузьмин Моторин вторник>, однако

- 117 -

не содержит кортеж <Кузьмин Моторин четверг> и, следовательно, не удовлетворяет приведенной многозначной зависимости.

Обратим внимание на то, что отношение расписание

 

 

СТУДЕНТ, но и

удовлетворяет не только MV-зависимости ДОЦЕНТ

зависимости ДОЦЕНТ ДЕНЬ. Это совпадение

неслучайно.

 

 

Лемма. Если отношение r(R) удовлетворяет MV-зависимости X Y и Z=R-(XY), то отношение удовлетворяет и

зависимости X Z.

Рассмотрим, каким образом MV-зависимости связаны со свойством отношений разлагаться без потерь информации.

Теорема. Если имеется отношение r(R), XYZ R и Z=R-(XY), то оно удовлетворяет MV-зависимости X Y только тогда,

когда оно разлагается без потерь информации на два отношения со схемами R1=XY и R2=XZ.

Действительно, если в отношении r выполняется MV-зависимость X Y, то в результате декомпозиции будут получены два отношения

r1 R1 (r) и r2 R2 (r) . Пусть в отношении r1 r2 имеется кортеж t, тогда по определению операции соединения должны также существовать кортежи t1 r1 и t2 r2 такие, что t(X) = t1(X) = t2(X), t(Y) = t1(Y), t(Z) = t2(Z). С одной стороны, r1 и r2 являются проекциями отношения r и, следовательно, должны существовать кортежи t 1 и t 2, для которых t1(XY)= t 1(XY) и t2(XZ) =t 2(XZ). Из зависимости X Y

следует, что t должен принадлежать r, поскольку r должно содержать кортеж t3 с t3(X)= t 1(X), t3(Y)= t 1(Y), t3(Z)= t 2(Z), а эта запись и служит описанием кортежа t.

С другой стороны, если предположить, что r разлагается без потерь по указанной схеме, то пусть t1 и t2 — кортежи из r, для которых t1(X) = t2(X). Отношение r1 содержит кортеж t 1 = t1(XY). Отношение

r2 — кортеж t 2 = t2(XY). Так как r=r1 r2 , то оно содержит кортеж,

для которого t(XY) = t1(XY) и t(XZ) = t2(XZ). Кортеж t — результат

 

 

 

соединения t 1 и

t 2, следовательно, t1 и t2 не противоречат MV-

зависимости X

 

Y и само отношение r удовлетворяет X Y.

Рассмотренная теорема позволяет построить алгоритм проверки многозначных зависимостей:

X Y { да, еслиr=π XY (r ) π XZ (r), нет, еслиr π XY (r ) π XZ (r) .

- 118 -

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

Известно, что Z=R-(XY), X Y= , R1=XY, R2=XZ и r1 R1 (r)

и r2 R2 (r) . Тогда результат r1 r2 всегда будет содержать r, а

многозначная зависимость будет выполняться только в том случае, если результат соединения будет равен исходному отношению. Если в исходном отношении содержалось c кортежей с одинаковыми X- значениями x, тогда в результате проекции будет получено c1 таких значений в r1 и c2 таких значений в r2. Очевидно, что условие

r=r1 r2 будет соблюдаться только при соблюдении условия

c = c1 c2 для всех X-значений x атрибута X.

Для облегчения проверки используется функция cW[X=x], которая является отображением отношения на неотрицательные целые числа следующим образом:

cW [X = x] (r) = | W ( X=x(r)) |. Пример. Имеется отношение.

cДОЦЕНТ [ДОЦЕНТ = «Кузьмин»] (расписание) = 1,

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

Результатам, возвращаемым функцией, соответствуют количества кортежей в следующих отношениях:

r( ДОЦЕНТ ) r ( СТУДЕНТ

) r ( СТУДЕНТ

ДЕНЬ

)

 

Кузьмин

 

Колобаев

 

Колобаев

вторник

 

 

 

 

Моторин

 

Моторин

четверг

 

 

 

 

 

 

Колобаев

вторник

 

 

 

 

 

 

Моторин

четверг

 

Для проверки MV-зависимости X > Y достаточно, чтобы для каждого X-значения x в r выполнялось:

cR [X = x] (r) = cXY [X = x] (r) cXZ [X = x] (r).

Поскольку всегда справедливо cXW [X = x] = cW [X = x], то условие проверки можно записать в более компактном виде:

cR [X = x] (r) = cY [X = x] (r) cZ [X = x] (r).

Пример. Для отношения расписание проверим зависимость ДОЦЕНТ >СТУДЕНТ.

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