sql >> Database teknologi >  >> RDS >> Mysql

Skal dette ER-diagram bruge et ternært forhold i stedet for

Du ser ud til at have misforstået specifikationerne. En vare bringes til et UPS-detailcenter og sendes derefter til en destination. Men lad os overveje det ternære forhold, at en afsendt vare tager en transportbegivenhed for at nå en bestemt destination .

Det er et af mange tænkelige forhold på disse tre enheder.

Ja det gør. Men det ternære forhold kan udtrykkes i form af disse binære diagramforhold. (Og ikke omvendt.)

Hver tabel - basisvariabel eller forespørgselsresultat - indeholder rækker, der deltager i en bestemt relation. Vi kan karakterisere forholdet ved et prædikat --en erklæringsskabelon parametriseret af attributter.

En tabel indeholder de rækker, hvis værdier for attributter giver et sandt udsagn fra sit prædikat. Prædikatet for en grundvariabel er givet af DBA.

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

Prædikatet for et forespørgselsudtryk er bygget ud fra dets operatorer og argumenter. F.eks. er prædikatet for den NATURLIGE JOIN af to tabeller OG for tabellernes prædikater.

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

Selvfølgelig er din særlige opfattelse af det ternære forhold muligvis ikke denne nøjagtige forespørgsel/tabel. Men en praktisk UPS-database ville have tabeller for de grundlæggende relationer, som enhver relevant relation kan udtrykkes i forhold til.

(Normalisering opdeler prædikater af formen "... OG ..." i separate prædikater for "...", når det er muligt og nyttigt; den oprindelige tabel er givet tilbage af komponenternes JOIN.)




  1. Hver afledt tabel skal have sit eget alias - fejl fra kombination af faldende MySQL

  2. HAProxy:Alle Severalnines ressourcer

  3. gruppe efter måned i unix-tidsstempelfeltet

  4. SQL Injection Protection - enkelte anførselstegn