Классика баз данных - статьи

       

S является функцией, то при


Если либо Π21(R), либо S является функцией, то при соединении R с S не может возникнуть никакой точки неоднозначности. В этом случае единственным соединением R с S является естественное соединение. Заметим, что повторяющееся уточнение "R с S" является необходимым, поскольку S могло бы быть соединимым с R (как и R с S), и это соединение потребовало бы совершенно отдельного рассмотрения. На рис. 4 ни одно из отношений R, Π21(R), S, Π21(S) не является функцией.

Неоднозначность при соединении R с S иногда можно разрешить при помощи других отношений. Предположим, что имеется или может быть выведено из других источников, независимых от R и S, отношение T на доменах project и supplier со следующими свойствами:


  1. Π1(T) = Π2(S);


  2. Π2(T) = Π1(R);


  3. T(j, s) →
    p(R(s, p) ∧ S(p, j));


  4. R(s, p) →
    j(S(p, j) ∧ T(j, s));


  5. S(p, j) →
    s(T(j, s) ∧ R(s, p)).


Тогда мы можем построить трехстороннее соединение отношений R, S, T, т.е. тернарное отношение U, такое что

Π12(U) = R;

Π23(U) = S;

Π31(U) = T.

Такое соединение мы будем называть циклическим 3-соединением, чтобы отличать его от линейного 3-соединения, которое является кватернарным отношением V, таким что

Π12(V) = R;

Π23(V) = S;

Π34(V) = T.

Хотя может существовать более одного циклического 3-соединения (см., например, рис. 7 и 8), условия, при которых это может случиться, включают намного более строгие ограничения, чем те, которые допускают множественность 2-соединений. Более точно, R, S, T должны содержать точки неоднозначности по отношению к соединению R с S (скажем, точку x), S с T (скажем, y) и T с R (скажем, z). Кроме того, точка y должна быть связана с точкой x в S, точка z с точкой y – в T, и точка x с точкой z – в R. Заметим, что на рис. 7 этим свойством обладают точки

x = a; y = d; z = 2.

R ( s p ) S ( p j ) T ( j s )
1 a a d d 1
2 a a e d 2
2 b b d e 2
b e
<

Содержание  Назад  Вперед