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.

  • ๐Ÿ” Kernconcept: ER-diagrammen definiรซren de databasestructuur aan de hand van drie kerncomponenten: entiteiten, attributen en relaties. Dit zorgt voor een duidelijke koppeling tussen dataobjecten en hun interacties.
  • ๐Ÿงฑ Structurele symbolen: Rechthoeken duiden entiteiten aan, ellipsen representeren attributen en rhomben illustreren relaties; verbindingslijnen geven logische verbanden aan, waarbij onderstreepte attributen primaire sleutels markeren.
  • โš™๏ธ Entiteitsclassificatie: Entiteiten worden gegroepeerd in sets, die elk worden geรฏdentificeerd door unieke sleutels of attributen. Zwakke entiteiten hebben geen onafhankelijke sleutels en zijn voor identificatie afhankelijk van sterke entiteiten, die worden weergegeven met dubbele rechthoeken en stippellijnen.
  • ๐Ÿ”— Relatiedefinitie: Relaties drukken associaties uit tussen entiteiten (bijvoorbeeld: "Student schrijft zich in voor cursus") en worden gecategoriseerd op basis van de mate van verbondenheid: รฉรฉn-op-รฉรฉn, รฉรฉn-op-veel, veel-op-รฉรฉn of veel-op-veel.
  • ๐Ÿงฉ Attribuuttypen: Attributen kunnen eenvoudig, samengesteld, afgeleid of meerwaardig zijn en definiรซren afzonderlijke gegevenseigenschappen zoals namen, datums en berekende velden.
  • ๐Ÿงญ Stappen voor het maken van een ERD: Identificeer entiteiten, leg relaties vast, bepaal de cardinaliteiten, wijs attributen toe en definieer primaire sleutels voordat u het volledige diagram construeert.
  • ๐Ÿ“ˆ Optimalisatiepraktijk: Verwijder redundanties, label alle componenten en behoud unieke entiteitsvermeldingen voor de duidelijkheid, zodat het diagram voldoet aan alle noodzakelijke vereisten voor gegevensopslag.

Entiteit Relatiediagram

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.

Voorbeelden van ER-diagrammen
Voorbeeld van een entiteitsrelatiediagram

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.

Onderdelen van het ER-diagram

Onderdelen van het ER-diagram

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

voorbeelden van entiteiten in DBMS

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.

Geheel

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.

Zwakke entiteiten

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.

Verhouding

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.

Attributen

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.

Kardinaliteit

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.

Eรฉn-op-รฉรฉn kardinaliteit

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.

Eรฉn-op-veel-kardinaliteit

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.

Veel op รฉรฉn kardinaliteit

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.

Veel-op-veel kardinaliteit

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:

Maak een entiteitsrelatiediagram

Stappen om een โ€‹โ€‹ER-diagram te maken

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

Entiteitsidentificatie

Stap 2) Identificatie van relaties

We hebben de volgende twee relaties:

  • De student is toegewezen een cursus
  • De professor levert een cursus

Relatie-identificatie

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

Kardinaliteitsidentificatie

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

Stappen voor het maken van een entiteitsrelatiediagram

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:

Maak het ERD-diagram

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

Veelgestelde vragen

Een ER-diagram visualiseert de structuur van een database door entiteiten, hun attributen en relaties te definiรซren. Het helpt ontwerpers, ontwikkelaars en belanghebbenden om consistentie, integriteit en efficiรซntie in de datamodellering te waarborgen voordat de implementatie begint.

De twee belangrijkste typen zijn conceptuele ER-diagrammen (die relaties en entiteiten op hoog niveau schetsen zonder implementatiedetails) en fysieke ER-diagrammen (die de daadwerkelijke databasestructuren, gegevenstypen, sleutels en beperkingen voor de implementatie in detail weergeven).

Om een โ€‹โ€‹ER-diagram te maken: (1) Identificeer de belangrijkste entiteiten op basis van uw vereisten, (2) Bepaal de relaties tussen de entiteiten, (3) Wijs kardinaliteiten toe op basis van bedrijfsregels, (4) Definieer attributen voor elke entiteit, (5) Identificeer primaire sleutels en (6) Teken het diagram met behulp van de juiste notatie.

De keuze hangt af van de context. Chen-notatie is het meest geschikt voor conceptueel ontwerp en academische omgevingen, terwijl Crow's Foot-notatie de voorkeur geniet voor logisch/fysiek ontwerp in de industrie. De meeste moderne databasetools ondersteunen Crow's Foot-notatie.

Een sterke entiteit heeft een eigen primaire sleutel en kan onafhankelijk bestaan. Een zwakke entiteit heeft geen primaire sleutel en is voor haar identificatie afhankelijk van een sterke entiteit, die een combinatie gebruikt van de primaire sleutel van de eigenaar en haar eigen gedeeltelijke sleutel (discriminator).

In cloudgebaseerde DBMS-platformen sturen ER-diagrammen geautomatiseerde provisioning, schaling en query-orkestratie. Ze stellen AI-gestuurde tools in staat om datastructuren af โ€‹โ€‹te stemmen op workloadvoorspellingen en realtime gebruikersvraag, waardoor de systeemefficiรซntie wordt verbeterd.

Hoewel generatieve AI initiรซle ER-modellen kan voorstellen op basis van bedrijfsvereisten of bestaande datasets, blijft menselijk toezicht cruciaal om relaties te valideren, beperkingen af โ€‹โ€‹te dwingen, logische samenhang te waarborgen en de afstemming met de daadwerkelijke bedrijfsregels in productiesystemen te verifiรซren.

Veel-op-veel-relaties kunnen niet rechtstreeks in relationele databases worden geรฏmplementeerd. U moet een associatieve entiteit (koppeltabel) creรซren die de M:N-relatie opsplitst in twee 1:N-relaties. Deze koppeltabel bevat externe sleutels die verwijzen naar beide oorspronkelijke entiteiten.

Vat dit bericht samen met: