Data Technologies – Projectcases

Versie: 1.0, 2 februari 2026

1. Doel en randvoorwaarden

Binnen dit project werken studenten in teamverband aan een werkende applicatie waarin verschillende database‑technologieën aantoonbaar en onderbouwd worden toegepast. De applicatie is het middel; de focus ligt op datamodellering, databasekeuzes, query’s, optimalisatie, beveiliging en documentatie.

Randvoorwaarden

  • Applicatie verplicht: er moet een werkende applicatie worden opgeleverd die de gekozen databases gebruikt.
  • Vrije technologiekeuze:
    • Programmeertaal, libraries en frameworks zijn vrij te kiezen.
    • ORM’s zijn niet toegestaan; database‑interactie moet zichtbaar zijn via expliciete query’s.
  • Projectmethodiek:
    • Teams werken volgens Scrum of Kanban.
    • Een product backlog met user stories wordt in de eerste fase door het team zelf opgesteld en onderhouden.
  • Teamgrootte: maximaal 4 studenten.
  • Databasetechnieken: alle in de cursus behandelde database‑technieken moeten aantoonbaar aan bod komen:
    • Relationele database (SQL)
    • Geavanceerde SQL (o.a. views, CTE’s, aggregaties)
    • Normalisatie & database design
    • Database‑optimalisatie (indexen, query‑analyse)
    • NoSQL (document store)
    • Key‑value database (caching)
    • Graph database
    • Database‑beveiliging en privacy

Opmerking over ontwerpvolgorde

In de professionele praktijk wordt een applicatie vaak gestart met een volledig uitgewerkt datamodel. In dit project is het databaseontwerp bewust iteratief.

In de eerste weken stellen teams een globaal conceptueel datamodel op, gebaseerd op hun initiële analyse en user stories. Dit model is nadrukkelijk niet definitief. Naarmate in de workshops meer kennis wordt opgedaan over database design, normalisatie en optimalisatie, wordt het datamodel herzien, verfijnd en onderbouwd.

Het kunnen bijstellen en verantwoorden van ontwerpkeuzes op basis van voortschrijdend inzicht is een expliciet onderdeel van dit project en wordt meegenomen in de beoordeling.

Toelichting bij uitbreidingen (richtinggevend)

De genoemde uitbreidingen bij de cases zijn richtinggevend. Ze geven voorbeelden van mogelijke verdieping van de functionaliteit, maar zijn niet verplicht en niet uitputtend. Studenten zijn vrij om deze uitbreidingen geheel of gedeeltelijk toe te passen, of andere uitbreidingen te kiezen, mits de gemaakte keuzes inhoudelijk worden onderbouwd en passen binnen de randvoorwaarden van de cursus.


2. Case 1 – Online Webshop

Context

Je ontwikkelt een online webshop waarin gebruikers producten kunnen bekijken en bestellen. De webshop dient als experimenteeromgeving om verschillende database‑technologieën te onderzoeken en te integreren.

Kernfunctionaliteiten

  • Gebruikers kunnen een account aanmaken en inloggen
  • Producten kunnen worden bekeken, gefilterd en gezocht
  • Producten kunnen aan een winkelwagen worden toegevoegd
  • Bestellingen kunnen worden geplaatst en ingezien

Uitbreidingen (richtinggevend)

  • Productreviews en beoordelingen
  • Overzichten zoals top‑verkopen of omzet per periode
  • Aanbevelingen (bijv. “klanten kochten ook”)
  • Caching van veel geraadpleegde productoverzichten

3. Case 2 – Intranet CMS met Forum

Context

Je ontwikkelt een Content Management Systeem (CMS) voor een intranetomgeving. Medewerkers plaatsen content en gaan met elkaar in discussie via reacties en een forum.

Kernfunctionaliteiten

  • Contentbeheerders kunnen artikelen aanmaken, wijzigen en publiceren
  • Lezers kunnen artikelen bekijken
  • Lezers kunnen reacties plaatsen onder artikelen
  • Forumfunctionaliteit met onderwerpen en discussies
  • Zoekfunctionaliteit over artikelen en discussies

Uitbreidingen (richtinggevend)

  • Versiebeheer van artikelen
  • Moderatie van reacties en forumberichten
  • Overzichten van populaire artikelen of actieve discussies
  • Aanbevelingen op basis van interesse of leesgedrag

4. Planning en deliverables per week (18 weken)

Week 1 – Kick‑off & analyse

  • Teams vormen en case kiezen
  • Casus analyseren
  • Eerste product backlog met user stories
  • Globaal conceptueel datamodel (eerste schets)

Deliverable: initiële product backlog + globale ERD (conceptueel)


Week 2 – Relationele databases & basis SQL

  • Identificeren kernentiteiten
  • Eerste SQL‑schema (DDL)
  • Basis CRUD‑query’s

Deliverable: SQL‑schema v1 + seed data


Week 3 – Geavanceerde SQL

  • JOINs, aggregaties
  • Toepassen van view, CTE of window function

Deliverable: query‑portfolio v1


Week 4 – Database design

  • Herzien en uitwerken van het datamodel
  • Conceptueel → logisch → fysiek ontwerp
  • Constraints (PK, FK, UNIQUE)

Deliverable: uitgewerkte ERD (definitieve versie) + toelichting


Week 5 – Normalisatie

  • Normaliseren tot minimaal 3NF
  • Motiveren van ontwerpkeuzes

Deliverable: genormaliseerd schema + uitleg


Week 6 – Database‑optimalisatie

  • Indexen toevoegen
  • Query‑analyse met EXPLAIN

Deliverable: query‑portfolio v2 + performance‑analyse


Week 7 – Tentamenfase

  • Schriftelijke toets
  • Stabiliseren relationele database

Week 8 – NoSQL databases (introductie)

  • Analyse geschikte data voor NoSQL
  • Ontwerp documentmodel

Deliverable: NoSQL‑datamodel + motivatie


Week 9 – NoSQL toepassen & Herkansing tentamen

  • Implementatie NoSQL
  • Voorbeeldquery’s

Deliverable: werkende NoSQL‑integratie


Week 10 – Key‑value databases

  • Bepalen cache‑use‑case
  • Ontwerp key‑structuur

Week 11 – Key‑value toepassen

  • Implementatie caching
  • Cache‑invalidering beschrijven

Deliverable: werkende cache + motivatie


Week 12 – Graph databases

  • Ontwerp graafmodel
  • Keuze aanbevelingslogica

Week 13 – Graph toepassen & tussentijdse presentatie

  • Implementatie graph database
  • Cypher‑query’s

Deliverable: tussentijdse presentatie


Week 14 – Database security & privacy

  • Rollen en rechten
  • Privacymaatregelen

Deliverable: security‑ en privacy‑sectie (technisch rapport)


Week 15–16 – Integratie & documentatie

  • Integratie alle databases
  • Afronden rapportages

Week 17 – Afronding

  • Final checks
  • Opleveren alle artefacten

Week 18 – Demo day

  • Eindpresentatie en demonstratie


This site uses Just the Docs, a documentation theme for Jekyll.