Als je al een tijdje met databases werkt, is de kans groot dat je de term normalisatie hebt gehoord. Misschien heeft iemand je gevraagd "Is die database genormaliseerd?" of "Is dat in BCNF?" Normalisatie wordt vaak terzijde geschoven als een luxe waar alleen academici tijd voor hebben. De principes van normalisatie kennen en toepassen op uw dagelijkse databaseontwerptaken is echter niet zo ingewikkeld en het zou de prestaties van uw DBMS drastisch kunnen verbeteren.
In dit artikel zullen we het concept van normalisatie introduceren en een korte blik werpen op de meest voorkomende normale vormen.
Wat is normalisatie?
Normalisatie is het proces waarbij gegevens efficiënt worden georganiseerd in een database. Er zijn twee doelen van het normalisatieproces: overbodige gegevens verwijderen (bijvoorbeeld dezelfde gegevens opslaan in meer dan één tabel) en ervoor zorgen dat gegevensafhankelijkheden zinvol zijn (alleen het opslaan van gerelateerde gegevens in een tabel). Beide zijn waardevolle doelen omdat ze de hoeveelheid ruimte die een database verbruikt verminderen en ervoor zorgen dat gegevens logisch worden opgeslagen.
De normale vormen
De databasecommunity heeft een reeks richtlijnen ontwikkeld om ervoor te zorgen dat databases worden genormaliseerd. Deze worden normale vormen genoemd en zijn genummerd van één (de laagste vorm van normalisatie, waarnaar wordt verwezen als eerste normale vorm of 1NF) tot vijf (vijfde normale vorm of 5NF). In praktische toepassingen ziet u vaak 1NF, 2NF en 3NF samen met af en toe een 4NF. De vijfde normale vorm wordt zeer zelden gezien en zal niet in dit artikel worden besproken.
Voordat we beginnen met onze bespreking van de normale vormen, is het belangrijk erop te wijzen dat het alleen richtlijnen en richtlijnen zijn. Af en toe wordt het noodzakelijk om van hen af te wijken om aan praktische zakelijke vereisten te voldoen. Wanneer er echter variaties plaatsvinden, is het uiterst belangrijk om mogelijke vertakkingen op uw systeem te evalueren en rekening te houden met mogelijke inconsistenties. Dat gezegd hebbende, laten we de normale vormen verkennen.
Eerste normale vorm (1NF)
De eerste normale vorm (1NF) stelt de basisregels in voor een georganiseerde database:
- Elimineer duplicatieve kolommen uit dezelfde tabel.
- Maak afzonderlijke tabellen voor elke groep verwante gegevens en identificeer elke rij met een unieke kolom of reeks kolommen (de primaire sleutel).
Tweede normale vorm (2NF)
De tweede normale vorm (2NF) gaat verder in op het concept van het verwijderen van duplicatieve gegevens:
- Voldoe aan alle vereisten van het eerste normale formulier.
- Verwijder subsets van gegevens die van toepassing zijn op meerdere rijen van een tabel en plaats ze in afzonderlijke tabellen.
- Maak relaties tussen deze nieuwe tabellen en hun voorgangers door het gebruik van externe sleutels.
Derde normale vorm (3NF)
Derde normale vorm (3NF) gaat nog een grote stap verder:
- Voldoe aan alle vereisten van het tweede normale formulier.
- Kolommen verwijderen die niet afhankelijk zijn van de primaire sleutel.
Boyce-Codd Normale vorm (BCNF of 3.5NF)
De Boyce-Codd Normale vorm, ook wel de "derde en halve (3.5) normale vorm" genoemd, voegt nog een vereiste toe:
- Voldoe aan alle vereisten van het derde normale formulier.
- Elke determinant moet een kandidaat-sleutel zijn.
Vierde normale vorm (4NF)
Ten slotte heeft de vierde normaalvorm (4NF) nog een aanvullende eis:
- Voldoe aan alle vereisten van het derde normale formulier.
- Een relatie bevindt zich in 4NF als het geen meerwaardige afhankelijkheden heeft.
Vergeet niet dat deze normalisatierichtlijnen cumulatief zijn. Voor een database die zich in 2NF bevindt, moet deze eerst voldoen aan alle criteria van een 1NF-database.
Moet ik Normaliseren?
Hoewel normalisatie van databases vaak een goed idee is, is dit geen absolute vereiste. In feite zijn er enkele gevallen waarin het opzettelijk schenden van de regels voor normalisatie een goede gewoonte is. Lees voor meer informatie over dit onderwerp Moet ik mijn database normaliseren?
Als u er zeker van wilt zijn dat uw database genormaliseerd is, begin dan met het leren om uw database in First Normal Form te plaatsen.




