Du verkar ha missuppfattat specen. En vara förs till ett UPS-butikscenter och skickas sedan till en destination. Men låt oss överväga det ternära förhållandet att en skickad vara tar en transporthändelse för att nå en specifik destination .
Det är en av många tänkbara relationer på dessa tre enheter.
Ja det gör det. Men det ternära förhållandet kan uttryckas i termer av dessa binära diagramsförhållanden. (Och inte vice versa.)
Varje tabell – basvariabel eller frågeresultat – innehåller rader som deltar i en viss relation. Vi kan karakterisera förhållandet med ett predikat --en satsmall parametrerad av attribut.
En tabell innehåller de rader vars värden för attribut gör ett sant uttalande från dess predikat. Predikatet för en basvariabel ges av DBA.
-- shipped item ItemNumber is received by retail center UniqueId
SELECT * FROM ReceivedFrom
-- shipped item ItemNumber takes transportation event ScheduleNumber
SELECT * FROM ShippedVia
Predikatet för ett frågeuttryck är byggt från dess operatorer och argument. Exempelvis är predikatet för den NATURLIGA JOIN för två tabeller OCH för tabellernas predikat.
-- shipped item ItemNumber is received by retail center UniqueId
and takes transportation event ScheduleNumber
SELECT * FROM ReceivedFrom NATURAL JOIN ShippedVia
Naturligtvis kanske din speciella uppfattning om det ternära förhållandet inte är denna exakta fråga/tabell. Men en praktisk UPS-databas skulle ha tabeller för de grundläggande relationerna i termer av vilka alla relevanta relationer kan uttryckas.
(Normalisering delar upp predikat av formen "... OCH ..." i separata predikat för "..." när det är möjligt och användbart; den ursprungliga tabellen ges tillbaka av komponenternas JOIN.)