Voorwoord¶
Databases zijn zo oud als het schrift: het schrift is ontwikkeld uit de eerste pogingen om bedrijfsdata vast te leggen: voorraden, transacties e.d. In de eeuwen daarna is het voor bedrijven en andere organisaties altijd belangrijk geweest om gegevens over hun processen vast te leggen - om deze op een ander moment, mogelijk in een ander proces, te kunnen gebruiken. Daarnaast legt de wetenschap al eeuwenlang gegevens vast in tabellen, bijvoorbeeld om daarin patronen en wetmatigheden te ontdekken. Ook individuen hebben vaak hun persoonlijke “databases”, in de vorm van adresboekjes en huishoudboekjes.
Deze administraties zijn nu voor historici een belangrijke bron: ze geven vaak een beter inzicht in het leven in die tijd dan de verslagen van oorlogen e.d.
Met de komst van de computer zijn de mogelijkheden van databases enorm toegenomen. Enerzijds hebben we te maken met een “explosie” aan data, bijvoorbeeld door alle sporen die mensen via hun gebruik van het web achterlaten, of door alle Internet-of-Things-sensoren. Anderzijds hebben we steeds meer mogelijheden om deze data te analyseren, en hier patronen en wetmatigheden in te vinden. Tussen deze data-productie en data-analyse vinden we databases, in allerlei soorten en maten.
In steeds meer beroepen heb je te maken met “big data” en Data Science. Kennis van databases komt daarbij goed van pas: je moet weten hoe je grote hoeveelheden data handig kunt vastleggen, en je moet weten hoe je data kunt raadplegen.
De eisen die aan databases gesteld worden verschillen sterk: voor een bedrijfsadministratie, een bank of de belastingdienst is consistentie van de data op elk moment van groot belang, ook als dat enigszins ten koste gaat van de snelheid. Voor het analyseren van grote hoeveelheden data (Data Science) is juist deze snelheid belangrijk, en is een wat zwakkere vorm van consistentie acceptabel. Er is niet één database-technologie die voor alle toepassingen de meest handige is.
In dit materiaal ligt de nadruk op de “klassieke” relationele (SQL) databases. Als je iets over databases wilt leren, begin je daarmee. Daarnaast geven we een voorbeeld van een document-database, als NoSQL-alternatief.
Organisatie van het materiaal¶
Het materiaal bestaat uit:
een inleiding (dit document) in de onderwerpen van het database-thema: (i) SQL; (ii) database-ontwerp; (iii) NoSQL en Linked Data
SQL - als querytaal voor relationele databases;
Database-ontwerp - van analyse tot Entity-Relationship-model;
De links hierboven verwijzen naar het materiaal voor het betreffende onderdeel.
De gesuggereerde aanpak voor dit thema is:
inleiding (ca. 2 weken, 10 SLU)
keuze uit SQL/DB-ontwerp/NoSQL en Linked data (6 weken, 30 SLU)
toepassen van DB-kennis in een project (20 SLU), zo mogelijk gecombineerd met andere thema’s.
Hoe kies je? Als je begint met databases, bijvoorbeeld omdat dit in het basismateriaal nog niet aan bod geweest is, kies dan voor SQL.
Database-ontwerp is een uitdagend onderwerp, en een oefening in conceptueel modelleren die ook buiten de context van databases zinvol is.
NoSQL en Linked Data is wat praktischer gericht, maar wel “anders” dan de klassieke SQL-benadering.
Over het project. Veel praktische projecten hebben een database-component, maar daarnaast ook veel andere aspecten - zoals interactie met gebruikers, web-technologie of internet of things, Een dergelijke multi-thema/multi-disciplinair project is bij uitstek geschikt om als leerlingen met verschillende achtergronden en interesses in samen te werken.