Wat is ER-modellering?
Entity Relationship Model (ER-modellering) is een grafische benadering van databaseontwerp. Het is een datamodel op hoog niveau dat data-elementen en hun relatie voor een gespecificeerd 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 de omgeving. Elke medewerker van een organisatie is bijvoorbeeld een aparte entiteit. Hieronder volgen enkele van de belangrijkste kenmerken van entiteiten.
- Een entiteit heeft een reeks eigenschappen.
- Entiteitseigenschappen kunnen waarden hebben.
In deze tutorial leer je-
- Enhanced Entity Relationship (EER) -model
- Waarom ER-model gebruiken?
- Entiteiten in de "MyFlix" -bibliotheek
- De relaties tussen entiteiten definiëren
Laten we ons eerste voorbeeld nog eens bekijken. Een medewerker van een organisatie is een entiteit. Als "Peter" een programmeur (een medewerker ) is bij Microsoft, kan hij attributen ( eigenschappen) hebben zoals naam, leeftijd, gewicht, lengte, etc. Het is duidelijk dat die waarden bevatten die voor hem relevant zijn.
Elk kenmerk kan waarden hebben . In de meeste gevallen heeft een enkel kenmerk één waarde. Maar het is mogelijk dat attributen ook meerdere waarden hebben. Peter's leeftijd heeft bijvoorbeeld één enkele waarde. Maar zijn eigenschap "telefoonnummers" kan meerdere waarden hebben.
Entiteiten kunnen relaties met elkaar hebben. Laten we eens kijken naar het eenvoudigste voorbeeld. Stel dat elke Microsoft-programmeur een computer krijgt. Het is duidelijk dat Peter's Computer ook een entiteit is. Peter gebruikt die computer, en dezelfde computer wordt gebruikt door Peter. Met andere woorden, er is een wederzijdse relatie tussen Peter en zijn computer.
In Entity Relationship Modeling modelleren we entiteiten, hun attributen en relaties tussen entiteiten.
Enhanced Entity Relationship (EER) -model
Enhanced Entity Relationship (EER) -model is een gegevensmodel op hoog niveau dat uitbreidingen biedt op het oorspronkelijke Entity Relationship (ER) -model. EER-modellen ondersteunt meer detailsontwerp. EER-modellering kwam naar voren als een oplossing voor het modelleren van zeer complexe databases.
EER maakt gebruik van UML-notatie. UML is de afkorting voor Unified Modeling Language; het is een modelleertaal 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 de UML-notatie.
Waarom ER-model gebruiken?
Nu denkt u misschien, waarom zou u ER-modellering gebruiken als we eenvoudig de database en al zijn objecten kunnen maken 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 aangevinkt, 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 van cruciaal belang bij het produceren van databasesystemen die voldoen aan de eisen van de gebruikers. ER-modellen zijn voorbeelden van dergelijke tools.
ER-diagrammen verhogen ook de gebruikersproductiviteit omdat ze gemakkelijk kunnen worden vertaald in relationele tabellen.
Case Study: ER-diagram voor "MyFlix" videobibliotheek
Laten we nu gaan werken met het MyFlix Video Library-databasesysteem om het concept van ER-diagrammen te helpen begrijpen. In de rest van deze tutorial zullen we deze database gebruiken voor alle hand-on
MyFlix is een zakelijke entiteit die films verhuurt aan haar leden. MyFlix heeft zijn records handmatig opgeslagen. Het management wil nu verhuizen naar een DBMS
Laten we eens kijken naar de stappen om een EER-diagram voor deze database te ontwikkelen-
- Identificeer de entiteiten en bepaal de relaties die tussen hen bestaan.
- Elke entiteit, elk kenmerk en elke relatie moet passende namen hebben die ook door niet-technische mensen gemakkelijk kunnen worden begrepen.
- Relaties mogen niet rechtstreeks met elkaar worden verbonden. Relaties zouden entiteiten moeten verbinden.
- Elk kenmerk in een bepaalde entiteit moet een unieke naam hebben.
Entiteiten in de "MyFlix" -bibliotheek
De entiteiten die moeten worden opgenomen in ons ER-diagram zijn;
- Leden - deze entiteit zal informatie over leden bevatten.
- Films - deze entiteit zal informatie over films bevatten
- Categorieën - deze entiteit bevat informatie die films in verschillende categorieën plaatst, zoals 'Drama', 'Actie' en 'Episch' enz.
- Filmverhuur - deze entiteit zal informatie bevatten over films die aan leden worden verhuurd.
- Betalingen - deze entiteit zal informatie bevatten over de betalingen die door leden zijn gedaan.
De relaties tussen entiteiten definiëren
Leden en films
Het volgende geldt met betrekking tot 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 kunnen we zien dat de aard van de relatie veel-op-veel is. Relationele databases ondersteunen geen veel-op-veel-relaties. We moeten een knooppuntentiteit introduceren . Dit is de rol die de MovieRentals-entiteit speelt. Het heeft een een-op-veel-relatie met de ledentafel en nog een een-op-veel-relatie met de filmtafel.
Films en categorieën entiteiten
Het volgende geldt voor films en categorieën.
- Een film kan slechts tot één categorie behoren, maar een categorie kan meer dan één film bevatten.
Hieruit kunnen we afleiden dat de aard van de relatie tussen categorieën en filmtabel één-op-veel is.
Leden en betalingsentiteiten
Het volgende geldt voor leden en betalingen
- Een lid kan maar één account hebben, maar kan wel een aantal betalingen doen.
Hieruit kunnen we afleiden dat de aard van de relatie tussen leden en betalingsentiteiten één-op-veel is.
Laten we nu een EER-model maken met MySQL Workbench
Klik in de MySQL-workbench op - "+" knop
Dubbelklik op de knop Diagram toevoegen om de werkruimte voor ER-diagrammen te openen.
Volgend venster verschijnt
Laten we eens kijken naar de twee objecten waarmee we zullen werken.
- Met het tabelobject kunnen we entiteiten maken en de attributen definiëren die aan de specifieke entiteit zijn gekoppeld.
- Met de knop voor plaatsrelaties kunnen we relaties tussen entiteiten definiëren.
De entiteit van de leden zal de volgende kenmerken hebben
- Lidmaatschapsnummer
- Volledige namen
- Geslacht
- Geboortedatum
- Fysiek adres
- postadres
Laten we nu de ledentabel maken
1. Sleep het tabelobject vanuit het deelvenster Gereedschappen
2.Laat het vallen in het werkruimtegebied. Er verschijnt een entiteit met de naam tabel 1
3. Dubbelklik erop. Het onderstaande eigenschappenvenster verschijnt
De volgende ,
- Verander tabel 1 in Leden
- Bewerk de standaard idtable1 in membership_number
- Klik op de volgende regel om het volgende veld toe te voegen
- Doe hetzelfde voor alle kenmerken die zijn geïdentificeerd in de entiteit van de leden.
Uw eigenschappenvenster zou er nu als volgt uit moeten zien.
Herhaal de bovenstaande stappen voor alle geïdentificeerde entiteiten.
Uw diagramwerkruimte zou er nu moeten uitzien zoals hieronder weergegeven.
Laten we een relatie creëren tussen leden en huurfilms
- Selecteer de plaatsrelatie ook met behulp van bestaande kolommen
- Klik op lidmaatschapsnummer in de tabel met leden
- Klik op reference_number in de MovieRentals-tabel
Herhaal bovenstaande stappen voor andere relaties. Uw ER-diagram zou er nu als volgt uit moeten zien:
Overzicht
- De volledige vorm van ER is Entiteits- en Relatiediagrammen. Ze spelen een zeer belangrijke rol in het ontwerpproces van de database. Ze dienen als een niet-technisch communicatiemiddel voor technische en niet-technische mensen.
- Entiteiten vertegenwoordigen zaken uit de echte wereld; ze kunnen conceptueel zijn als een verkooporder of fysiek zoals een klant.
- Alle entiteiten moeten unieke namen krijgen.
- ER-modellen stellen de databaseontwerpers ook in staat de relaties tussen entiteiten te identificeren en te definiëren.
Het volledige ER-model is hieronder bijgevoegd. U kunt het eenvoudig importeren in MySQL Workbench
Klik hier om het ER-model te downloaden