4  Opgaven

Belangrijk

Je leest de versie die nog in ontwikkeling is. Dit hoofdstuk is nog een concept; er kan nog veel veranderen.

IntroLeerdoelen

Dit hoofdstuk bevat ontwerpopdrachten waarmee je oefent wat je in Hoofdstuk 2 en Hoofdstuk 3 hebt geleerd. Bij elke opgave staat welke methode wordt gevraagd:

  • ERD: begin bij de beschrijving en maak een entity-relationship-diagram;
  • Normalisatie: begin bij het document of werkblad en normaliseer tot de derde normaalvorm;
  • Vrije keuze: kies zelf de methode die het beste past bij de gegeven informatie, en licht je keuze toe.

Werkwijze

Lever bij elke opgave ten minste op:

  1. een ERD in de kraaienpootnotatie, met minimum en maximum aan beide kanten van elke relatie;
  2. een relationeel schema in de notatie van dit boek: primaire sleutels onderstreept, vreemde sleutels cursief;
  3. een korte lijst van de aannames die je hebt gemaakt waar de beschrijving niet volledig is.

Bij een normalisatieopgave laat je bovendien elke tussenstap zien (0NV, 1NV, 2NV en 3NV), met de functionele afhankelijkheden die tot een splitsing leiden.

TipTwee methoden, één ontwerp

Bij de opgaven met vrije keuze is het leerzaam om beide methoden te gebruiken: maak eerst een ERD op basis van de beschrijving en normaliseer daarna het voorbeelddocument. Komen beide uitkomsten overeen? Zo niet, zoek dan uit waar het verschil vandaan komt.

De opgaven zijn ingedeeld naar niveau: ★ is een basisopgave, ★★ een gemiddelde en ★★★ een uitdagende opgave.

4.1 Sportschool

  • Methode: ERD
  • Moeilijkheidsgraad: *

Sportschool FitPunt wil haar ledenadministratie en lesrooster in een database vastleggen.

Van elk lid worden een lidnummer, naam, e-mailadres en geboortedatum geregistreerd. Elk lid heeft één abonnementstype: Basis, Flex of Premium. Van elk abonnementstype worden een code, een naam en de maandprijs vastgelegd. Uiteraard hebben veel leden hetzelfde abonnementstype.

De sportschool biedt verschillende soorten groepslessen aan, zoals spinning, yoga en bootcamp. Van elk lestype worden een code, naam en duur in minuten bijgehouden. Een lestype wordt meerdere keren per week ingeroosterd. Zo’n lesmoment krijgt een uniek nummer en vindt plaats op een bepaalde datum en begintijd, in één zaal, onder leiding van één trainer. Van een zaal zijn het zaalnummer en de capaciteit bekend; van een trainer een code en een naam. Een trainer kan meerdere lestypen geven.

Leden reserveren via de app een plek bij een lesmoment. Na afloop registreert de trainer per reservering of het lid daadwerkelijk aanwezig was.

  1. Maak een ERD met alle entiteiten, attributen en relaties.
  2. Zet het ERD om naar een relationeel schema.
  3. De sportschool wil voortaan ook bijhouden welke abonnementen een lid in het verleden heeft gehad, met de begin- en einddatum. Wat verandert er aan je ontwerp?

4.2 Theater

  • Methode: ERD
  • Moeilijkheidsgraad: ***

Stadsschouwburg De Kroon heeft drie zalen. Van elke zaal worden een nummer en een naam vastgelegd. Elke zaal heeft vaste stoelen, aangeduid met een rij (A, B, C, …) en een stoelnummer binnen die rij. Stoel 12 in rij F bestaat dus in elke zaal. Elke stoel valt in één rang, zoals 1e rang, 2e rang of balkon.

De schouwburg programmeert voorstellingen van gezelschappen. Van een gezelschap zijn een code, de naam en een contactpersoon bekend. Een voorstelling heeft een nummer, een titel en een genre (toneel, cabaret, muziek, dans) en wordt gemaakt door één gezelschap. Een voorstelling wordt een of meer keren opgevoerd. Elke uitvoering krijgt een eigen nummer en vindt plaats op een bepaalde datum en aanvangstijd in één zaal.

De prijs van een kaartje hangt af van de rang van de stoel én van de uitvoering: een première is bijvoorbeeld duurder dan een gewone avond.

Klanten (klantnummer, naam, e-mailadres) maken een reservering voor één uitvoering. In één reservering kunnen meerdere stoelen worden geboekt. De datum van de reservering wordt vastgelegd. Een stoel kan voor een uitvoering natuurlijk maar één keer worden gereserveerd.

  1. Maak een ERD met alle entiteiten, attributen en relaties. Let goed op de sleutel van Stoel.
  2. Zet het ERD om naar een relationeel schema.
  3. Hoe voorkomt jouw ontwerp dat dezelfde stoel voor dezelfde uitvoering twee keer wordt verkocht? Lukt dat volledig met primaire sleutels, of is daar meer voor nodig?

4.3 Werkbon installatiebedrijf

  • Methode: Normalisatie
  • Moeilijkheidsgraad: **

Installatiebedrijf Warmtewerk B.V. gebruikt de volgende werkbon. De monteurs vullen hem na afloop van een klus in en de administratie maakt er de factuur van.

Werkbon

Werkbonnummer: 26-0583
Datum: 14 april 2026
Klantnummer: 3312
Naam: H. Dijkstra
Adres: Lindelaan 8
Postcode: 7201 KA
Plaats: Zutphen

Arbeid

Monteur Naam Uurtarief Uren Bedrag
M07 P. Wolters 62,50 3,0 187,50
M11 S. Kaya 48,00 3,0 144,00

Materiaal

Artikel Omschrijving Prijs Aantal Bedrag
A2210 Thermostaatkraan 34,95 2 69,90
A0418 Radiatorventiel 8,75 4 35,00
A3001 Koperen bocht 15 mm 1,20 6 7,20

Subtotaal: 443,60
Btw 21%: 93,16
Totaal: 536,76

Ga uit van de volgende bedrijfsregels:

  • het uurtarief hangt af van de monteur (een leerling-monteur is goedkoper dan een eerste monteur);
  • op één werkbon kunnen meerdere monteurs en meerdere artikelen voorkomen;
  • de prijs van een artikel is de actuele prijs uit de artikellijst.
  1. Normaliseer de werkbon tot de derde normaalvorm. Laat alle tussenstappen zien.
  2. De werkbon bevat twee herhalende groepen. Waarom is het een fout om die samen in één tabel af te splitsen?
  3. Geldt de functionele afhankelijkheid Postcode → Plaats? Wat betekent je antwoord voor het ontwerp?

4.4 Rijschool

  • Methode: Normalisatie
  • Moeilijkheidsgraad: **

Rijschool Van Dalen plant haar lessen in een Excel-werkblad (Tabel 4.1).

Tabel 4.1: Lesplanning van de rijschool
Datum Tijd LeerlingNr Leerling Pakket Instr Instructeur Kenteken Merk Transmissie
2026-04-06 09:00 L104 Öztürk Basis 20 RB Ruud Bos GX-123-K Volkswagen Polo Handgeschakeld
2026-04-06 10:00 L117 Visser Spoed 10 RB Ruud Bos GX-123-K Volkswagen Polo Handgeschakeld
2026-04-06 09:00 L121 Kramer Basis 20 AD Anouk Dekker HT-456-P Toyota Yaris Automaat
2026-04-07 09:00 L104 Öztürk Basis 20 RB Ruud Bos GX-123-K Volkswagen Polo Handgeschakeld
2026-04-07 11:00 L121 Kramer Basis 20 AD Anouk Dekker HT-456-P Toyota Yaris Automaat

Ga uit van de volgende bedrijfsregels:

  • een les duurt altijd een uur en begint op een heel uur;
  • een leerling volgt één lespakket;
  • elke instructeur rijdt altijd in dezelfde lesauto, en elke auto is van één instructeur.
  1. Het werkblad heeft twee mogelijke sleutels. Welke zijn dat? Leg uit waarom (Datum, Tijd) alleen niet genoeg is.
  2. Normaliseer het werkblad tot de derde normaalvorm. Kies daarbij één van de twee sleutels uit a.
  3. Maakt het voor het eindresultaat uit welke sleutel je bij b hebt gekozen? Licht toe.
  4. Noem voor dit werkblad een voorbeeld van een wijzigings-, een invoeg- en een verwijderanomalie.

4.5 Camping

  • Methode: Vrije keuze
  • Moeilijkheidsgraad: **

Camping De Berkenhoeve verhuurt kampeerplaatsen en chalets. Elke plaats heeft een nummer en is van één type: standaardplaats, comfortplaats (met eigen water en afvoer) of chalet. Van een type worden een code, een omschrijving en de prijs per nacht vastgelegd. Per plaats wordt bovendien bijgehouden of er een stroomaansluiting is.

Van elke gast worden een gastnummer, naam, e-mailadres en land van herkomst geregistreerd. Een gast maakt een reservering met een aankomst- en vertrekdatum en het aantal personen. Families die samen reizen, reserveren vaak meerdere naast elkaar gelegen plaatsen in één reservering.

Bij een reservering kunnen extra’s worden geboekt, zoals fietshuur per dag, een broodjesservice of een hondentoeslag. Van elke extra zijn een code, omschrijving en prijs bekend. Per reservering wordt vastgelegd hoeveel eenheden van een extra zijn geboekt.

Na het boeken ontvangt de gast de volgende bevestiging.

Reserveringsbevestiging

Reserveringsnummer: 4127
Gastnummer: 881
Naam: Fam. Meijer
E-mail: meijer@example.nl
Land: Nederland
Aankomst: 18 juli 2026
Vertrek: 25 juli 2026 (7 nachten)
Aantal personen: 6

Plaats Type Stroom Prijs per nacht Bedrag
14 Comfortplaats ja 32,50 227,50
15 Comfortplaats ja 32,50 227,50
Extra Omschrijving Prijs Aantal Bedrag
E01 Fietshuur per dag 9,00 12 108,00
E04 Hondentoeslag/nacht 3,50 7 24,50

Totaal: 587,50

  1. Maak een ontwerp in de derde normaalvorm, met een ERD en een relationeel schema. Kies zelf of je begint bij de beschrijving of bij de reserveringsbevestiging, en leg uit waarom.
  2. Controleer je ontwerp met de andere methode. Komen de uitkomsten overeen?
  3. In het hoogseizoen is de prijs per nacht hoger dan in het laagseizoen. Hoe pas je het ontwerp aan?

4.6 Detacheringsbureau

  • Methode: Vrije keuze
  • Moeilijkheidsgraad: ***

Detacheringsbureau DataDirect plaatst data-analisten en ontwikkelaars bij klanten. Een klant geeft een opdracht, zoals een datamigratie of het bouwen van een dashboard. Elke opdracht heeft een opdrachtnummer en een omschrijving en is voor één klant. Van een klant zijn een klantnummer en een naam bekend.

Aan een opdracht werken een of meer medewerkers, en een medewerker kan tegelijk aan meerdere opdrachten werken. Van een medewerker worden een personeelsnummer, de naam en de vestiging (Arnhem, Deventer of Zwolle) vastgelegd. Het uurtarief dat de klant betaalt, wordt per opdracht afgesproken voor elke medewerker afzonderlijk: voor een senior wordt binnen dezelfde opdracht meer gerekend dan voor een junior.

Elke week levert een medewerker een weekstaat in met de gewerkte uren per opdracht per dag.

Weekstaat

Personeelsnummer: 207
Naam: S. Achterberg
Vestiging: Arnhem
Week: 15 (6 t/m 10 april 2026)

Opdracht Omschrijving Klant Klantnaam Ma Di Wo Do Vr
O-311 Datamigratie K45 Gemeente Deventer 8 8 4 0 0
O-318 Rapportage BI K12 Van Dam Logistiek 0 0 4 8 8

Totaal uren: 40

  1. Normaliseer de weekstaat tot de derde normaalvorm. Let op: ook de kolommen Ma tot en met Vr vormen samen een herhalende groep.
  2. Het uurtarief staat niet op de weekstaat. Breid je ontwerp uit zodat het tarief kan worden vastgelegd. Welke methode helpt je hier het meest, en waarom?
  3. Teken het volledige ERD.
  4. Het bureau wil maandelijks een factuur per opdracht kunnen maken met het aantal gewerkte uren en het bedrag per medewerker. Laat zien dat dit mogelijk is met jouw ontwerp, zonder dat er bedragen in de database worden opgeslagen.