Skip to main content

5.1 ERD - oefeningen

Hieronder staan 4 opgaven om te oefenen met het opstellen van een databaseontwerp. Voor KT-1 is het nodig dat je een ERD kunt opstellen. Zonder goed ERD kun je het examen niet halen!

Bronnen

Voor de theorie wordt verwezen naar de volgende bronnen:


Opgave 1

Afdeling personeelsadministratie van een ziekenhuis registreert in een dossier per medewerker welke training hij/zij heeft gevolgd. Tijdens het jaarlijkse functioneringsgesprek wordt deze informatie gebruikt om te bespreken of de kennis van de medewerker op peil is en welke trainingen deze medewerker het komende jaar moet volgen. Welke trainingen verplicht zijn, is afhankelijk van de functie van de medewerker. Er worden verschillende soorten trainingen aangeboden voor verschillende functies. De volgende tabellen worden hiervoor gebruikt:

MEDEWERKER (MedNummer, MedNaam, MedGeboortedatum, FunctieCode, DatumInDienst)

TRAININGSOORT (TrCode, TrainingOmschrijving, Doelgroep, StudieBelastingUren)

TRAINING (TrainingID, TrCode, docent, startdatum, AantalWeken, Aanvang, Eindtijd, Locatie)

DEELNAME (MedNummer, TrainingID, startdatum, resultaat)

FUNCTIE (FunctieCode, FunctieOmschrijving, MaxSalaris, StartSalaris)

  1. Onderstreep de Primary Keys
  2. Zet een sterretje bij de Foreign Keys*
  3. Teken een ERD met tabelnamen (geen velden) en de relaties tussen de tabellen. Toon in de relaties de één en véél kant met kraaienpootjes.

Opgave 2

De secretaris van een voetbalclub wil aan het begin van het seizoen de teamindeling in het clubblad publiceren volgens het voorbeeld hieronder.
Ook wil hij een overzicht publiceren met per team de trainingsavond en -tijden, de trainer en de coach.
Voor de verzending van het clubblad heeft hij adresstickers van alle spelers nodig.
Een speler kan slechts in één team meespelen.

Ontwerp het datamodel. Je kunt gebruik maken van lucidchart voor het opstellen van jouw ERD.

  1. Welke entiteiten (personen, dingen gebeurtenissen) kun je onderscheiden? Benoem alle entiteiten.
  2. Noteer per entiteit (=tabel) de attributen (=velden) die nodig zijn om de informatie zoals hierboven beschreven staat, te kunnen leveren.
  3. Bedenk per tabel wat je als primary key (pk, sleutelveld) kiest en in welke tabellen je een foreign key (FK) opneemt.
  4. Teken het uiteindelijke ERD.

Opgave 3

Een database bestaat uit tabellen die aan een aantal voorwaarden moeten voldoen. Hieronder staan een aantal tabelontwerpen. (Deze tabellen hebben niets met elkaar te maken.)

  1. Wat is er fout aan de volgende tabellen?
  2. Onderstreep in iedere tabel het sleutelveld.
  • LEERLING (voornaam, tussenv, achternaam, leerlingnummer, leeftijd, adres, postcode, woonplaats)
  • BESTELLING(bestelnummer, besteldatum, klantnr, product1, aantal1, product2, aantal2, product3, aantal3)
  • CONTRIBUTIE_BETALING(lidno, achternaam, bankrekening, datum_betaling, bedrag)
  • PRODUCT(productnummer, prijs, voorraad, leveranciersnaam, leverancierstelefoonnummer)

Opgave 4

Bij het bedrijf AIKIA worden meubels verkocht. Een meubel bestaat uit een aantal standaard componenten die artikelen worden genoemd. Als je alle artikelen van een product optelt dan kom je op de prijs van een product.

Zo maakt de afdeling calculatie van AIKIA het volgende periodieke overzicht:

Verder worden offertes gemaakt. Een offerte is gericht aan een klant. Van deze klant worden de Naw-gegevens vastgelegd. Een offerte bestaat uit één of meerdere producten en een klant kan meerdere offertes krijgen. Een offerte heeft een bepaalde geldigheidsduur en op elke offerte kan een kortingspercentage zijn toegekend.

Maak een ERD van de database waarmee je de hierboven beschreven gegevens kan vastleggen.

  1. Bepaal alle entiteiten (voor het examen geldt; beter een entiteit te veel dan te weinig).
  2. Bepaal per entiteit de attributen
  3. Bepaal de primary- en foreign keys van elke entiteit
  4. Bepaal de relaties tussen de entiteiten
  5. maak een diagram in bijvoorbeeld app.lucidchart.com van jouw ERD.

Opgave 5

De planner van het schoolrooster wil een planning maken. In  de planning moet komen te staan welke klas wanneer welk vak heeft. De volgende functionaliteiten moet het datamodel ondersteunen.

  • als planner wil je een klas inplannen op een bepaalde tijd van de week voor een bepaald vak.
  • als planner wil je de mogelijkheid hebben om elke week het rooster te kunnen aanpassen
  • als leerling kan ik zien bij wie ik in de klas zit
  • als leerling kan de planning zien, wanneer heb ik welk vak
  • de planner wil van elk vak de naam, de afkorting en naam van de vakgroepcoördinator vastleggen
  • elk vak heeft precies één vakgroepcoördinator 
  • van de leerling wil ik de naam (voor- en achternaam) en geboortedatum kunnen vastleggen
  • van een klas wil ik de naam, afkorting en startjaar kunnen vastleggen

Maak een ERD dat bovenstaande functionaliteiten ondersteund. Dus bepaal de entiteiten, de relaties, alle attributen en de PK's en FK's. En maak hiervan een  ERD diagram.


Opgave 6

Jouw collega was bezig met een datamodel, maar hij is plotseling ziek geworden. Er ontbreken nog een paar keys en relaties.

Maak het ERD af, zet overal de juiste key bij (PK of FK) en maak de juiste relaties.

image-1600976911135.png


Opgave 7

Bekijk het onderstaande datamodel. Wat is onjuist? Tip: stel je bent een klant en je wilt vier artikelen bestellen; hoe leg je dat vast in de database?

Verbeter het datamodel.

image-1600976695560.png