Inhoudsopgave:
Definitie - Wat betekent Second Normal Form (2NF)?
Tweede normale vorm (2NF) is de tweede stap bij het normaliseren van een database. 2NF bouwt voort op de eerste normale vorm (1NF).
Normalisatie is het proces waarbij gegevens in een database worden georganiseerd, zodat deze aan twee basisvereisten voldoet:
- Er is geen redundantie van gegevens (alle gegevens worden op slechts één plaats opgeslagen).
- Gegevensafhankelijkheid is logisch (alle gerelateerde gegevensitems worden samen opgeslagen).
Een 1NF-tabel heeft de vorm 2NF als en alleen als alle niet-primaire attributen functioneel afhankelijk zijn van het geheel van elke kandidaatsleutel.
Techopedia verklaart Second Normal Form (2NF)
Nadat aan de vereisten van 1NF is voldaan, vereist 2NF dat de databaseontwerper het volgende doet:
- Splits alle gegevens op in een veel-op-veel-relatie en sla de gegevens op als afzonderlijke tabellen. In een database die bijvoorbeeld door een schooltoepassing wordt gebruikt, zijn twee van de tabellen STUDENT en SUBJECT. In het echte leven neemt een student meerdere vakken tegelijkertijd, terwijl een onderwerp door meerdere studenten wordt bestudeerd. Dit zijn veel-op-veel-relaties. 2NF stelt dat deze relatie moet worden opgesplitst in meer dan de twee bovenstaande tabellen (STUDENT en SUBJECT). Een manier om ze te splitsen is door een derde tabel te introduceren, die de kolommen Student_ID, Subject_ID, Semester en Year bevat. Op deze manier is er geen directe relatie tussen STUDENT en SUBJECT omdat alle relaties indirect via de derde tabel worden gecreëerd.
- Maak relaties tussen tabellen met behulp van buitenlandse sleutels. De database van een bank bevat bijvoorbeeld twee tabellen: CUSTOMER_MASTER (voor het opslaan van klantgegevens) en ACCOUNT_MASTER (voor het opslaan van details over bankrekeningen, inclusief welke klant welke account heeft). Er moet een manier zijn om de twee tabellen te koppelen om te weten wie de klant is voor elk account. De manier om dit te doen is via een externe sleutel, een kolom in de tabel ACCOUNT_MASTER die naar een overeenkomstige kolom in de tabel CUSTOMER_MASTER verwijst.
Een tabel waarvoor er geen gedeeltelijke functionele afhankelijkheden zijn van de primaire sleutel, kan al dan niet in 2NF zijn. Naast de primaire sleutel kan de tabel andere kandidaatsleutels bevatten; het is noodzakelijk om vast te stellen dat geen niet-prime attributen afhankelijk zijn van een deel van de sleutel van een van deze kandidaatsleutels.







