Понятие многозначной зависимости

Отношение может находиться в 3НФ или в НФБК и обладать нежелательными свойствами. Рассмотрим от­ношение СБЫТ (табл. 3.7).

Кортеж <z t m> означает, что завод z производит товар t и снабжает магазин m. Предположим, что завод произ­водит различные товары и снабжает разные магазины. Следовательно, имеются две независимые друг от друга функции: ПРОИЗВОДСТВО и СНАБЖЕНИЕ (рис. 3.4), т. е. в отношении СБЫТ не выполняются F-зависимости ЗАВОДàTOBAP и ЗАВОДàМАГАЗИН. Однако это отношение без потери информации разлагается на два отношения: ПРОИЗВОДСТВО (табл. 3.8) и СНАБЖЕНИЕ (табл. 3.9).

Рассмотрим отношение СБЫТ1 с такой же схемой (табл. 3.7).

Понятие многозначной зависимости - student2.ru

Рис. 3.4. Функция отношения СБЫТ

Таблица 3.7. Отношение СБЫТ

ЗАВОД ТОВАР МАГАЗИН
z1 t1 m1
z1 t1 m2
z1 t2 m1
z1 t2 m2
z2 t2 m2

Таблица 3.8. Производство

ЗАВОД ТОВАР
z1 t1
z1 t2
z2 t2

Таблица 3.9. Снабжение

ЗАВОД МАГАЗИН
z1 m1
z1 m2
z2 m2

Таблица 3.10. Отношение СБЫТ1

ЗАВОД ТОВАР МАГАЗИН
z1 t1 m1
z1 t1 m2
z1 t2 m1
z2 t2 m2

Разложив это отношение на схемы ПРОИЗВОДСТВО (ЗАВОД ТОВАР) и СНАБЖЕНИЕ (ЗАВОД МАГАЗИН), снова получим соответствующие проекции в табл. 3.8 и 3.9. Однако соединение данных проекций не восстанавливает исходного отношения, так как появляется кортеж <z1 t2 m2>

Проанализируем, какими же свойствами отличаются отношения СБЫТ и СБЫТ1. В первом случае если некоторый товар, например t2, производится заводом, например z1, то он поставляется во все магазины, а во втором случае — нет. В действительности, если завод z1 начинает снабжать новый магазин m3, то в отношении СБЫТ нужно создать два новых кортежа: по одному для каждого товара. Это связано с взаимной независимостью двух функций (см. рис. 3.4) и лучше осуществляется с помощью двух проекций отношения СБЫТ.

Пусть R(A) —отношение, где А = {А1, А2,...,Аn}, X, У, Z — подмножества А. Имеет место многозначная зависимость в отношении R, которую обозначают XààY/Z, если при наличии в R кортежей <х у z> и <х у' z'> должны обязательно быть кортежи <х у' z> и <х у z'>.

Так, для рассмотренного выше отношения СБЫТ имеем

ЗАВОДàà ТОВАР/МАГАЗИН, что означает:

если завод производит товар, то он поставляется во все магазины, которые снабжаются заводом;

если завод снабжает некоторый магазин, то магазину поставляются все товары, производимые заводом;

все товары, производимые заводом, продаются мага­зинами, которые снабжаются заводом.

Пусть R(A) - реляционная схема, X, У - непересекающиеся подмножества A, Z = A - (X, У). Отношение R удовлетворяет многозначной зависимости (MV-зависимости), если для любых кортежей t1 и t2 из R, для которых t1(X)=t2(X), в R существует кортеж t3, для которого t3(Х) = t1(Х), t3(У)=t1(У), t3(Z)=t2(Z). Из симметрии определения относительно t1 и t2 получаем, что в R имеется также кортеж t4, для которого t4(X)=t1{X), t4(Y)=t2{Y) и t4(Z) = t1{Z). Из определения MV-зависимости вытекает следующее утверждение.

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

В определении MV-зависимости XààY требуется, чтобы ее левая и правая части различались, т. е. чтобы пересечение X и Y было пустым. Для этого есть две причины: во-первых, свойство транзитивности не всегда выполняется, если снято ограничение, и, во-вторых, проектировщик использует на практике MV-зависимости с непересекающимися множествами атрибутов.

Предположим, что в определении MV-зависимости XààY пересечение X и Y не является пустым, т. е. отношение r(R) удовлетворяет XààY и Y' = Y — X. Тогда r(R) удовлетворяет XààY. Действительно, в соответствии с определением MV-зависимости XààY найдутся кортежи t1 и t2, для которых t1 (X) = t2 (X), и должен быть кортеж t3, для которого t3{X) = t1(X), t3(Y) =t1(Y), t3(Z)=t2(Z). Но если t3(Y) = t1(У), то t3(Y')= t1(Y'), так как У' ≤Y. Итак, r удовлетворяет XààY'.

Предположим, что пересечение X и У пусто и отношение r(R) удовлетворяет ХààY. Если X' Понятие многозначной зависимости - student2.ru Y, то X àà YХ' согласно модифицированному определению MV-зависимости; если t1, t2 принадлежит r и t1 (X) = t2 (X) существует кортеж t3, для которого t3 (X) = t1 (X), t3 (Y) = t1(Y), t3 (Z) = t2 (Z). Следовательно, t3 (YX') = t1 (YX').

Связь MV-зависимости с декомпозициями без потерь можно выразить следующим утверждением.

Утверждение. Пусть r(R) —отношение, X, Y, Z — подмножества из R такие, что Z=R—{XY). Отношение r удовлетворяет MV-зависимости Хàà У тогда и только тогда, когда r без потери информации разлагается на отношения со схемами R1 = XY и R2 = XZ.

Для проверки выполнимости XààY в отношении r его нужно спроектировать на XY и X(R—XY), соединить и результат сравнить с r. Можно проверить MV-зависимость, не используя проектирования и соединения, а только сортировку и подсчет. Пусть Z = R—(XY), R1 = XY, R2 = XZ. Если r1R1(r) и r2R2(r), то r1 ∞ r2 всегда содержит r. Пусть, далее, для некоторого x, принадлежащего Х, существует с1 кортежей в r1 и с2 кортежей в r2 со значением х. Пусть с — число таких кортежей в r. Если для любого x, принадлежащего Х, c=c1×c2 , то r=r1 ∞ r2

Наши рекомендации