Wanneer we het over data hebben, zijn er drie niveaus: data, informatie en kennis.
16. Maar 16 wat? Zonder context is het niets meer dan een getal.Als software developer werk je vooral met data en informatie. Je programmeert de kennis van anderen: de bankier vertelt jou dat de rente 2,1% is, en jij bouwt de berekening.
Een winkel verkoopt een product voor €49,99. Op welk niveau zit "49,99"?
"Dit product kost €49,99 en is daarmee duurder dan het gemiddelde, dus we verlagen de prijs." Op welk van de drie niveaus zit deze uitspraak?
"De rente op onze spaarrekening is 2,1% per jaar." Op welk niveau zit deze uitspraak?
Om data gestructureerd op te slaan, gebruiken we drie begrippen:
Stel je een Excelsheet voor:
In een studentenadministratie staat bovenaan de kolom "e-mail". Wat is "e-mail" in dit geval?
In diezelfde administratie staat in een cel "p.sharma@stud.nl". Wat is dit?
De hele rij van Priya Sharma -- met haar naam, studentnummer, geboortedatum en e-mail samen -- is een...?
Net als in een programmeertaal hebben waardes in een database een type. In MariaDB zijn de meest gebruikte:
Getallen:
INT -- gehele getallen (zoals ID's of tellers)DECIMAL(m, d) -- exacte kommagetallen (m = totaal aantal cijfers, d = cijfers achter de komma). Essentieel voor geldbedragen.Tekst:
VARCHAR(m) -- tekst met een maximale lengte (m = max. aantal tekens). Voor namen, e-mailadressen, etc.TEXT -- voor lange teksten zoals blogartikelenCHAR(m) -- tekst met een vaste lengte (sneller dan VARCHAR). Voor landcodes (NL, BE), etc.Datum & Tijd:
DATE -- alleen de dag (YYYY-MM-DD)DATETIME -- dag én tijdstipTIMESTAMP -- handig voor 'aangemaakt op'-velden, past zich aan de tijdzone aanJe bouwt een webshop en moet e-mailadressen opslaan (maximaal 100 tekens). Welk datatype kies je?
Je slaat productprijzen op tot maximaal €999,99. Welk datatype kies je en met welke parameters?
Je wilt geboortedatums opslaan, zonder tijdstip. Welk datatype kies je?
Je slaat landcodes op die altijd precies 2 letters lang zijn (NL, BE, DE). Welk datatype is hier het meest geschikt?
Een data dictionary beschrijft de structuur van je tabel: welke attributen er zijn, hun datatype, regels (constraints) en eventueel een beschrijving en voorbeeld.
Veelvoorkomende regels:
In je gebruikerstabel moet iedereen een e-mailadres hebben en geen twee gebruikers mogen hetzelfde e-mailadres hebben. Welke twee regels (constraints) horen hierbij?
Het veld id in je tabel moet automatisch een nieuw nummer krijgen bij elke nieuwe rij, mag nooit leeg zijn, en moet altijd uniek zijn. Welke constraints/eigenschappen horen hierbij?