Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy ten diagram ER powinien zamiast tego używać relacji trójskładnikowej?

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.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw dane klienta do bazy danych MySQL za pomocą C

  2. Lista specyfikatorów formatu daty MySQL

  3. importuj dane zbiorcze do MySQL

  4. MySQL Wildcard dla =- czy istnieje?

  5. SELECT * z tabeli SQL używając przygotowanej instrukcji