Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

10/7/2019

Conceptueel model
Enhanced Entity Relationship Diagram

Conceptueel model – Enhanced Entity Relationship Model

Inleiding
• Om de realiteit beter te kunnen weergeven, worden de mogelijkheden voor entiteittypes
verder uitgebreid.
• Het Enhanced Entity Relationship Diagram of EERD is een uitbreiding van het ERD.
– Alle concepten uit het ERD blijven behouden, namelijk entiteittypes, attribuuttypes en
relatietypes
– 2 nieuwe modelleringsconcepten worden toegevoegd
• specialisatie/generalisatie
• aggregatie

1
10/7/2019

Specialisatie

Conceptueel model – Enhanced Entity Relationship Model

Specialisatie - Inleiding
• Entiteittypes geven een verzameling van entiteiten met gemeenschappelijke karakteristieken
weer.
• Het komt voor dat dergelijke collecties verder moeten worden onderverdeeld in
deelverzamelingen omdat deze belangrijk zijn voor de gebruikers of toepassingen, en apart
moeten kunnen worden behandeld.

2
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Specialisatie - Voorbeeld
• Beschouw een entiteittype Artiest. Een Artiest heeft een unieke artiestennaam en een woonplaats.
• Een Zanger IS-EEN Artiest. Een Acteur IS-EEN Artiest.
• Het omgekeerde is niet waar: een Artiest is niet noodzakelijk een Zanger en een Artiest is niet
noodzakelijk een Acteur.
• Een Zanger kan een extra attribuut muziekstijl hebben.
• Een Acteur kan spelen in één of meerdere Films (unieke titel en releasedatum).
• Zowel Zanger als Acteur erven de attributtypes artiestennummer en
artiestennaam van Acteur.

Artiest
artiestennaam
woonplaats

Zanger Acteur Film


muziekstijl geboortedatum 1..N 0..N titel
releasedatum

Conceptueel model – Enhanced Entity Relationship Model

Specialisatie
• Om een subcollectie van entiteiten te karakteriseren, worden aparte entiteittypes
aangemaakt: subtypes
• Het oorspronkelijke entiteittype fungeert als supertype voor deze subtypes
• Een subtype erft alle attribuuttypes en relatietypes van zijn supertype: alle attribuuttypes en
relatietypes die verwant zijn aan het supertype gelden ook en zijn ook van toepassing op het
subtype.
• Een subtype kan zelf specifieke attribuuttypes hebben. Deze gelden niet voor het supertype.
• Een subtype kan aanleiding geven tot extra relatietypes tussen subtypes of andere
entiteittypes. Deze gelden ook niet voor het supertype.
• Een subtype heeft GEEN kandidaatsleutelattribuuttype!
• Specialisatie = het creëren van specifiekere subtypes voor een
gegeven entiteittype.
Een specialisatie definieert een IS-EEN relatie.

3
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Generalisatie
• Generalisatie = het creëren van een algemeen supertype dat de gemeenschappelijke
attribuuttypes en relatietypes van een aantal gegeven entiteittypes verenigt. Dit is het
omgekeerde proces van specialisatie.
• Specialisatie komt overeen met een top-down proces van conceptuele verfijning
• Generalisatie komt overeen met een bottom-up proces van conceptuele synthese

Conceptueel model – Enhanced Entity Relationship Model

Participatie en Disjoint constraint


• Participatie constraint
Niet elke Artiest moet op elk tijdstip een Zanger of een Acteur zijn. Er zijn ook andere
Artiesten denkbaar. M.a.w. er kunnen entiteiten van het supertype zijn die niet tot één van de
opgesomde subtypes behoren
=> Optional

• Disjoint constraint
Een Artiest kan zowel Zanger als Acteur zijn. M.a.w. een entiteit van het supertype kan
tegelijkertijd voorkomen in meerdere subtypes
=> And Artiest
artiestennummer
artiestennaam
{Optional, And}

Zanger Acteur Film


1..N 0..N
muziekstijl geboortedatum filmnummer
titel

4
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Participatie constraint
• De participatierestrictie bepaalt of op elk tijdstip elke entiteit van het supertype ook entiteit
moet zijn van ten minste één subtype of niet.
• Totale participatie
– Elke entiteit van het supertype moet op elk tijdstip ook entiteit zijn van ten minste één subtype. Er bestaan geen
entiteiten van het supertype die niet tot een subtype behoren
– Aangegeven met behulp van het sleutelwoord Mandatory
• Partiële participatie
– Er kunnen entiteiten van het supertype zijn die niet tot één van de opgesomde subtypes behoren.
– Aangegeven met behulp van het sleutelwoord Optional

Conceptueel model – Enhanced Entity Relationship Model

Disjoint constraint
• Als er verschillende subtypes voorkomen in een supertype/subtype-verwantschap, moet
worden aangegeven of een entiteit van het supertype tegelijkertijd kan voorkomen in
meerdere subtypes of niet.
• Overlappende subtypes
– Een entiteit kan tot meer dan één subtype behoren
– Aangegeven met behulp van het sleutelwoord AND
• Disjuncte subtypes
– Een exclusieve OR tussen de subtypes: een entititeit kan maar tot 1 subtype behoren
– Aangegeven met behulp van het sleutelwoord OR

5
10/7/2019

Oefeningen

Conceptueel model – Enhanced Entity Relationship Model

Participatie en Disjoint constraint


• Een werknemer in een meubelzaak kan één van de volgende functies hebben:
– een verkoper
– een arbeider
– een bediende

• Alle 3 types werknemers hebben algemene kenmerken: personeelsNummer, naam, adres,


basisloon.
• Er zijn ook specifieke kenmerken per soort:
– een verkoper krijgt naast zijn basisloon ook een % op zijn omzetcijfer
– een arbeider krijgt overuren uitbetaald
– een bediende krijgt een aantal maaltijdcheques

6
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Participatie en Disjoint constraint


• Participatie constraint  Mandatory of Optional?
• Disjoint constraint  And of Or?
Werknemer
personeelsnummer
naam
adres
basisloon
{Mandatory , Or }

Verkoper Arbeider Bediende


percentOpVerkoop loonPerOveruur aantalMaaltijdcheques

Conceptueel model – Enhanced Entity Relationship Model

Oefening Hogeschool
Teken het EERD uit voor onderstaande situatie

• Een persoon in de DB van de hogeschool is werknemer of student. Elke persoon heeft een unieke
code, een naam, een adres en een e-mailadres.
• Het kan voorvallen dat een werknemer in de hogeschool zowel administratieve taken doet als
doceert. Behalve administratieve medewerkers en lectoren zijn er nog andere werknemers in de
hogeschool. Er zijn geen jobstudenten.
• Een student zit in één welbepaalde klas (unieke code), een lector doceert een aantal vakken,
studenten hebben een bepaald eindcijfer per vak.
• Sommige administratieve medewerkers hebben een firmawagen
(unieke nummerplaat, merk, type, kleur).
Een auto is altijd van een administratief medewerker.
• Van een student kennen we zijn studentenummer en van een
lector de datum van indiensttreding.
• Een vak heeft één titularis.
• Van een administratief medewerken kennen we zijn diensthoofd.

7
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Oefening Hogeschool
Persoon
code
naam
adres
emailadres
{Mandatory, Or}

0..N 1..1
Werknemer Student Klas
loon studentennummer zitIn > code
{Optional, And} volgt > 0..N
resultaat
0..N
0..N 0..N
AdministratiefMedewerker Lector Vak
diensthoofd Datum indienst geeft > titularis
1..1
0..1
Auto
nummerplaat
merk
type
kleur

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
• Bluebike fietsen zijn deelfietsen die je kan ontlenen op meerdere locaties in België, vaak (maar
niet altijd) aan treinstations. Zo kan je Blue-bike fietsen ontlenen aan het station én aan het
stadhuis van Deinze.
• Je betaalt bij registratie €12,5 voor je lidmaatschap (jaarlijks).
• Daarvoor krijg je een Blue-bikekaart met unieke streepjescode waarmee je een fiets kan ontlenen
op een locatie. (Je legt de blue-bikekaart op de kaartlezer van de blue-bikeautomaat en maakt de
blue-bike los met de vrijgegeven sleutel.)
• Stel dat je een Blue-bikekaart verliest, dan krijg je een nieuwe kaart, maar de oude kaart blijft
geregistreerd in de databank.
• Je moet de blue-bike steeds terugbrengen naar die locatie waar je hem ontleende en stopt de
sleutel daarna opnieuw in de automaat.
• Het rittarief varieert afhankelijk van de locatie tussen de €0, €1,15
of €3,15 per rit van 24u. Op enkele uitzonderingen na betaal je
bijna overal €1,15 (24u).

8
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
Pas het EERD aan
• Een gebruiker kan bij het inleveren van de sleutel in de automaat een score geven, over hoe hij
de fietsrit ervaren heeft.

BetalingLidgeld Gebruiker Rit Fiets Locatie


code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam
bedrag voornaam begintijdstip adres
familienaam terugbrengdatum prijsVoor24Uur
1..1 eindtijdstip
0..N
Blue-bikekaart
streepjescode
uitreikdatum
vervaldatum

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
• Elke fiets krijgt regelmatig een onderhoud. Een onderhoud wordt genummerd per fiets en
heeft een datum waarop het onderhoud werd uitgevoerd.

BetalingLidgeld Gebruiker Rit Fiets Locatie


code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam
bedrag voornaam begintijdstip adres
familienaam terugbrengdatum prijsVoor24Uur
1..1 eindtijdstip
0..N score
Blue-bikekaart
streepjescode
uitreikdatum
vervaldatum

9
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
• Er zijn verschillende soorten onderhoud. Enerzijds is er een basic onderhoud waarbij de
banden opgepompt worden, de ketting gesmeerd wordt, … Hiervan wordt de duur
bijgehouden. Anderzijds is er een herstelling. Bij een herstelling wordt een korte omschrijving
van het probleem bijgehouden. Er kunnen ook nog andere soorten Onderhoud zijn.

BetalingLidgeld Gebruiker Rit Fiets Locatie


code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam
bedrag voornaam begintijdstip 1..1 adres
familienaam
1..1
terugbrengdatum
eindtijdstip
u 0..N
Onderhoud
prijsVoor24Uur

0..N score volgnummer


Blue-bikekaart datum
streepjescode
uitreikdatum
vervaldatum

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
• Een Blue-bikekaart kan niet enkel een streepjescode maar ook een unieke QR code hebben

BetalingLidgeld Gebruiker Rit Fiets Locatie


code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam
bedrag voornaam begintijdstip 1..1 adres
familienaam
1..1
terugbrengdatum
eindtijdstip
u 0..N
Onderhoud
prijsVoor24Uur

0..N score volgnummer


Blue-bikekaart datum
streepjescode {Optional, Or}
uitreikdatum
vervaldatum
BasicOnderhoud Herstelling
duur probleem

10
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
• Het moet op elk ogenblik mogelijk zijn om het totaal aantal beschikbare fietsen per locatie op
te vragen

BetalingLidgeld Gebruiker Rit Fiets Locatie


code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam
bedrag voornaam begintijdstip 1..1 adres
familienaam
1..1
terugbrengdatum
eindtijdstip
u 0..N
Onderhoud
prijsVoor24Uur

0..N score volgnummer


Blue-bikekaart datum
streepjescode {Optional, Or}
uitreikdatum
vervaldatum
QRcode BasicOnderhoud Herstelling
duur probleem

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
• Om facturatieredenen moet er vanaf nu een onderscheid gemaakt worden tussen privé
gebruikers (voornaam, familienaam) en zakelijke gebruikers (firmanaam,
ondernemingsnummer).

BetalingLidgeld Gebruiker Rit Fiets Locatie


code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam
bedrag voornaam begintijdstip 1..1 adres
familienaam
1..1
terugbrengdatum
eindtijdstip
u 0..N
Onderhoud
prijsVoor24Uur

0..N score volgnummer


Blue-bikekaart datum
streepjescode {Optional, Or}
uitreikdatum
vervaldatum
QRcode BasicOnderhoud Herstelling
duur probleem

11
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
• Voor elke locatie willen we bijhouden welk de dichtstbijzijnde locatie (in vogelvlucht) is én
moet de afstand tot deze dichtstbijzijnde locatie
Blue-bikekaart bijgehouden worden.
streepjescode
uitreikdatum
vervaldatum
QRcode
0..N
1..1
BetalingLidgeld Gebruiker Rit Fiets Locatie
code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam
bedrag begintijdstip 1..1 adres
{Mandatory, Or} terugbrengdatum
eindtijdstip
u 0..N
Onderhoud
prijsVoor24Uur

score volgnummer
datum
PriveGebruiker ZakelijkeGebruiker {Optional, Or}
voornaam firmanaam
familienaam ondernemingsnummer
BasicOnderhoud Herstelling
duur probleem

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
• Een gebruiker kan met één kaart 2 fietsen tegelijkertijd uitlenen: de gebruiker leent eerst 1 fiets
uit en daarna nog een fiets (zonder meerkost)
Blue-bikekaart
streepjescode
uitreikdatum
vervaldatum
QRcode
0..N
1..1
BetalingLidgeld Gebruiker Rit Fiets Locatie isDichtsbijzijndeLocatie >
code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode 0..N
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam afstand
bedrag begintijdstip 1..1 adres 1..N
{Mandatory, Or} terugbrengdatum
eindtijdstip
u 0..N
Onderhoud
prijsVoor24Uur < heeftAlsDichtsbijzijndeLocatie

score volgnummer
datum
PriveGebruiker ZakelijkeGebruiker {Optional, Or}
voornaam firmanaam
familienaam ondernemingsnummer
BasicOnderhoud Herstelling
duur probleem

12
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
• Indien een Locatie een treinstation is, willen we extra informatie bijhouden over dat
treinstation, bijvoorbeeld de naam van de stationschef.
Blue-bikekaart Als het bijvoorbeeld een Bureau voor Toerisme is,
streepjescode dan worden de openingsuren daarvan bijgehouden.
uitreikdatum
vervaldatum
QRcode
0..N
1..1
BetalingLidgeld Gebruiker Rit Fiets Locatie isDichtsbijzijndeLocatie >
code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode 0..N
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam afstand
bedrag begintijdstip 1..1 adres 1..N
{Mandatory, Or} terugbrengdatum
eindtijdstip
u 0..N
Onderhoud
prijsVoor24Uur < heeftAlsDichtsbijzijndeLocatie

score volgnummer
datum
PriveGebruiker ZakelijkeGebruiker {Optional, Or}
voornaam firmanaam
familienaam ondernemingsnummer
BasicOnderhoud Herstelling
duur probleem

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
• Een gebruiker kan na een rit eventuele problemen met de fiets onmiddellijk melden (voorlicht
defect, linkerrem defect, …). Een probleem wordt
Blue-bikekaart genummerd per fiets en heeft een korte omschrijving
streepjescode van het probleem. Kosten ten gevolge van onzorgvuldig
uitreikdatum
vervaldatum gebruik worden verhaald op de gebruiker. Ook het
QRcode
0..N
tijdstip van registratie van het probleem moet gekend zijn.
1..1
BetalingLidgeld Gebruiker Rit Fiets Locatie isDichtsbijzijndeLocatie >
code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode 0..N
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam afstand
bedrag begintijdstip 1..1 adres 1..N
{Mandatory, Or} terugbrengdatum
eindtijdstip
u 0..N
Onderhoud
prijsVoor24Uur < heeftAlsDichtsbijzijndeLocatie
{Optional, Or}
score volgnummer
datum
PriveGebruiker ZakelijkeGebruiker {Optional, Or} Station BureauVoorToerisme
voornaam firmanaam naamChef openingsuren
familienaam ondernemingsnummer
BasicOnderhoud Herstelling
duur probleem

13
10/7/2019

Conceptueel model – Enhanced Entity Relationship Model

Oefening Blue-bike
u
Blue-bikekaart Probleem
streepjescode nummer
uitreikdatum 0..N omschrijving
vervaldatum 0..N 0..N
QRcode
0..N
1..1 1..1 1..1 1..1
BetalingLidgeld Gebruiker Rit Fiets Locatie isDichtsbijzijndeLocatie >
code < heeftBetaald registratienummer heeft > ritcode heeft > inschrijvingsnummer hoortBij > geocode 0..N
datum 0..N 1..1 inschrijvingsdatum 1..1 0..N ontleningsdatum 0..N 1..1 datum ingebruikname 0..N 0..1 naam afstand
bedrag begintijdstip 1..1 adres 1..N
{Mandatory, Or} terugbrengdatum
eindtijdstip
u 0..N
Onderhoud
prijsVoor24Uur < heeftAlsDichtsbijzijndeLocatie
{Optional, Or}
score volgnummer
datum
PriveGebruiker ZakelijkeGebruiker {Optional, Or} Station BureauVoorToerisme
voornaam firmanaam naamChef openingsuren
familienaam ondernemingsnummer
BasicOnderhoud Herstelling
duur probleem

Aggregatie

14
10/7/2019

Entity Relationship Model

Aggregatie
• Entiteittypes die met elkaar in verband staan via een specifiek relatietype, kunnen
geaggregeerd worden in een 'hoger-niveau' geaggregeerd entiteittype.
• Dit kan nuttig zijn wanneer het geaggregeerd entiteittype eigen attribuuttypes en/of
relatietypes heeft.

Entity Relationship Model

Aggregatie
• Bijvoorbeeld
– Een Consultant werkt aan 0 of meerdere Projecten. Aan een Project wordt door ten
minste één of meerdere Consultants gewerkt.
– De beide entiteittypes (Consultant en Project) en het bijhorende relatietype kunnen
geaggregeerd worden in Participatie. Dit geaggregeerd entiteittype heeft een
attribuuttype datum, wat de datum voorstelt waarop een Consultant gestart is met
werken aan dit Project.
– Het geaggregeerd entiteittype Participatie heeft een relatie met Machine.
• Een Participatie gebruikt 0 of meerdere Machines
• Een Machine wordt gebruikt in 0 of meerdere Participaties

15
10/7/2019

Entity Relationship Model

Aggregatie
datum
Consultant Project
consultantnummer 1..N 0..N code
naam werktAan > acroniem
naam
Participatie
0..N
gebruikt >
0..N
Machine
machinecode
aankoopprijs

Entity Relationship Model

Aggregatie – Oefening
• Een Patiënt (uniek rijksregisternummer en naam) gaat naar een Dokter (uniek rizivnummer en naam) op
een specifiek tijdstip (datum + tijd) en krijgt een Geneesmiddel (unieke naam, prijs) voorgeschreven.

datum
tijdstip
tijd
Patiënt
Patiënt Dokter
Dokter
rijksregisternummer 0..N
rijksregisternummer 0..N 0..N
0..N rizivnummer
rizivnummer
naam
naam gaatNaar
bezoekt> > naam
naam
Doktersbezoek
0..N Doktersbezoek
moetInnemen >
0..N
heeft > 0..N
hoeveelheid
Geneesmiddel
0..N
naam
Geneesmiddel
prijs
naam
prijs

16

You might also like