Entity Relationship diagram

Tilbake

Notasjon

Jeg har her forsøkt meg på en standard notasjon (les: min notasjon) på ER-diagram. Notasjonen viser minste og største kardinalitet (forekomst) av entitetene som inngår i relasjonen.

Dernest vises tabellene med sine primærnøkler (fet skrift) og fremmednøkler (kursiv skrift). null betyr at en fremmennøkkel kan være udefinert og not null at den må være definert. Øvrige attributter (hva de nå måtte være) er markert med ... .

Samtidig beskrives her de generelle reglene (ikke absolutte!) for hva som skal/bør skje ved aksjonene innsetting (inSERT, forkortet I), oppdatering (update, forkortet U) og sletting (DELETE, forkortet D). De mest vanlige alternativene:

SD (SET DEFAULT)
Dette innebærer at fremmednøkler må settes til å peke på en gyldig primærnøkkel i relaterte tabeller.
SN (SET null)
Dette innebærer at fremmednøkler må settes til null siden den ellers vil peke på en ikke-eksisterende primærnøkkel.
R (Restricted)
Dette betyr at forandringer med en primærnøkkel må foregå kontrollert siden det finnes relaterte fremmednøkler.
C (Cascade)
Dette betyr at forandringer med en primærnøkkel også må skje i relaterte fremmednøkler. Cascade betyr "foss", og endringer i primærnøkler må derfor "fosse over til" fremmednøkler.

Notasjonen D:SN står da for at ved sletting (DELETE) så må fremmednøkler få verdien null. Hvis ingenting er angitt betyr det at innsetting, oppdatering eller sletting er uproblematisk.

1:1 relasjoner

er_001.gifRelasjonen til høyre må leses som at en ansatt kan disponere maksimalt én bil, og at bil kan disponeres av maksimalt én ansatt (1:1). Streken ved Ansatt angir at en bil må disponeres av minst en ansatt. Nullen ved Bil angir at en ansatt ikke behøver disponere en bil.

Alternativ 1:

Ansatt(Ans#, ... )
Bil(Bil#, Ans# (not null), ... )

Reglene for endringer i Ansatt er: D:R og U:C. Reglene for endringer i Bil er: I:SD.

Alternativ 2:

Ansatt(Ans#, Bil# (null), ... )
Bil(Bil#, ... )

Reglene for endringer i Ansatt er: I:SN, D:R og U:R. Reglene for endringer i Bil er: I:SD, D:SN og U:C.


er_002.gifRelasjonen til høyre må leses som at en ansatt kan disponere maksimalt én bil, og at en bil kan disponeres av maksimalt én ansatt (1:1). Nullen ved Ansatt angir at en bil ikke behøver disponeres av en ansatt. Nullen ved Bil angir at en ansatt ikke behøver disponere en bil.

Alternativ 1:

Ansatt(Ans#, ... )
Bil(Bil#, Ans# (null), ... )

Reglene for endringer i Ansatt er: D:SN og U:C. Reglene for endringer i Bil er: I:SN.

Alternativ 2:

Ansatt(Ans#, Bil# (null), ... )
Bil(Bil#, ... )

Reglene for endringer i Ansatt er: I:SN. Reglene for endringer i Bil er: D:SN og U:C.


1:N relasjoner

er_003.gifRelasjonen til høyre må leses som at en avdeling kan være utstyrt med mange PC'er, og at en PC tilhører maksimalt én avdeling (1:N). Nullen ved Avdeling angir at en PC ikke behøver tilhøre av en avdeling (f.eks. sentralt lagret). Nullen ved PC angir at en avdeling ikke behøver være utstyrt med PC'er.

Avdeling(Avd#, ... )
PC(PC#, Avd# (null), ... )

Reglene for endringer i Avdeling er: D:SN og U:C. Reglene for endringer i PC er: I:SN.


er_004.gifRelasjonen til høyre må leses som at en avdeling kan ha mange ansatte, og at en ansatt tilhører maksimalt én avdeling (1:N). Streken ved Avdeling angir at en ansatt må tilhøre minst én avdeling. Nullen ved Ansatt angir at en avdeling ikke behøver ha ansatte.

Avdeling(Avd#, ... )
Ansatt(Ans#, Avd# (not null), ... )

Reglene for endringer i Avdeling er: D:R og U:C. Reglene for endringer i Ansatt er: I:SD.


er_005.gifRelasjonen til høyre må leses som at en avdeling kan ha mange ansatte, og at en ansatt tilhører maksimalt én avdeling (1:N). Nullen ved Avdeling angir at en ansatt ikke behøver tilhøre en avdeling. Streken ved Ansatt angir at en avdeling må ha minst én ansatt.

Avdeling(Avd#, ... )
Ansatt(Ans#, Avd# (null), ... )

Reglene for endringer i Avdeling er: I:SD, D:SN og U:C. Reglene for endringer i Ansatt er: D:R og U:R.


er_006.gifRelasjonen til høyre må leses som at en avdeling kan ha mange ansatte, og at en ansatt tilhører maksimalt én avdeling (1:N). Streken ved Avdeling angir at en ansatt må tilhøre minst én avdeling. Streken ved Ansatt angir at en avdeling må ha minst én ansatt.

Avdeling(Avd#, ... )
Ansatt(Ans#, Avd# (not null), ... )

Reglene for endringer i Avdeling er: I:SD, D:R og U:C. Reglene for endringer i Ansatt er: I:SD, D:R og U:R.

Tilbake

Valid XHTML 1.0 Strict Valid CSS!