Wat is ER-modellering? Leer met voorbeeld

⚡ Slimme samenvatting

Entity Relationship Modeling (ERM) is een grafische benadering van databaseontwerp waarbij objecten uit de echte wereld worden weergegeven als entiteiten, beschreven met attributen en vastgelegd hoe ze met elkaar verbonden zijn via relaties. Dit levert een duidelijke blauwdruk op voordat er tabellen worden aangemaakt.

  • 🧩 Wat het is: ER-modellering is een grafisch datamodel op hoog niveau dat gegevenselementen en hun onderlinge relaties definieert.
  • 🗂️ Bouwstenen: Entiteiten vertegenwoordigen dingen uit de echte wereld, attributen beschrijven hun eigenschappen en relaties leggen vast hoe entiteiten met elkaar interageren.
  • 🔗 Kardinaliteit: Relaties zijn één-op-één, één-op-veel of veel-op-veel, en worden opgelost met een verbindingsentiteit.
  • 🚀 EER-model: Het verbeterde ER-model maakt gebruik van UML-notatie en extra constructies voor zeer complexe databases.
  • 🎬 Casestudy MyFlix: Een voorbeeld van een videotheek brengt leden, films, categorieën, verhuur en betalingen in kaart met behulp van een ER-diagram.
  • 🤖 AI-assistentie: AI-tools en GitHub Copilot zetten beschrijvingen in natuurlijke taal om in ER-diagrammen en SQL-schema's.

ER-modellering

Wat is ER-modellering?

Entiteitsrelatiemodel (ER Modeling) is een grafische benadering van databaseontwerp. Het is een datamodel op hoog niveau dat data-elementen en hun relatie voor een specifiek softwaresysteem definieert. Een ER-model wordt gebruikt om objecten uit de echte wereld weer te geven.

Een entiteit is een ding of object in de echte wereld dat te onderscheiden is van zijn omgeving. Zo is bijvoorbeeld elke medewerker van een organisatie een aparte entiteit. Hieronder volgen enkele belangrijke kenmerken van entiteiten.

  • Een entiteit heeft een reeks eigenschappen.
  • Entiteitseigenschappen kunnen waarden hebben.

Laten we ons eerste voorbeeld nog eens bekijken. Een medewerker van een organisatie is een entiteit. Als "Peter" een programmeur (een medewerker) is bij MicrosoftHij kan eigenschappen hebben zoals naam, leeftijd, gewicht, lengte, enz. Het is duidelijk dat die eigenschappen voor hem relevant zijn.

Elk attribuut kan waarden hebben. In de meeste gevallen heeft een enkel attribuut één waarde. Maar het is ook mogelijk dat attributen meerdere waarden hebben. Peters leeftijd heeft bijvoorbeeld één waarde. Maar zijn eigenschap 'telefoonnummers' kan meerdere waarden hebben.

Entiteiten kunnen relaties met elkaar hebben. Laten we het eenvoudigste voorbeeld bekijken. Stel dat elk Microsoft Een programmeur krijgt een computer. Het is duidelijk dat Peters computer ook een entiteit is. Peter gebruikt die computer, en diezelfde computer wordt door Peter gebruikt. Met andere woorden, er bestaat een wederzijdse relatie tussen Peter en zijn computer.

Bij entiteit-relatiemodellering modelleren we entiteiten, hun attributen en de relaties tussen entiteiten.

Waarom een ​​ER-model gebruiken?

Nu denk je misschien: waarom zouden we ER-modellering gebruiken als het eenvoudigweg kan? maak de database aan en al zijn objecten zonder ER-modellering? Een van de uitdagingen bij het ontwerpen van een database is het feit dat ontwerpers, ontwikkelaars en eindgebruikers de neiging hebben om gegevens en het gebruik ervan anders te bekijken. Als deze situatie niet wordt gecontroleerd, kunnen we uiteindelijk een databasesysteem produceren dat niet voldoet aan de eisen van de gebruikers.

Communicatiemiddelen die door alle belanghebbenden (zowel technische als niet-technische gebruikers) worden begrepen, zijn cruciaal voor het ontwikkelen van databasesystemen die aan de eisen van de gebruikers voldoen. ER-modellen zijn voorbeelden van dergelijke middelen.

ER-diagrammen verhogen ook de productiviteit van de gebruiker, omdat ze gemakkelijk kunnen worden omgezet in relationele tabellen.

Verbeterd entiteitsrelatiemodel (EER).

Het Enhanced Entity Relationship (EER)-model is een datamodel op hoog niveau dat uitbreidingen biedt op het oorspronkelijke Entity Relationship (ER)-model. EER-modellen ondersteunen een gedetailleerder ontwerp. EER-modellering is ontstaan ​​als oplossing voor het modelleren van zeer complexe databases.

EER gebruikt UML-notatie. UML is het acroniem voor Uniforme modelleringstaal; het is een modelleringstaal voor algemene doeleinden die wordt gebruikt bij het ontwerpen van objectgeoriënteerde systemen. Entiteiten worden weergegeven als klassendiagrammen. Relaties worden weergegeven als associaties tussen entiteiten. Het onderstaande diagram illustreert een ER-diagram met behulp van de UML-notatie.

Verbeterd entiteitsrelatiemodel (EER).

Casestudy: ER-diagram voor de "MyFlix"-videotheek

Laten we nu aan de slag gaan met het MyFlix Video Library-databasesysteem om het concept van ER-diagrammen beter te begrijpen. We zullen deze database gebruiken voor alle praktische oefeningen in deze handleiding.

MyFlix is ​​een zakelijke entiteit die films verhuurt aan haar leden. MyFlix heeft zijn gegevens handmatig opgeslagen. Het management wil nu overstappen naar een dbms.

Laten we de stappen bekijken om een ​​EER-diagram voor deze database te ontwikkelen:

  1. Identificeer de entiteiten en bepaal de relaties die ertussen bestaan.
  2. Elke entiteit, elk attribuut en elke relatie moet een passende naam hebben die ook voor niet-technische mensen gemakkelijk te begrijpen is.
  3. Relaties mogen niet rechtstreeks met elkaar verbonden zijn. Relaties moeten entiteiten verbinden.
  4. Elk attribuut in een bepaalde entiteit moet een unieke naam hebben.

Entiteiten in de "MyFlix"-bibliotheek

De entiteiten die moeten worden opgenomen in onze ER-diagram zijn:

  • Leden – deze entiteit bewaart de ledeninformatie.
  • Films – deze entiteit bevat informatie over films.
  • Categorieën – deze entiteit bevat informatie waarmee films in verschillende categorieën worden ingedeeld, zoals 'Drama', 'Actie', 'Episch', enzovoort.
  • Filmverhuur – deze entiteit beheert informatie over films die aan leden zijn verhuurd.
  • Betalingen – deze entiteit bewaart informatie over de betalingen die door leden zijn gedaan.

De relaties tussen entiteiten definiëren

Leden en films

Het volgende geldt voor de interacties tussen de twee entiteiten.

  • Een lid kan in een bepaalde periode meer dan één film huren.
  • Een film kan in een bepaalde periode door meer dan één lid worden gehuurd.

Uit het bovenstaande scenario blijkt dat de relatie een vele-op-vele-relatie is. Relationele databases ondersteunen geen vele-op-vele-relaties. We moeten een koppelentiteit introduceren. Dit is de rol die de entiteit MovieRentals vervult. Deze heeft een één-op-vele-relatie met de tabel Members en een andere één-op-vele-relatie met de tabel Movies.

Films en categorieënentiteiten

Het volgende geldt voor films en categorieën.

  • Een film kan slechts tot één categorie behoren, maar een categorie kan meerdere films bevatten.

Hieruit kunnen we afleiden dat de relatie tussen de categorieën en de filmtabellen een één-op-veel-relatie is.

Leden en betalingsentiteiten

Het volgende geldt voor leden en betalingen.

  • Een lid kan slechts één account hebben, maar kan wel een aantal betalingen doen.

Hieruit kunnen we afleiden dat de relatie tussen de leden en de betalingsinstellingen een één-op-veel-relatie is.

Maak het EER-model met behulp van MySQL Werkbank

In MySQL WerkbankKlik op de "+" knop.

Maak het EER-model met behulp van MySQL Werkbank

Double Klik op de knop 'Diagram toevoegen' om de werkruimte voor ER-diagrammen te openen.

Diagram toevoegen in MySQL Werkbank

Het volgende venster verschijnt.

MySQL Workbench EER-modelleringsomgeving

Laten we eens kijken naar de twee objecten waarmee we gaan werken.

  • Het tabelobject tafeltool Hiermee kunnen we entiteiten creëren en de attributen definiëren die aan die specifieke entiteit zijn gekoppeld.
  • De plaatsrelatie plaats relatie tool Met deze knop kunnen we relaties tussen entiteiten definiëren.

De entiteit Leden zal de volgende attributen hebben:

  • Lidmaatschapsnummer
  • Volledige namen
  • Geslacht
  • Geboortedatum
  • Fysiek adres
  • postadres

Laten we nu de tabel 'Leden' aanmaken.

1. Sleep het tafelobject vanuit het gereedschapspaneel.

2. Sleep het naar het werkgebied. Er verschijnt een entiteit met de naam tabel 1.

3. Double Klik erop. Het onderstaande eigenschappenvenster verschijnt.

Eigenschappen van de ledentabel in MySQL Werkbank

Vervolgens

  1. Wijzig tabel 1 in Leden.
  2. Wijzig de standaardwaarde idtable1 naar membership_number.
  3. Klik op de volgende regel om het volgende veld toe te voegen.
  4. Doe hetzelfde voor alle attributen die in de entiteit Leden zijn geïdentificeerd.

Uw eigenschappenvenster zou er nu zo uit moeten zien.

Leden entiteitsattributen gedefinieerd

Herhaal de bovenstaande stappen voor alle geïdentificeerde entiteiten.

Uw diagramwerkruimte zou er nu uit moeten zien zoals hieronder weergegeven.

MyFlix-entiteiten in de diagramwerkruimte

Laten we een band opbouwen tussen leden en filmverhuur.

  1. Selecteer de plaatsrelatie met behulp van de tool voor bestaande kolommen.
  2. Klik op membership_number in de tabel Leden.
  3. Klik op het referentienummer in de tabel MovieRentals.

Het opbouwen van een relatie tussen leden en MovieRentals

Herhaal de bovenstaande stappen voor de andere relaties. Je ER-diagram zou er nu als volgt uit moeten zien:

Het ER-diagram van MyFlix is ​​voltooid.

Veelgestelde vragen

Een ER-diagram gebruikt drie kerncomponenten: entiteiten als rechthoeken, attributen als ovalen en relaties als rhomben. Onderstreepte attributen markeren de primaire sleutels.

Veelvoorkomende attribuuttypen zijn eenvoudige (atomaire), samengestelde (deelbare), afgeleide (berekende), meerwaardige (meerdere waarden) en sleutelattributen die een entiteit identificeren.

Cardinaliteit definieert hoeveel instanties van een entiteit gerelateerd zijn aan een andere: één-op-één, één-op-veel of veel-op-veel. Een koppelentiteit lost niet-ondersteunde veel-op-veel-koppelingen op.

Een sterke entiteit heeft een eigen primaire sleutel en staat op zichzelf. Een zwakke entiteit heeft geen volledige sleutel en is afhankelijk van een eigenaarsentiteit.

De kraaienpootnotatie geeft de kardinaliteit weer met lijneinden die lijken op een vogelpoot. De uitsteeksels markeren de vele getallen; de dwarsbalken en cirkels geven de enkele en optionele getallen aan.

Een ER-model is een visuele blauwdruk op hoog niveau van entiteiten en relaties. Het relationele model implementeert dit als tabellen, rijen, kolommen en sleutels binnen een DBMS.

AI-tools zetten beschrijvingen in natuurlijke taal om in ER-diagrammen, suggereren entiteiten en relaties en genereren SQL-schema's. Ontwerpers controleren en corrigeren de output voordat deze wordt geïmplementeerd.

Ja. GitHub-copiloot Het programma suggereert entiteiten, relaties en tabelstructuren en genereert SQL om deze te bouwen. Het kan ook diagrammen als code opstellen, zoals Mermaid, die vervolgens worden omgezet in een ER-diagram.

Vat dit bericht samen met: