Wat is een Entity Relationship Diagram?


Ontdek de basisprincipes van ER -diagrammen en ER-modellen en leer alles over het ontstaan en gebruik, voorbeelden, onderdelen, beperkingen en richtlijnen voor het gebruik met onze ER-diagramtool.

Wilt u een eigen diagram maken? Probeer Lucidchart. Het is snel, eenvoudig en volledig gratis.
Een diagram maken
Wilt u een eigen diagram maken? Probeer Lucidchart. Het is snel, eenvoudig en volledig gratis.

Wat is een ER-diagram?

Een Entity-Relationship diagram (ook gekend als entiteit-relatiediagram of ER-diagram) is een soort stroomdiagram dat illustreert hoe "entiteiten" zoals mensen, voorwerpen of concepten binnen een systeem met elkaar verbonden zijn. ER-diagrammen worden vaak gebruikt om relationele databases te ontwerpen of debuggen voor softwareontwerp, bedrijfsinformatiesystemen, onderwijs en onderzoek. Ze gebruiken een bepaalde reeks symbolen zoals rechthoeken, ruiten, ovalen en verbindingslijnen om de interconnectie tussen entiteiten, relaties en hun attributen voor te stellen. Ze weerspiegelen grammaticale structuur - entiteiten zijn zelfstandige naamwoorden en relaties zijn werkwoorden.

Voorbeeld ERD

ER-diagrammen zijn verwant aan gegevensstructuurdiagrammen (Data Structure Diagram of DSD), die gericht zijn op de relaties van elementen binnen entiteiten, in plaats van de relatie tussen entiteiten. ER-diagrammen worden vaak samen gebruikt met Data Flow Diagrams (DFD's), die de stroom van informatie voor processen of systemen in kaart brengen.

Geschiedenis van ER-modellen

De ontwikkeling in de jaren 70 van ER-modellen voor databaseontwerp wordt toegeschreven aan Peter Chen (Peter Pin-Shan Chen), die momenteel faculteitsmedewerker is aan de Carnegie-Mellon University in Pittsburgh. In 1976, toen hij assistent-professor was bij de Sloan School of Management van MIT, publiceerde hij de paper “The Entity-Relationship Model: Toward a Unified View of Data”.

Al in het oude Griekenland, met name in het werk van Aristoteles, Socrates en Plato, werd de onderlinge verbondenheid van de dingen weergegeven. In de 19de en 20ste eeuw  zagen we dan het werk van filosofen als Charles Sanders Peirce and Gottlob Frege.

In de jaren 60 en 70 werkten Charles Bachman (foto boven) en A.P.G. Brown aan voorlopers van de benadering van Chen. Bachman ontwikkelde een soort Data Structure Diagram dat naar hem werd vernoemd - een Bachman-diagram. Brown publiceerde werk rond systeemmodellering. James Martin verfijnde het ERD-element. Het werk van Chen, Bachman, Brown, Martin en anderen droeg ook bij aan de ontwikkeling van Unified Modeling Language (UML), die vaak wordt gebruikt voor softwareontwerp.         

Gebruik van Entity-Relationship diagrammen

  • Databaseontwerp: ER-diagrammen worden gebruikt om relationele databases te modelleren en ontwerpen met het oog op logica en bedrijfsregels (in een logisch datamodel) en met het oog op de specifieke technologie die geïmplementeerd moet worden (in een fysiek datamodel). Voor softwareontwerp wordt een ER-diagram vaak gebruikt als eerste stap voor een nieuw informatiesysteem, om de vereisten voor het project te bepalen. Het wordt ook later nog gebruik om een of meerdere databases te modelleren. Een relationele database heeft een equivalente relationele tabel en kan indien nodig zo worden uitgedrukt.
  • Oplossen van databaseproblemen: ER-diagrammen worden gebruikt om bestaande databases te analyseren en eventuele problemen in de logica of inzet op te lossen. Door het diagram te tekenen, worden problemen zichtbaar.
  • Bedrijfsinformatiesystemen: De diagrammen worden gebruikt om relationele databases te ontwerpen of analyseren voor gebruik in bedrijfsprocessen. Een bedrijfsproces dat gebruikmaakt van data uit het veld rond entiteiten, acties en wisselwerking, kan voordeel halen uit een relationele database. Zo kunt u processen stroomlijnen, gemakkelijker informatie opzoeken en de resultaten verbeteren.
  • Business Process Re-engineering (BPR): ER-diagrammen kunnen u helpen bij het analyseren van databases die worden gebruikt bij Business Process Re-engineering en bij het modelleren van nieuwe databases.
  • Onderwijs: Databases zijn de moderne manier om relationele informatie voor onderwijsdoeleinden op te slaan en terug te vinden. ER-diagrammen kunnen dus erg nuttig zijn bij het plannen van die datastructuren.
  • Onderzoek: Aangezien er zoveel onderzoek is rond gestructureerde gegevens, kunnen ER-diagrammen een belangrijke rol spelen bij het instellen van databases om die gegevens te analyseren.

De onderdelen en functies van een ER-diagram

ER-diagrammen bestaan uit entiteiten, relaties en attributen. Ze drukken ook kardinaliteit uit, dat relaties definieert met getallen. Hieronder vindt u een glossarium:

Entiteit

Een definieerbaar ding—een persoon, voorwerp, concept of gebeurtenis—waarover gegevens kunnen worden opgeslagen. Beschouw entiteiten als zelfstandige naamwoorden. Voorbeelden: een klant, student, auto of product. Wordt meestal weergegeven als rechthoek.

Entiteitsklasse: Een groep definieerbare dingen, zoals studenten of atleten, waar de entiteit de specifieke student of atleet zou zijn. Andere voorbeelden: klanten, auto's of producten.

Entiteitenset: Hetzelfde als entiteitsklasse, maar gedefinieerd op een bepaald moment, zoals studenten die op de eerste dag voor een cursus zijn ingeschreven. Andere voorbeelden: klanten die vorige maand iets kochten, auto's die momenteel in een bepaald land geregistreerd zijn. "Instantie" is een verwante term, waarmee de individuele persoon of auto in die entiteitsklasse wordt bedoeld.

Entiteitscategorieën: Entiteiten worden gecategoriseerd als sterk, zwak of associatief. Bij een sterke entiteit is het mogelijk om de entiteit alleen te definiëren met de eigen attributen, wat bij een zwakke entiteit niet het geval is. Een associatieve entiteit associeert entiteiten (of elementen) binnen een entiteitenset. 

Entiteitssleutels: Dit verwijst naar een attribuut dat een entiteit in een entiteitenset specifiek definieert. Entiteitssleutels kunnen super-, kandidaat- of primaire sleutels zijn. Supersleutel: Een reeks attributen (een of meerdere) die samen een entiteit in een entiteitenset definiëren. Kandidaatsleutel: Een minimale supersleutel, wat betekent dat de sleutel het kleinst mogelijke aantal attributen omvat om toch nog een supersleutel te zijn. Een entiteitenset kan meer dan één kandidaatsleutel hebben. Primaire sleutel: Een kandidaatsleutel die door de ontwerper van de database werd uitgekozen om de entiteitenset specifiek te definiëren. Refererende sleutel: Identificeert de relatie tussen entiteiten.

Relatie

Hoe entiteiten op elkaar inwerken of met elkaar geassocieerd zijn. Beschouw relaties als werkwoorden. Een student kan zich bijvoorbeeld inschrijven voor een cursus. De twee entiteiten zijn de student en de cursus, met de handeling van het inschrijven als de relatie die de twee entiteiten met elkaar verbindt. Relaties worden meestal weergegeven als ruiten of als labels op de verbindingslijnen.

Recursieve relatie: Dezelfde entiteit neemt meer dan één keer deel aan de relatie.

Attribuut

Een eigenschap van een entiteit. Vaak weergegeven als een ovaal of cirkel.

Descriptief attribuut: Een eigenschap van een relatie (en niet van een entiteit).

Attribuutcategorieën: Attributen worden gecategoriseerd als eenvoudig, samengesteld of afgeleid, maar ook enkelwaardig of meerwaardig. Eenvoudig: Dit betekent dat de waarde van het attribuut niet verder opgedeeld kan worden, zoals een telefoonnummer. Samengesteld: Er komen subattributen voort uit een attribuut. Afgeleid: Attribuut wordt berekend of anderszins van een ander attribuut afgeleid, zoals leeftijd op basis van geboortedatum.

Meerwaardig: Er wordt meer dan één attribuutwaarde omschreven, zoals meerdere telefoonnummers voor één persoon.

Enkelwaardig: Een enkele attribuutwaarde. De types kunnen gecombineerd worden, bijvoorbeeld voor eenvoudige enkelwaardige attributen of samengestelde meerwaardige attributen.

Kardinaliteit

Definieert de numerieke attributen van de relatie tussen twee entiteiten of entiteitensets. De drie belangrijkste kardinale relaties zijn een-op-een, een-op-veel en veel-veel. Als voorbeeld van een een-op-een-relatie kunnen we bijvoorbeeld een student gebruiken met één postadres. Een-op-veel-relatie (of veel-op-een, afhankelijk van de richting): Een student schrijft zich in voor meerdere cursussen, maar al die cursussen hebben een enkele lijn terug naar die student. Voorbeeld veel-op-veel-relatie: Studenten worden als groep geassocieerd met meerdere faculteitsmedewerkers en die faculteitsmedewerkers worden op hun beurt geassocieerd met meerdere studenten.

Weergaves kardinaliteit: Kardinaliteit kan op twee manieren worden weergegeven, afhankelijk van waar de symbolen worden weergegeven, "same-side" of "look-across"

Kardinaliteitsbeperkingen: De minimale of maximale getallen die op een relatie van toepassing kunnen zijn.

Natuurlijke taal in kaart brengen

ER-onderdelen kunnen gelijkgesteld worden aan woordsoorten, zoals Peter Chen al deed. Dit toont hoe een ER-diagram er in vergelijking met een grammaticadiagram uitziet:

  • Zelfstandig naamwoord: Entiteitsklasse. Voorbeeld: student.
  • Eigennaam: Entiteit. Voorbeeld: Sarah Smets.
  • Werkwoord: Relatietype. Voorbeeld: Inschrijven. (Zoals inschrijven voor een cursus, wat een andere entiteitsklasse zou zijn)
  • Bijvoeglijk naamwoord: Attribuut voor entiteit. Voorbeeld: tweedejaarsstudent.
  • Bijwoord: Attribuut voor relatie. Voorbeeld: digitaal.

De querytaal ERROL imiteert de structuren van natuurlijke taal. ERROL is gebaseerd op Reshaped Relational Algebra (RRA) en werkt met ER-modellen om de taalkundige aspecten vast te leggen.

Symbolen en notatie voor ERD's

Er zijn meerdere gelijkaardige notatiesystemen die op een aantal specifieke punten van elkaar verschillen.

Chen-notatiestijl

Hanepoot-/Martin-/Information Engineering-stijl

Bachman-stijl

IDEF1X-stijl

Barker-stijl

 

Voorbeelden

Hieronder vindt u voorbeelden van ER-diagrammen in elk systeem.

Conceptuele, logische en fysieke datamodellen

ER-modellen en datamodellen worden doorgaans in tot drie detailniveaus opgesteld:

  • Conceptueel datamodel: Het hoogste niveau met het minste detail. Deze benadering toont de schaal en reikwijdte van het model en de systeemarchitectuur. Voor een kleiner systeem is deze stap wellicht niet nodig. In dat geval start u met het logische model.
  • Logisch datamodel: Bevat meer detail dan een conceptueel model. Er worden meer gedetailleerde operationele en transactionele entiteiten gedefinieerd. Het logische model is onafhankelijk van de technologie waarvoor het wordt toegepast.
  • Fysiek datamodel: Vanuit elk logisch model kunnen een of meerdere fysieke modellen ontwikkeld worden. Het fysieke model moet genoeg technologiedetail bevatten om de eigenlijke database te produceren en implementeren.

Er bestaan dan wel diagramtypes die een gelijkaardige graad van detail en reikwijdte bieden, zoals Data Flow Diagrams, maar dit staat in contrast met het drie-schemamodel dat gebruikt wordt bij softwareontwerp en dat de informatie net iets anders verdeelt. Soms vertakken ingenieurs ER-diagrammen met extra hiërarchie om informatieniveaus toe te voegen die nodig zijn voor databaseontwerp. Ze kunnen bijvoorbeeld groeperingen toevoegen door naar boven uit te breiden met superklassen en naar beneden met subklassen.

Beperkingen ER-diagrammen en -modellen

  • Alleen voor relationele gegevens: Onthoud dat het doel is om relaties te tonen. ER-diagrammen tonen alleen die relationele structuur.
  • Niet voor ongestructureerde gegevens: Als gegevens niet netjes in verschillende velden, rijen of kolommen zijn opgedeeld, hebben ER-diagrammen wellicht weinig zin. Dat geldt ook voor semi-gestructureerde gegevens, waar slechts een deel van de gegevens nuttig zal zijn.
  • Moeilijk integreren met een bestaande database: Het gebruik van ER-modellen om met een bestaande database te integreren, kan door de verschillende architectuur moeilijk zijn.

Een simpel ER-diagram tekenen

  1. Doel en bereik: Definieer het doel en bereik van wat u analyseert of modelleert.

  2. Entiteiten: Identificeer de betrokken entiteiten. Begin entiteiten als rechthoeken te tekenen (of de vorm van uw gekozen system) en ze als zelfstandig naamwoord te labellen.

  3. Relaties: Bepaal de verhoudingen tussen de entiteiten. Teken lijnen om de relaties aan te geven en voorzie ze van een label. Sommige entiteiten hebben helemaal geen relatie, en dat is geen probleem. In verschillende notatiesystemen kunnen relaties een ruit zijn, of ook een rechthoek, of een label op de lijn zelf.

  4. Attributen: Ga meer in detail door attributen aan entiteiten toe te voegen. Attributen worden vaak weergegeven als ovalen. 

  5. Kardinaliteit: Geef aan of de relatie een-op-een, een-op-veel of veel-veel is.

 

Meer tips voor ER-diagrammen

  1. Werk met het detailniveau dat nodig is voor wat u wilt bereiken. Afhankelijk van hoeveel detail u wilt, kunt u een conceptueel, logisch of fysiek model tekenen. (Zie hierboven voor beschrijvingen van die niveaus.)

  2. Let op overbodige entiteiten of relaties.

  3. Als u een databaseprobleem probeert op te lossen, let dan op gaten in relaties of ontbrekende entiteiten of attributen.

  4. Zorg ervoor dat alle entiteiten en relaties gelabeld zijn.

  5. U kunt relationele tabellen omzetten naar ER-diagrammen en omgekeerd, als dat helpt uw doel te bereiken.

  6. Zorg ervoor dat het ER-diagram alle gegevens ondersteunt die u wilt opslaan.

  7. Er zijn verschillende benaderingen mogelijk voor een ER-diagram. Als uw diagram de nodige informatie biedt voor het beoogde doel, dan is het een goed diagram.

AB Test