Wat is databasenormalisatie?
Databasenormalisatie wordt gebruikt in een databasebeheersysteem (DBMS), met name bij relationele databases, om overbodige informatie te verminderen en daarom gegevensafwijkingen te minimaliseren. Anomalieën kunnen voorkomen bij informatie die slecht gegroepeerd of overbodig is en kan een reeks effecten veroorzaken, zoals het onjuist invoegen van gegevens of het verwijderen van een hele groep gegevens. Door databasenormalisatie te gebruiken, worden deze afwijkingen vermeden en wordt het geheugen typisch vrijgemaakt zodat de database efficiënter kan functioneren. Normalisatiefuncties moeten periodiek worden gebruikt, ongeveer een keer per week, om de database fris en vrij van onverwachte problemen te houden.
Niemand maakt een relationele database met opzet met redundante gegevens, maar dit gebeurt meestal ondanks de beste inspanningen van de databaseontwerper. Met een werknemersdatabase kan een werknemer bijvoorbeeld in verschillende tabellen worden vermeld. Wanneer op grote schaal redundantie optreedt, ontstaan afwijkingen. Databasebeheerders kunnen meestal niet alle overbodige gegevens verzamelen, dus normalisatie van de database is de beste manier om dit probleem te verhelpen.
De eerste taak van database-normalisatie is het herhalen of verplaatsen van informatie. Als de informatie niet nodig is, wordt deze uit de database verwijderd. Voor gegevens die nodig zijn in andere tabellen, streeft normalisatie naar betere relationele tabellen. Normalisatiefuncties splitsen grote tabellen, corrigeren en verbeteren de relaties tussen de gegevens en isoleren informatie om gegevenswijziging in de database te vergemakkelijken. Door herhalende gegevens af te trekken, wordt geheugen meestal vrijgemaakt, waardoor de database soepeler en sneller kan worden uitgevoerd.
Anomalieën ontstaan door het weigeren of vergeten om de database te normaliseren, en ze kunnen de informatie onbruikbaar maken. Een update-afwijking is wanneer iemand de gegevens bijwerkt, maar in plaats van de beoogde gegevens te wijzigen, maakt de database een nieuw record dat zeer overbodig is. Met een invoeganomalie wordt een record toegevoegd aan de database, maar er kan niets worden toegevoegd onder het nieuwe record. Verwijderingsanomalieën zullen willekeurig een record verwijderen. Dit zijn slechts enkele veel voorkomende afwijkingen die optreden als de database niet is genormaliseerd.
Er is geen vaste standaard die een beheerder vertelt wanneer hij of zij normalisatiefuncties moet gebruiken om de efficiëntie van de database te waarborgen. Het is meestal het beste om de database-normalisatie ongeveer een keer per week te plannen, omdat hierdoor alle nieuwe informatie die gedurende de week wordt toegevoegd, geen afwijkingen vertoont. Kleinere databases kunnen waarschijnlijk eenmaal per maand worden genormaliseerd, en zeer grote databases moeten twee keer per week worden gedaan, omdat grotere hoeveelheden gegevens een grotere kans op anomalieën met zich meebrengen. Er is echter geen standaard, dus de databasebeheerder kiest meestal een schema dat volgens hem het beste is voor de database.