Entity-relationship diagrams zijn een nuttig hulpmiddel bij het ontwerpen van databases. Ze tonen de betrokken entiteiten, hun attributen, en de relaties tussen hen. Je moet deze elementen definiëren om de structuur van de database goed te begrijpen voordat je hem bouwt.
Een methode die vaak wordt gebruikt om een entiteit-relatie diagram te maken is kraaienpoot notatie. De opvallende pijlen die in de jaren zeventig van de vorige eeuw werden geïntroduceerd, worden ook wel omgekeerde pijlen, kippenpoten of vorken genoemd.
Wat zijn de symbolen die in kraaienpootnotatie worden gebruikt?
Kraaienpootnotatie gebruikt een aantal unieke vormen en symbolen om de elementen in een database weer te geven.
Entiteiten
Een entiteit is een ding in de werkelijkheid (persoon, plaats, object – alles wat je in je database een naam kunt geven, kan een entiteit zijn) dat in kraaienpootnotatie wordt weergegeven door een rechthoek met een naam in een vakje erbovenop. Een entiteit is altijd enkelvoudig.
Attributen
Entiteiten hebben attributen die hen beschrijven. Deze attributen staan onder de naam in de rest van de rechthoek. Een entiteit kan één of een heleboel attributen hebben. Een van die attributen is het sleutelattribuut, of de identifier, die de entiteit op een unieke manier identificeert. De identifier wordt getoond met een sterretje naast de naam.
Dus onze speler-entiteit wordt voorgesteld door een rechthoek met het woord player er in.
Relaties
De entiteiten die in het diagram worden weergegeven, hebben relaties die beschrijven hoe ze op elkaar inwerken. Relaties tussen entiteiten worden weergegeven door een lijn met een werkwoord op de lijn geschreven.
Hoe werken relaties in kraaienpootnotatie?
Relaties in kraaienpootnotatie hebben twee indicatoren om de kardinaliteit en de modaliteit van de relatie aan te geven. Cardinaliteit vertelt je het maximum aantal keren dat een instantie van een entiteit kan worden geassocieerd met instanties van de andere entiteit. Modaliteit vertelt je het minimum aantal keren dat de instantie geassocieerd kan worden met instanties van de andere entiteit. Merk op dat je meestal ook gewoon het woord cardinaliteit kunt gebruiken.
Deze indicatoren worden aan beide uiteinden van de relatielijn getoond, zodat je kunt zien hoe de entiteiten zich tot elkaar verhouden.
Een
Veel
Je kunt aan deze regel zien waar de naam “kraaienpoot” vandaan komt…
Nul of veel
Een relatie van nul of veel betekent dat deze optioneel is. Er kan geen verband zijn tussen de entiteiten, of er kunnen er een of meer zijn.
Een of veel
De “een” geeft aan dat dit geen optionele relatie is, hoewel er meer dan een zou kunnen zijn.
Een en slechts een
Er is niet meer dan een relatie mogelijk tussen instanties.
Nul of één
Een andere optionele relatie, met een maximum van één.
Chen-notatie vs. kraaienpoot
De kraaienpoot-notatie is niet de enige manier om een entiteit-relatiediagram te tekenen. Een alternatieve en eerdere benadering, de Chen notatie, kiest een andere benadering om entiteiten en hun relaties weer te geven: entiteiten zijn rechthoeken, hun attributen zijn ovalen en relaties zijn ruiten.
Chen notatie gebruikt symbolen op de lijnen tussen relaties en entiteiten om cardinaliteit aan te geven:
Sommige critici van de Chen-notatie voeren aan dat de diagrammen meer ruimte in beslag nemen dan kraaienpootjes en dat de symbolen voor relaties minder intuïtief zijn.
Voorbeeld van kraaienpootnotatie in actie
Laten we een online winkel in kaart brengen om te laten zien hoe kraaienpootnotatie werkt. In ons voorbeeld vereenvoudigen we de winkel en stellen we slechts vier entiteiten voor: klant, bestelling, product en kortingscode.
U kunt in het diagram zien dat elke entiteit een aantal attributen heeft en dat de unieke identificatie is gemarkeerd met een sterretje.
Nu beginnen we met het in kaart brengen van de relaties. We kunnen beginnen met klant en order.
De relatielijn laat zien dat een klant nul of veel orders kan hebben, terwijl een order kan worden geassocieerd met één en slechts één klant. Het werkwoord dat voor de relatie wordt gebruikt kan “plaatst” zijn, zoals in de klant plaatst een bestelling.
Over naar product en bestelling: een product kan worden geassocieerd met nul of veel bestellingen, terwijl een bestelling een of veel producten moet hebben (je kunt geen bestelling hebben zonder iets te bestellen!). Voor product en bestelling kunnen we het werkwoord “wordt toegevoegd aan” gebruiken om te beschrijven hoe een product aan een bestelling wordt toegevoegd.
Daarnaast komt de kortingscode. We willen onze klanten aanmoedigen om producten te bestellen, dus soms sturen we een seizoensgebonden kortingscode per e-mail. We zouden specifieke codes kunnen sturen die aan een bepaalde klant zijn gekoppeld, maar in ons voorbeeld kiezen we voor dezelfde korte alfanumerieke code voor iedereen.
We hoeven de klant niet aan de kortingscode te koppelen, omdat ze de code gewoon invoeren wanneer ze bestellen en de totale kosten van de bestelling worden aangepast. Er hoeft geen persistente relatie te zijn tussen klant en kortingscode.
Orders en kortingscodes hebben een nul of één relatie: een klant voert misschien geen kortingscode in, maar als hij dat wel doet, kan hij er maar één tegelijk gebruiken. Om terug te gaan naar de andere kant: aan een bestelling kan geen kortingscode zijn gekoppeld, maar als dat wel het geval is, kan het er maar één zijn. Een kortingscode wordt “toegepast op” een bestelling.
Een echt entiteit-relatiediagram dat met kraaienpootnotatie is getekend, zal veel complexer zijn dan ons voorbeeld. Maar u kunt zien hoe de kraaienpootnotatie het gemakkelijk maakt om in één oogopslag te zien hoe de database zal functioneren. U kunt zich waarschijnlijk zelfs al een voorstelling maken van de andere onderdelen van onze online winkel en hoe die zich tot elkaar zouden kunnen verhouden.
Kraaienpootnotatie werkt het beste wanneer u serieus moet beginnen met het bouwen van uw database. Wanneer je heel duidelijk moet zijn over hoe entiteiten zich tot elkaar verhouden, zul je het detailniveau waarderen dat wordt ingekapseld door de relatielijnen in een entity-relationship diagram (ERD) dat is gemaakt met behulp van kraaienpootnotatie. Maar als je net begint met het ontwikkelen van je project, kun je vertrouwen op eenvoudigere benaderingen van de ERD. De eerste stap in het communiceren van je ideeën is het ruw schetsen van de entiteiten, attributen, en relaties. In dat stadium is het meestal een goed idee om snel te werken en je niet te veel zorgen te maken over de details.
Gleek ondersteunt de kraaienpootnotatie, en we stellen u in staat om tal van andere diagrammen te maken. Onze diagramtools zijn bedoeld voor de ontwikkelaar die snel een informeel ER-diagram op conceptueel niveau wil maken, of een snel contextdiagram om uit te werken hoe uw product zich verhoudt tot externe entiteiten. Als u uw ideeën wilt bespreken in een vergadering of wilt samenwerken aan de eerste fasen van het ontwerpen van een database, probeer dan Gleek’s toetsenbord-vriendelijke benadering van diagrammen.