Entiteitsrelatie (ER)-diagrammodel met DBMS-voorbeeld
โก Slimme samenvatting
Het Entity Relationship (ER)-diagrammodel met een DBMS-voorbeeld. Deze afbeelding illustreert een gestructureerde methode om data en de onderlinge verbanden binnen relationele databases visueel weer te geven. De methode, voorgesteld door Peter Chen, biedt een conceptuele basis voor modellering om entiteiten, attributen, relaties en hun cardinaliteiten nauwkeurig te definiรซren.
Wat is een ER-diagram?
Het Entity Relationship Diagram (ER-diagram) is een krachtig visueel hulpmiddel voor het ontwerpen van relationele databasestructuren. Het werd voor het eerst voorgesteld door Peter Chen in 1976 en biedt een conceptuele basis voor modellering die entiteiten, attributen, relaties en hun cardinaliteiten nauwkeurig definieert. Deze tutorial behandelt alles, van basisconcepten tot geavanceerde technieken, en helpt u bij het beheersen van database-schemaontwerp.
ER-diagrammen bevatten verschillende symbolen die rechthoeken gebruiken om entiteiten weer te geven, ovalen om attributen te definiรซren en ruitvormen om relaties weer te geven.
Op het eerste gezicht lijkt een ER-diagram erg op een stroomdiagram. Een ER-diagram bevat echter veel gespecialiseerde symbolen, en de betekenis daarvan maakt dit model uniek. Het doel van een ER-diagram is om de infrastructuur van het entiteitsframework weer te geven.

Geschiedenis van ER-modellen
Peter Chen introduceerde het ER-diagram in 1976 in zijn baanbrekende artikel "The Entity-Relationship Model: Toward a Unified View of Data". Zijn doel was een uniforme conventie te creรซren die zowel voor relationele databases als voor netwerken gebruikt kon worden. Chen zag het ER-model als een conceptuele modelleringsaanpak die de kloof tussen de eisen uit de praktijk en de technische implementatie van databases zou overbruggen.
Sindsdien is het ER-model geรซvolueerd met verschillende notatiesystemen, waaronder de Chen-notatie (de oorspronkelijke), de Crow's Foot-notatie (populair in moderne tools) en op UML gebaseerde benaderingen. Ondanks deze variaties blijven de kernconcepten consistent in alle implementaties.
Waarom ER-diagrammen gebruiken?
ER-diagrammen bieden talrijke voordelen voor het ontwerpen en ontwikkelen van databases:
- Visuele communicatie: Ze bieden een duidelijke visuele weergave die zowel technische als niet-technische belanghebbenden kunnen begrijpen.
- Blauwdruk voor ontwikkeling: Ze laten precies zien hoe tabellen met elkaar verbonden moeten worden en welke velden elke tabel zal bevatten.
- Klaar voor vertaling: ER-diagrammen kunnen direct worden omgezet in relationele tabellen, waardoor je snel databases kunt bouwen.
- Foutpreventie: Ze helpen bij het opsporen van ontwerpfouten en redundanties vรณรณr de implementatie, waardoor tijd en middelen worden bespaard.
- Documentatie: Ze dienen als blijvende documentatie die nieuwe teamleden helpt de systeemarchitectuur te begrijpen.
- Systeemanalyse: Ze helpen bij het identificeren van alle entiteiten die in een systeem bestaan โโen de relaties daartussen.
ER-diagramcomponenten
Elk ER-diagram is opgebouwd uit drie kerncomponenten: entiteiten, attributen en relaties. Inzicht in elk van deze componenten en hoe ze met elkaar samenwerken is essentieel voor het ontwerpen van effectieve databases.
Voorbeelden van ER-diagrammen
In een universitaire database kunnen we bijvoorbeeld entiteiten hebben voor studenten, cursussen en docenten. Een student-entiteit kan attributen hebben zoals studentnummer, naam en afdelingsnummer. Deze entiteiten kunnen relaties hebben met cursussen en docenten.
Entiteiten
Een entiteit vertegenwoordigt elk object uit de echte wereld โ levend of niet-levend โ dat duidelijk kan worden geรฏdentificeerd en waarover gegevens kunnen worden opgeslagen. Het kan een fysiek object zijn, een feit over de onderneming of een gebeurtenis die zich in de echte wereld voordoet. Entiteiten kunnen personen, plaatsen, objecten, gebeurtenissen of concepten omvatten.
Voorbeelden van entiteiten per categorie:
- Persoon: Werknemer, student, patiรซnt, klant
- Plaats: Winkel, gebouw, kantoor, magazijn
- Bezwaar maken: Machine, product, auto, boek
- Evenement: Verkoop, registratie, verlenging, transactie
- Concept: Account, cursus, afdeling, project
Entiteit instellen
Een entiteitenset is een groep vergelijkbare entiteiten die gemeenschappelijke kenmerken delen. Alle studenten van een universiteit vormen bijvoorbeeld de entiteitenset "Student". Entiteiten worden in ER-diagrammen weergegeven met rechthoeken, met de entiteitsnaam erin.
Entiteiten worden weergegeven door hun eigenschappen, ook wel attributen genoemd. Alle attributen hebben hun eigen waarden. Een student-entiteit kan bijvoorbeeld een naam, leeftijd en klas als attributen hebben.
Sterke entiteiten versus zwakke entiteiten
Entiteiten worden geclassificeerd als sterk of zwak op basis van hun vermogen om onafhankelijk te bestaan. Het begrijpen van dit onderscheid is cruciaal voor een goed databaseontwerp.
Een sterke entiteit heeft een eigen primaire sleutel en kan onafhankelijk bestaan. Een entiteit "Student" kan bijvoorbeeld uniek worden geรฏdentificeerd door Student_ID, zonder afhankelijk te zijn van een andere entiteit.
Een zwakke entiteit heeft geen eigen primaire sleutel en is voor identificatie afhankelijk van een sterke entiteit (de eigenaarsentiteit). Deze gebruikt een gedeeltelijke sleutel (discriminator) in combinatie met de primaire sleutel van de eigenaar om uniciteit te garanderen. In een banksysteem is een entiteit "Transactie" bijvoorbeeld afhankelijk van een entiteit "Rekening"โhet transactienummer alleen is niet uniek in de hele database, maar in combinatie met het rekeningnummer wordt het dat wel.
| Sterke entiteit | Zwakke entiteit |
|---|---|
| Heeft een eigen primaire sleutel | Heeft geen primaire sleutel; gebruikt een gedeeltelijke sleutel. |
| Weergegeven door een enkele rechthoek | Weergegeven door een dubbele rechthoek |
| De primaire sleutel is onderstreept met een doorgetrokken lijn. | De gedeeltelijke legenda is onderstreept met een stippellijn. |
| Kan onafhankelijk bestaan | Het bestaan โโervan is afhankelijk van de eigenaar. |
| Verbonden met een relatie met een enkele diamant | Verbonden met een dubbele diamant (identificerende relatie) |
| Voorbeeld: student, werknemer, product | Voorbeeld: Transactie, Afhankelijk, Order_Item |
Verhouding
Een relatie vertegenwoordigt een verband tussen twee of meer entiteiten. Relaties worden doorgaans aangeduid met werkwoorden of werkwoordelijke uitdrukkingen die beschrijven hoe entiteiten met elkaar interageren. In ER-diagrammen worden relaties weergegeven met ruitvormen. Voorbeeld: Tom werkt op de afdeling Scheikunde.
Entiteiten nemen deel aan relaties. We kunnen relaties vaak identificeren met werkwoorden of werkwoorduitdrukkingen.
Voorbeelden:
- U woont deze lezing bij
- Ik geef de lezing
- Een student woont een lezing bij
- Een docent geeft een lezing.
Attributen
Een attribuut is een eigenschap of kenmerk dat een entiteit of relatie beschrijft. Attributen bieden de gedetailleerde informatie die elke entiteitsinstantie uniek en betekenisvol maakt. In ER-diagrammen worden attributen weergegeven met ovalen (ellipsen) die met hun bovenliggende entiteit verbonden zijn door een lijn.
Een Student-entiteit kan bijvoorbeeld attributen hebben zoals Student_ID, Naam, Geboortedatum, E-mailadres en Telefoonnummer.
Soorten attributen
| Attribuuttype | Beschrijving | Voorbeeld |
|---|---|---|
| Eenvoudig (Atomic) | Kan niet verder worden onderverdeeld in kleinere componenten. | Telefoonnummer, BSN, e-mailadres |
| Composiet | Kan worden onderverdeeld in kleinere subkenmerken. | Volledige naam (voornaam, tussenvoegsel, achternaam), adres (straat, plaats, postcode) |
| Afgeleid | De waarde wordt berekend op basis van andere kenmerken; deze wordt niet direct opgeslagen. | Leeftijd (afgeleid van geboortedatum), totale prijs |
| Meervoudig gewaardeerd | Kan meerdere waarden voor รฉรฉn enkele entiteit bevatten. | Telefoonnummer NumbersE-mailadressen, vaardigheden |
| Sleutelkenmerk | Identificeert elk entiteitsexemplaar uniek (primaire sleutel) | Studentnummer, Werknemersnummer, ISBN |
Belangrijkste tip: In ER-diagrammen worden sleutelkenmerken weergegeven met hun naam onderstreept. Afgeleide kenmerken worden weergegeven met gestippelde ovalen en kenmerken met meerdere waarden met dubbele ovalen.
Cardinaliteit (Relatietypen)
Cardinaliteit definieert de numerieke beperkingen van een relatie, met name hoeveel instanties van de ene entiteit gekoppeld kunnen worden aan instanties van een andere entiteit. Inzicht in cardinaliteit is essentieel voor het ontwerpen van efficiรซnte databasestructuren.
1. Eรฉn-op-รฉรฉn (1:1)
Eรฉn entiteit uit verzameling A kan aan maximaal รฉรฉn entiteit uit verzameling B worden gekoppeld, en omgekeerd.
Voorbeeld: Aan elke student wordt precies รฉรฉn studentnummer toegewezen, en elk studentnummer behoort tot precies รฉรฉn student.
2. Eรฉn-op-veel (1:N)
Eรฉn entiteit uit set A kan aan meerdere entiteiten uit set B worden gekoppeld, maar elke entiteit in B is slechts aan รฉรฉn entiteit in A gekoppeld.
Voorbeeld: Een klas bestaat uit meerdere studenten.
3. Veel-op-รฉรฉn (N:1)
Meerdere entiteiten uit set A kunnen aan รฉรฉn entiteit uit set B worden gekoppeld.
Veel leerlingen behoren bijvoorbeeld tot dezelfde klas.
4. Veel-op-veel (M:N)
Meerdere entiteiten uit set A kunnen worden gekoppeld aan meerdere entiteiten uit set B, en omgekeerd.
Studenten zijn bijvoorbeeld als groep gekoppeld aan meerdere faculteitsleden, en faculteitsleden kunnen aan meerdere studenten zijn gekoppeld.
ER-diagramsymbolen en -notaties
ER-diagrammen gebruiken gestandaardiseerde symbolen om verschillende componenten weer te geven. Hoewel er verschillende notatiesystemen bestaan, zijn de twee meest gebruikte de Chen-notatie en de Crow's Foot-notatie.
Chen-notatie
De Chen-notatie, ontwikkeld door Peter Chen in 1976, gebruikt geometrische vormen om verschillende elementen weer te geven:
| Symbool | Naam | vertegenwoordigt |
|---|---|---|
| Rectangle | Geheel | Sterke entiteit (bijv. student, product) |
| Double Rectangle | Zwakke entiteit | Entiteit die afhankelijk is van een andere (bijv. transactie) |
| Ellips/Ovaal | Kenmerk | Eigenschap van een entiteit (bijv. naam, ID) |
| Double Ellips | Meervoudig attribuut | Attribuut met meerdere waarden (bijv. Telefoon) Numbers) |
| Gestippelde ellips | Afgeleid kenmerk | Berekende waarde (bijv. leeftijd op basis van geboortedatum) |
| Diamant | Verhouding | Verband tussen entiteiten (bijv. inschrijvingen) |
| Double Diamant | Identificatie van de relatie | Relatie met een zwakke entiteit |
| Lijn | Link | Verbindt componenten met elkaar. |
| Onderstreepte tekst | Hoofdsleutel | Unieke identificatiecode voor entiteit |
Kraaienpootnotatie
Crow's Foot Notation (ook wel IE Notation genoemd) wordt vaker gebruikt in moderne tools voor databaseontwerp. Het maakt gebruik van verschillende lijneinden om de kardinaliteit weer te geven en is met name effectief om de "veel"-kant van relaties te tonen.
| Symbool Description | Betekenis |
|---|---|
| Enkele verticale lijn (|) | Verplichte รฉรฉn (precies รฉรฉn) |
| Cirkel met lijn (O|) | Optioneel รฉรฉn (nul of รฉรฉn) |
| Kraaienpoot met lijn (>|) | Verplicht Veel (รฉรฉn of meer) |
| Kraaienpoot met cirkel (>O) | Optioneel: Meerdere (nul of meer) |
Chen-notatie versus kraaienpootnotatie: wanneer gebruik je welke?
| Aspect | Chen-notatie | Kraaienpootnotatie |
|---|---|---|
| beste voor | Conceptuele modellering, academisch gebruik | Fysieke/logische modellering, industrieel gebruik |
| Attribuutweergave | Toont alle eigenschappen visueel. | Geeft de attributen binnen het entiteitsvak weer. |
| Kardinaliteit | Gebruikt getallen (1, N, M) | Maakt gebruik van visuele symbolen |
| Ingewikkeldheid | Kan rommelig worden. | Compactere en schonere omgeving |
| Hulpmiddelondersteuning | Beperkte ondersteuning voor moderne tools | Breed ondersteund in tools |
Een entiteitsrelatiediagram (ERD) maken
In deze handleiding over ER-diagrammen (ERD's) leren we hoe je een ER-diagram maakt. De volgende stappen beschrijven hoe je een ER-diagram maakt:
Laten we ze bestuderen met een voorbeeld van een entiteitsrelatiediagram:
Aan een universiteit schrijft een student zich in voor vakken. Een student moet aan ten minste รฉรฉn vak worden toegewezen. Elk vak wordt door รฉรฉn professor gegeven. Om de kwaliteit van het onderwijs te waarborgen, kan een professor slechts รฉรฉn vak doceren.
Stap 1) Identificatie van de entiteit
We hebben drie entiteiten:
- Student
- Type cursus
- Hoogleraar
Stap 2) Identificatie van relaties
We hebben de volgende twee relaties:
- De student is toegewezen een cursus
- De professor levert een cursus
Stap 3) Identificatie van de kardinaliteit
Uit de probleemstelling weten we dat:
- Er kan een leerling worden toegewezen meervoudig cursussen
- Een professor kan alleen maar leveren een cursus
Stap 4) Identificeer attributen
U moet de bestanden, formulieren, rapporten en gegevens die de organisatie momenteel beheert, bestuderen om kenmerken te identificeren. U kunt ook interviews afnemen met verschillende belanghebbenden om entiteiten te identificeren. In eerste instantie is het belangrijk om de kenmerken te identificeren zonder ze aan een specifieke entiteit te koppelen.
Zodra je een lijst met attributen hebt, moet je deze koppelen aan de geรฏdentificeerde entiteiten. Zorg ervoor dat elk attribuut aan precies รฉรฉn entiteit wordt gekoppeld. Als je denkt dat een attribuut aan meer dan รฉรฉn entiteit moet worden gekoppeld, gebruik dan een modifier om het uniek te maken.
Zodra de mapping is voltooid, identificeert u de primaire sleutels. Als er niet direct een unieke sleutel beschikbaar is, maak er dan een aan.
| Geheel | Hoofdsleutel | Kenmerk |
|---|---|---|
| Student | Student_ID | Studenten naam |
| Hoogleraar | Medewerker_ID | ProfessorNaam |
| Type cursus | Cursus id | Cursus naam |
Voor een cursusentiteit kunnen attributen bijvoorbeeld Duur, Studiepunten, Opdrachten, enzovoort zijn. Om het overzichtelijk te houden, hebben we slechts รฉรฉn attribuut gebruikt.
Stap 5) Maak het ERD aan
Een modernere weergave van een entiteit-relatiediagram (ERD) voorbeeld:
Beste werkwijzen voor effectieve ER-diagrammen
Volg deze richtlijnen om duidelijke, onderhoudbare en effectieve ER-diagrammen te maken:
- Elimineer redundantie: Verwijder dubbele entiteiten, attributen of relaties.
- Gebruik duidelijke naamgevingsconventies: Gebruik consistente, beschrijvende namen. Vermijd afkortingen.
- Valideren aan de hand van de vereisten: Zorg ervoor dat het diagram aan alle behoeften op het gebied van gegevensopslag voldoet.
- Hou het simpel: Maak meerdere diagrammen op verschillende niveaus in plaats van รฉรฉn onoverzichtelijk diagram.
- Gebruik kleur spaarzaam: Gebruik kleuren consequent om categorieรซn te benadrukken.
- Aannames met betrekking tot het document: Voeg toelichtingen toe over de aannames met betrekking tot de bedrijfsregels.
- Revoverleg met belanghebbenden: Laat de zakelijke gebruikers en het technische team het diagram beoordelen.
- Versiebeheer: Houd de versies up-to-date naarmate het ontwerp zich ontwikkelt.
ER-diagrammen versus UML-klassendiagrammen
Hoewel zowel ER-diagrammen als UML-klassendiagrammen worden gebruikt voor datamodellering, dienen ze verschillende doelen en contexten. Inzicht in wanneer je welke moet gebruiken, is belangrijk voor een effectief systeemontwerp.
| Aspect | ER-diagram | UML-klassediagram |
|---|---|---|
| Primair doel | Database ontwerp | Software-/objectontwerp |
| Focus | Gegevens en relaties | Objecten, methoden en gedragingen |
| Methoden/Operaties | Niet ondersteund | Volledig ondersteund |
| Erfenis | Beperkt (alleen in EER) | Volledige ondersteuning |
| Gebruik door de industrie | Databasebeheerders, data-analisten | Softwareontwikkelaars, architecten |
















