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 te identificeren is, noemen we de unieke 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 de extra kolom 'absentie'.

 

Als je de tabel bekijkt, dan zie je 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, is er sprake van redundantie. In sommige gevallen kan redundantie nuttig of noodzakelijk zijn, maar over het algemeen kleven er 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 dit geval dan 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, komt er tegenstrijdige informatie in de database te staan. We spreken dan van inconsistentie. Het gevaar van redundantie is dat deze kan leiden tot inconsistentie

Een ander probleem is dat er dan 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 gebeurd is, kun je met een paar handelingen de informatie die erin zit goed 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 programmeertaal.