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

       

Такое соединение мы будем называть


π12(U)=R, π23(U)=S, π31(U)=T

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

π12(V)=R, π23(V)=S, π34(V)=T.

Поскольку возможно существование более чем одного циклического 3-соединения (см., например, рис.8,9), обстоятельства, при которых это может происходить, накладывают гораздо более сильные ограничения, чем условия множественности 2-соединений. Более точно, отношения R, S, T должны содержать точки неоднозначности соединений R и S (скажем, точка x), S и T (скажем, y) и T и R ( скажем, z) и, более того, y должно соответствовать x в S, z соответствовать y в T и x соответствовать z в R. Заметьте, что на рис.8 точки 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 e 2
Рисунок 8.Бинарные отношения с несколькими циклическими 3-соединениями
U (s p j) U" (s p j)
1 a d 1 a d
2 a e 2 a d
2 b d 2 a e
2 b e 2 b d
2 b e
Рисунок 9.Два циклических 3-соединения отношений c рис.8

Естественное линейное соединение трех бинарных отношений R, S, T определяется так:

R*S*T = { (a,b,c,d) : R(a,b) ∧ S(b,c) ∧ T(c,d) },

где скобки в левой части равенства не нужны, т.к. естественное 2-соединение (*) ассоциативно. Для получения циклического аналога мы введем оператор ν, выдающий в качестве результата отношение степени n-1 из отношения степени n, связывая вместе его концы. Если R есть n-арное отношение (n≥2), то связывание R определяется уравнением

ν(R) = { (a1, a2, ....,an-1) : R(a1, a2, ...., an-1, an) ∧ a1=an}

Теперь мы можем представить естественное циклическое 3-соединение R, S, T

выражением

ν(R*S*T).

Обобщение понятий линейного и циклического 3-соединений и их естественных аналогов для соединения n бинарных отношений (где n≥3) очевидно.

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