## Administratiesysteem

In de schooladministratie wordt gebruik gemaakt van een administratienummer om een leerling uniek te kunnen identificeren. Een kolom of een combinatie van kolommen op basis waarvan een rij uit een tabel uniek te identificeren is, noemen we een sleutel. In een schooladministratiesysteem kunnen veel gegevens bijgehouden worden. Stel dat de schoolleiding wil bijhouden wanneer een leerling absent is. Hiervoor zou de tabel uitgebreid kunnen worden met een extra kolom 'absentie'.

Als je de tabel bekijkt, dan zie je al dat dit niet de ideale oplossing is. Om alle absenties te kunnen vastleggen zijn in deze tabel dezelfde gegevens meerdere keren opgenomen. Wanneer dezelfde informatie vaker in een tabel is opgenomen dan is er sprake van redundantie. In sommige gevallen kan redundantie nuttig of noodzakelijk zijn, maar over het algemeen kleven er een aantal nadelen en gevaren aan.
Stel dat Robert-Jan Velthausz verhuist naar de Kennedylaan 245. Op de administratie moet het adres aangepast worden. In de tabel komt het adres van Robert-Jan meerdere malen voor. Het adres moet in zijn geval op drie plaatsen gewijzigd worden. Dat is niet alleen onhandig, maar er schuilt ook het gevaar in dat het op één plaats vergeten wordt.
Wanneer dat gebeurt, staat er tegenstrijdige informatie in de database. We spreken in dat geval van inconsistentie. Een gevaar van redundantie is dat deze kan leiden tot inconsistentie
Een ander probleem is dat er een nieuwe sleutel gezocht moet worden. Het 'admnr' kan geen sleutel meer zijn, omdat er meerdere rijen in de tabel met hetzelfde administratienummer voorkomen. Een goede sleutel is in dit geval de combinatie 'admnr' en 'absentie'.
Het is mogelijk het ontwerp aan te passen zodat redundantie verdwijnt en deze vorm van inconsistentie onmogelijk wordt. De oplossing ligt in het maken van twee tabellen.

Bij het ontwerpen van een relationele database is het belangrijk om goed na te denken over de samenstelling van de tabellen. Wanneer dit eenmaal goed gebeurd is, kun je met een paar handelingen de informatie die erin zit tevoorschijn halen.

Niet alleen kun je met behulp van deze twee tabellen een lijst samenstellen met de namen van de leerlingen die absent zijn geweest, maar je kunt ook vragen beantwoorden als: In welke klas is nog nooit iemand absent geweest? of Uit welke plaatsen komen de absenten?
Om met een relationele database te kunnen werken, heb je een database management system nodig. De populaire DBMS-programma's bevatten als kern allemaal dezelfde vraagtaal: SQL. In deze module maken we kennis met deze taal.