Ga naar de hoofdinhoud

Special topics

Sebastiaan Henau28-01-2026Ongeveer 3 minuten

Special topics

Hieronder vind je een opgave op recursieve koppelingen. Bouw voor opgave een volledig model uit. Inclusief multipliciteiten, relatiebeschrijvingen, datatypes en specificaties.

Opgave 1: Recursieve relaties in een school

De personeelsdienst van een school wil graag de administratie digitaliseren van het personeel. Je hebt verschillende functies en een personeelslid kan verschillende functies uitvoeren:

  • Algemeen directeur (algemene overste)
  • Campus Directeur (overste van het secretariaat van de campus)
  • Technisch Adviseur Coördinator (overste van het technisch personeel en het poetspersoneel)
  • Coördinatoren
  • Leerkrachten
  • ICT-team
  • Boekhouding
  • Technische ploeg en poetspersoneel

Van een personeelslid worden verschillende gegevens bijgehouden: personeelsnummer, naam, voornaam, adres, huisnummer, postcode en gemeente, loon, geboortedatum, bankrekeningnummer burgerlijke staat, namen en geboortedatum van de kinderen. In een gemeente kunnen verschillende personeelsleden verblijven.

Getrouwde personeelsleden kunnen beiden tewerkgesteld zijn op school. Kinderen van personeelsleden kunnen tewerkgesteld zijn op school en zijn op dat moment niet meer ten laste en kunnen verwijderd worden bij het record van het personeelslid.

Opgave 2: Recursieve relaties

Een bedrijf wil gegevens bijhouden over zijn werknemers en zijn afdelingen. Zij richten ook regelmatig workshops in die gevolgd worden door de werknemers. Hierover willen zij ook de nodige gegevens bijhouden.

Werknemers hebben NAW-gegevens. Workshops hebben een unieke naam, beschrijving en een duur. Afdelingen hebben een unieke code, een omschrijving en eventueel een afdeling waar ze deel van uitmaken.

Een werknemer maakt slechts deel uit van één afdeling. Een afdeling stelt meerdere werknemers te werk. Een werknemer kan manager zijn van meerdere afdelingen (ter info: hij maakt dan deel uit van een hogere afdeling niet van de afdelingen waar hij manager van is). Een afdeling heeft slechts één manager. Een werknemer kan meerdere workshops volgen. We willen bijhouden wie welke workshop heeft gevolgd en wanneer ze deze workshops gevolgd hebben.

Voor bepaalde workshops gelden ‘volgtijdelijkheidsregels’. Dit betekent dat een bepaalde workshop niet mag gevolgd worden tenzij men voorafgaandelijk een of meerdere andere workshops heeft gevolgd. Anderzijds is het ook mogelijk dat één workshop eerst gevolgd moet worden vooraleer men meerdere andere workshops kan gaan volgen.

Workshops kunnen intern georganiseerd worden, in dit geval worden de workshops door één of meer personen binnen het bedrijf gegeven. Indien er binnen het bedrijf niet genoeg expertise is om een workshops te organiseren kan er ook voor gekozen worden om een derde partij in te schakelen. In dat geval is het mogelijk dat de workshop een vergoeding betaald aan de derde partij, dit bedrag moet natuurlijk ook bewaard worden. Deze situatie is echter zeer uitzonderlijke, meestal organiseert het bedrijf de workshops volledig zelf.

Een workshop kan verschillende keren ingeroosterd worden en op deze verschillende momenten door verschillende personen gegeven worden. Bijvoorbeeld de eerste keer door een derde partij en alle daaropvolgende keren door werknemers die deze workshop de eerste keer gevolgd hebben.

Opgave 3: Recursie & overerving

Je wordt gevraagd een database uit te werken voor het productbeheer van een webshop (je hoeft dus geen order/orderlijn) entiteiten te bouwen. De webshop verkoopt een heel breed gamma aan producten. Voor elk product moeten er minstens het volgende bewaard worden:

  • Product nummer
  • Wanneer er nieuwe stock aangekocht is voor een bepaald product
  • Vanaf hoeveel resterende stock er nieuwe stock aangekocht moet worden
  • Welke plus- en minpunten aan een product gekoppeld zijn
  • Welke reviews er geplaatst zijn voor welke producten, welke klant deze review geplaatst heeft, en of deze review geverifieerd is (product al dan niet aangekocht bij de webshop). Als een klant zijn account verwijderd, moet de review blijven bestaan, maar mag deze niet meer gekoppeld zijn aan een bepaalde klant.
  • Aan een product zijn eventueel één of meerdere accessoires gekoppeld, bijvoorbeeld muizen die aangeraden worden voor een laptop, of anti-kalk tabletten voor een vaatwasser. Als een product verwijderd wordt, moet alle accessoire informatie over dat product verwijderd worden.
  • De levertermijn in dagen.
  • Welke prijs het product momenteel heeft, en welke prijs het product in het verleden gehad heeft.
  • Of het product nog beschikbaar is (nog gefabriceerd of end-of-life).

De producten worden opgedeeld in verschillende categorieën, zo is er bijvoorbeeld een categorie elektronica, tuingereedschap en meubilair. Elk van deze categorieën wordt onderverdeeld in één of meerdere andere categorieën.

Zo bevat de categorie “elektronica” bijvoorbeeld een subcategorie “Computers”, “Smartphones”, “Beeld”, en “Geluid”. De categorie “Computers” is onderverdeeld in “Desktops” en “Laptops”. Elk product erft alle eigenschappen over van de bovenliggende categorie. Maar voegt daar ook nog enkele eigenschappen aan toe. Zo wordt er voor elke computer natuurlijk bewaard welke CPU gebruikt wordt, wat de hoeveelheid RAM is, hoeveel RAM sloten er zijn en hoeveel er in gebruik zijn, de opslagruimte, 
 Een laptop neemt dan alle eigenschappen over, maar voegt daar batterijcapaciteit, schermdiagonaal, paneeltype, touchscreen, 
 aan toe.

Voor elk attribuut wordt een verklaring bewaard, zo kunnen gebruikers geĂŻnformeerd worden over de verschillen tussen de mogelijke opties.