sql >> Databáze >  >> RDS >> Mysql

Pokud by tento ER diagram používal místo toho ternární vztah

Zdá se, že špatně čtete specifikaci. Položka je přivezena do maloobchodního centra UPS a poté je odeslána na místo určení. Podívejme se však na ternární vztah, že odeslaná položka vyžaduje přepravu, aby dosáhla konkrétního cíle .

To je jeden z mnoha myslitelných vztahů na těchto třech entitách.

Ano. Ale ternární vztah je vyjádřitelný pomocí těchto diagramových binárních vztahů. (A ne naopak.)

Každá tabulka – základní proměnná nebo výsledek dotazu – obsahuje řádky, které se účastní nějakého konkrétního vztahu. Vztah můžeme charakterizovat pomocí predikátu --šablona příkazu parametrizovaná pomocí atributů.

Tabulka obsahuje řádky, jejichž hodnoty atributů tvoří pravdivý výrok ze svého predikátu. Predikát základní proměnné je dán DBA.

-- shipped item ItemNumber is received by retail center UniqueId
SELECT * FROM ReceivedFrom
-- shipped item ItemNumber takes transportation event ScheduleNumber
SELECT * FROM ShippedVia

Predikát dotazového výrazu je sestaven z jeho operátorů a argumentů. Např. predikát NATURAL JOIN dvou tabulek je AND predikátů tabulek.

-- shipped item ItemNumber is received by retail center UniqueId
       and takes transportation event ScheduleNumber
SELECT * FROM ReceivedFrom NATURAL JOIN ShippedVia

Samozřejmě, že vaše konkrétní pojetí ternárního vztahu nemusí být přesně tento dotaz/tabulka. Praktická databáze UPS by však měla tabulky pro základní vztahy, jimiž lze vyjádřit jakýkoli relevantní vztah.

(Normalizace rozděluje predikáty ve tvaru "... AND ..." na samostatné predikáty pro "...", pokud je to možné a užitečné; původní tabulka je vrácena pomocí JOIN komponent.)




  1. MySql Určete posun řádku z výsledku dotazu

  2. uložení nastavení MySQL

  3. Dotaz PHP MySQL se nevloží

  4. Agregát Oracle pro spojování řetězců čárkou a o psaní vlastních agregátů