Doelstellingen
- Specialisatie
- Generalisatie
Notities
Specialisatie & Generalisatie
Subtypes
Het maken van subentiteittypes voor een gegeven entiteittype
- Subentiteittypes hebben geen sleutelattributen
- Subentiteittypes kunnen oook subentiteittypes hebben
We maken subentiteittypes aan om specifieke attributen toe te kennen (bv. regisseur gaat niet naar een toneelschool gegaan zijn, bediende mag geen overuren draaien t.o.v. arbeider, …)
Specialisatie
Heel generiek, we gaan van abstract naar minder abstract (crewmember → regisseur)
Generalisatie
Omgekeerde van specialisatie, van minder abstract naar abstract.
Constraints
Participatie constraint
- Totale participatie: Het is verplicht om als crewmember een subtype te zijn (bv. regisseur) (mandatory)
- Partiële participatie: Je mag en kan een subtype hebben maar je hoeft niet (enkel supertype) (optional)
Disjoint constraint
- Overlappende subtypes: Je kan tot meer dan één subtype behoren. (and)
- Disjuncte subtypes: Je mag maar tot één entiteit behoren. (or)
Je noteert het als volgt:
Beperkingen van ERD
Het ERD is een zeer goede tool om databases te modelleren, enkel heeft ze een aantal beperkingen.
Tijdelijke items
Beperkingen die gelden in een bepaald tijdsinterval kunnen niet worden gemodeleerd
- bv. een project moet binnen een maand toegewezen worden aan een specifiek departement
Consistentie tussen verschillende relatietypes
Soms kunnen bepaalde (reële) situaties niet worden geschetst
- bv. een werknemer kan enkel werken aan projecten die toegewezen zijn aan het departement waar hij werkt
Domeinregels worden niet weergegeven
Attributen hebben soms bepaalde regels maar die kunnen we niet in ons ERD zetten.
- bv. Een project moet gelijk aan of meer dan 0 uren aan gewerkt zijn.
Functies worden niet weergegeven
We zullen nooit bv. de gewerkte uren opslaan, maar wel een historiek van het startuur en einduur.
- De functie om de gewerkte uren (start- tot einduur) te vinden kunnen we niet weergeven met de ERD
Valkuilen ERD
ERD kan pas correct zijn als alle vragen van de gebruiker kunnen worden beantwoord.
- Er zijn echter een aantal valkuilen
Fan trap
Wanneer één entiteitstype (bv. Departement) de relatie “1…N” met twee andere entiteitstypes (bv. Werknemer & Project). Dit zorgt ervoor dat de twee andere entiteitstypes (Werkn. & Proj.) geen duidelijke relatie hebben op het ERD, wat wel de intentie is.
Foute weergave
We kunnen nu niet zien welke werknemer er werkt aan een project.
Correcte weergave
We gaan de juiste associaties tussen entiteiten leggen. Een departement heeft projecten waaraan werknemers deelnemen.
Chasm trap
Dit probleem treedt op wanneer er een ontbrekende verbinding of relatie is in een ERD, waardoor bepaalde gegevens niet toegankelijk zijn, zelfs als deze gegevens wel bestaan.
Foute weergave
Een departement heeft werknemers die een project overzien, maar tot welk departement is het project toegekend?
Correcte weergave
We voegen een extra relatie toe om ons probleem weg te werken.