Wygląda na to, że źle odczytałeś specyfikację. Element jest dostarczany do centrum detalicznego UPS, a następnie wysyłany do miejsca przeznaczenia. Zastanówmy się jednak nad trójstronną relacją, w której wysyłany przedmiot po zdarzeniu transportowym dociera do określonego miejsca docelowego .
To jedna z wielu możliwych relacji między tymi trzema podmiotami.
Tak. Ale trójskładnikowy związek można wyrazić za pomocą tych diagramów binarnych relacji. (I nie odwrotnie).
Każda tabela — zmienna podstawowa lub wynik zapytania — zawiera wiersze, które uczestniczą w określonej relacji. Możemy scharakteryzować relację za pomocą predykatu --szablon instrukcji sparametryzowany przez atrybuty.
Tabela zawiera wiersze, których wartości atrybutów stanowią prawdziwe stwierdzenie z jego predykatu. Predykat zmiennej bazowej jest podawany przez DBA.
-- shipped item ItemNumber is received by retail center UniqueId
SELECT * FROM ReceivedFrom
-- shipped item ItemNumber takes transportation event ScheduleNumber
SELECT * FROM ShippedVia
Predykat wyrażenia zapytania jest zbudowany z jego operatorów i argumentów. Np. predykatem NATURAL JOIN dwóch tabel jest AND predykatów tabel.
-- shipped item ItemNumber is received by retail center UniqueId
and takes transportation event ScheduleNumber
SELECT * FROM ReceivedFrom NATURAL JOIN ShippedVia
Oczywiście twoja konkretna koncepcja relacji trójskładnikowej może nie być dokładnie tym zapytaniem/tabelą. Ale praktyczna baza danych UPS zawierałaby tabele dla podstawowych relacji, w których można wyrazić każdą istotną relację.
(Normalizacja dzieli predykaty postaci "... AND ..." na oddzielne predykaty dla "...", jeśli jest to możliwe i pomocne; oryginalna tabela jest zwracana przez JOIN komponentów.)