Indholdsfortegnelse:
Definition - Hvad betyder tredje normal form (3NF)?
Tredje normal form (3NF) er det tredje trin i normalisering af en database, og den bygger på den første og anden normale form, 1NF og 2NF.
3NF anfører, at al kolonnehenvisning i refererede data, der ikke er afhængig af den primære nøgle, skal fjernes. En anden måde at sætte dette på er at kun fremmede nøglekolonner skal bruges til at henvise til en anden tabel, og ingen andre kolonner fra den overordnede tabel skal findes i den refererede tabel.
Techopedia forklarer Third Normal Form (3NF)
Overvej en banks database, der indeholder to tabeller: CUSTOMER_MASTER til lagring af kundedetaljer, og ACCOUNT_MASTER til lagring af detaljer om bankkonti, herunder hvilken kunde, der har hvilken konto. I dette tilfælde skal der være en måde at forbinde de to tabeller for at binde en konto til den kunde, der ejer den. Måden at gøre dette på er via en fremmed nøgle. Dette er en kolonne i ACCOUNT_MASTER-tabellen, der peger på eller henviser til en tilsvarende kolonne (kaldet den primære nøgle) i CUSTOMER_MASTER overordnede tabel. Lad os kalde denne kolonne CustID.
Antag, at kunden Andrew Smith opretter en konto i CUSTOMER_MASTER-tabellen med CustID 20454. Mr. Smith har en sparekonto med nummeret S-200802-005, hvis detaljer er gemt i ACCOUNT_MASTER-tabellen. Dette betyder, at ACCOUNT_MASTER-tabellen har en kolonne kaldet CustID, som ikke er et originalt stykke data. I stedet har den også værdien 20454, der ganske enkelt refererer til den samme CustID i tabellen CUSTOMER_MASTER.
Nu dikterer 3NF, at i vores ACCOUNT_MASTER-tabel skal den eneste information, vi har om kunden, være CustID (20454) som en fremmed nøgle, og den henviser til og identificerer kunden, der ejer denne samme CustID i CUSTOMER_MASTER-tabellen (Andrew Smith ). Ingen andre data om vores kunde (som navn, fødselsdato, køn og så videre) skal opbevares i ACCOUNT_MASTER-tabellen eller faktisk en anden tabel, fordi alle disse data om ham allerede er gemt i CUSTOMER_MASTER. Ved at gøre dette er de eneste kundedata, der er gemt uden for CUSTOMER_MASTER-tabellen, CustID. Dette betaler pænt udbytte ved at sikre, at der ikke er nogen datatuplikation, hvilket igen gør, at forespørgsler køres meget mere effektivt og reducerer den krævede lagerplads.
