Informatica (vwo bovenbouw): algoritmiek, databases en security in context
Het domein Informatica (vwo bovenbouw) toetst of je ict-begrippen kunt toepassen in een concrete situatie: een algoritme analyseren, een query schrijven, een beveiligingsontwerp beoordelen of een programma traceren. Het centraal examen vraagt zelden naar losse definities; je moet laten zien waarom een keuze in de gegeven context wel of niet werkt.
Kernregels
- Algoritmiek en programmeren. Een algoritme is eindig, ondubbelzinnig en effectief. Binair zoeken halveert telkens het zoekbereik en is daarom O(log n), maar alleen op een gesorteerde lijst; lineair zoeken is O(n). Let bij Python op bereik en deling:
range(1, 5)loopt tot en met 4, en7/2geeft 3.5 terwijl7//2de integerdeling 3 oplevert. - Databases. Een foreign key verwijst naar de primary key van een andere tabel; referentiële integriteit verbiedt een leerling met een niet-bestaand
klas_id. SQL voer je logisch uit als FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. - Security. Vertrouwelijkheid, integriteit en beschikbaarheid vormen het CIA-model. Symmetrische encryptie (AES) gebruikt één sleutel en is snel; asymmetrisch (RSA) werkt met een sleutelpaar maar is traag, dus in de praktijk hybride: RSA wisselt een AES-sessiesleutel uit. Hashen (SHA-256) is eenrichtingsverkeer en dus geen encryptie; een salt maakt rainbow tables nutteloos.
Uitgewerkt voorbeeld
SELECT k.naam, COUNT(*) FROM Leerling l JOIN Klas k ON l.klas_id = k.id WHERE l.leeftijd >= 16 GROUP BY k.naam HAVING COUNT(*) > 20
Redenering: de JOIN koppelt elke leerling via de foreign key aan de juiste klas. WHERE verwijdert eerst de leerlingen onder 16 - dat gebeurt dus vóór het groeperen. GROUP BY maakt één groep per klasnaam en COUNT(*) telt de overgebleven rijen per groep. HAVING filtert daarna de groepen; WHERE mag hier niet, omdat COUNT pas na groepering bekend is.
Valkuilen
- WHERE filtert rijen vóór groepering, HAVING groepen erna; omgekeerd gebruiken geeft een fout aantal.
- NULL vergelijk je met
IS NULL, nooit met= NULL: de uitkomst is onbekend en de rij valt weg. - Een hash kun je niet ontsleutelen; hash wachtwoorden, versleutel gegevens die je terug moet kunnen lezen.
- Zet de voorwaarde bij een LEFT JOIN in ON en niet in WHERE, anders wordt het weer een inner join.