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




Операции над отношениями. - часть 6


В случае существования двух или более соединений, количество различных композиций может варьироваться от 1 до общего количества различных соединений. Ha рис.12 представлен пример двух отношений, имеющих несколько соединений и всего одну композицию. Заметьте, что точка неоднозначности c теряется при композиции R и S, т.к. однозначное соответствие устанавливается через точки a,b,d,e.

R · S (проект поставщик)
1 1
1 2
2 1
2 2

Рисунок 10. Естественная композиция отношений R и S (показанных на рис.5)

T (проект поставщик)
1 2
2 1

Рисунок 11. Другая композиция отношений R и S (показанных на рис.5)

R

(поставщик

деталь)

S

(деталь

проект)


1

a

a

g


1

b

b

f


1

c

c

f


2

c

c

g


2

d

d

g


2

e

e

f

Рисунок 12. Много соединений, только одна композиция

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

Недостаточное понимание понятия композиции привело некоторых разработчиков систем к ситуации, которую можно назвать ловушкой связей. Эта ловушка может быть проиллюстрирована на следующем примере. Предположим, что описание каждого поставщика связано указателями с описаниями каждой из деталей, поставляемых этим поставщиком, и, аналогичным образом, описание каждой детали связано с описаниями каждого проекта, использующего эту деталь. Напрашивающийся вывод, являющийся, вообще говоря, ошибочным, заключается в том, что если проследовать по всем путям от данного поставщика через детали, поставляемые им к проектам, в которых используются эти детали, то можно получить правильное множество всех проектов, в которых участвует этот поставщик. Такое заключение верно только в очень частном случае, когда искомое отношение между проектами и поставщиками является, по существу, естественным соединением двух других отношений – и конечно, мы должны добавить фразу "в любой момент времени", т.к.


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