First Normal Form (1NF) eliminerer ikke redundans, men det er snarere, at det eliminerer gentagne grupper. I stedet for at have flere kolonner af samme slags data i en post (0NF eller Unnormalized form) fjerner du den gentagne information i en separat relation og repræsenterer dem som rækker. Det er det, der udgør 1NF.
Anden Normalform
Den anden normalform (2NF) er baseret på konceptet om fuldt funktionel afhængighed. Den anden Normalform gælder for relationer med sammensatte nøgler, det vil sige relationer med en primærnøgle sammensat af to eller flere attributter. En relation med en enkelt-attribut primær nøgle er automatisk i mindst 2NF. En relation, der ikke er i 2NF, kan lide af opdaterings-anomalierne. For at være i den anden normalform skal en relation være i den første normalform, og relationen må ikke indeholde nogen delvis afhængighed. En relation er i 2NF, hvis den ikke har nogen partiel afhængighed, dvs. ingen ikke-primær attribut (attributter, der ikke er en del af en kandidatnøgle) er afhængig af en korrekt delmængde af enhver kandidatnøgle i tabellen. Med andre ord,
En relation, der er i First Normal Form og hver ikke-primær-nøgle attribut er fuldt funktionelt afhængig af den primære nøgle, så er relationen i Second Normal Form (2NF).
Bemærk - Hvis den korrekte delmængde af kandidatnøglen bestemmer en ikke-prime-attribut, kaldes den delvis afhængighed . Det normalisering af 1NF relationer til 2NF involverer fjernelse af delvise afhængigheder . Hvis der eksisterer en delvis afhængighed, fjerner vi de delvist afhængige attributter fra relationen ved at placere dem i en ny relation sammen med en kopi af deres determinant. Overvej eksemplerne nedenfor.
Eksempel-1: Overvej tabellen som følger nedenfor.
STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>
{Bemærk, at der er mange kurser med samme kursusgebyr. } Her kan COURSE_FEE ikke alene bestemme værdien af COURSE_NO eller STUD_NO; COURSE_FEE sammen med STUD_NO kan ikke bestemme værdien af COURSE_NO; COURSE_FEE sammen med COURSE_NO kan ikke bestemme værdien af STUD_NO; Derfor ville COURSE_FEE være en ikke-prime-attribut, da den ikke tilhører den eneste kandidatnøgle {STUD_NO, COURSE_NO} ; Men, COURSE_NO -> COURSE_FEE, dvs. COURSE_FEE er afhængig af COURSE_NO, som er en korrekt delmængde af kandidatnøglen. Ikke-primær attribut COURSE_FEE er afhængig af en korrekt delmængde af kandidatnøglen, som er en delvis afhængighed, og derfor er denne relation ikke i 2NF. For at konvertere ovenstående relation til 2NF, skal vi opdele tabellen i to tabeller såsom: Tabel 1: STUD_NO, COURSE_NO Tabel 2: COURSE_NO, COURSE_FEE
java compareto metode
Table 1 Table 2 STUD_NO COURSE_NO COURSE_NO COURSE_FEE 1 C1 C1 1000 2 C2 C2 1500 1 C4 C3 1000 4 C3 C4 2000 4 C1 C5 2000 2 C5>
Bemærk - 2NF forsøger at reducere de redundante data, der bliver gemt i hukommelsen. For eksempel, hvis der er 100 studerende, der tager C1-kursus, behøver vi ikke at gemme dets gebyr som 1000 for alle de 100 poster, i stedet for, når vi kan gemme det i den anden tabel, da kursusgebyret for C1 er 1000.
Eksempel-2: Overvej følgende funktionelle afhængigheder i relation R (A, B, C, D)
AB ->C [A og B bestemmer sammen C] BC -> D [B og C bestemmer sammen D]>
Svar:
Først kan vi kontrollere, om der er nogle delvise afhængigheder. En delvis afhængighed opstår, når en ikke-primær attribut (ikke en del af en kandidatnøgle) kun afhænger af en del af en kandidatnøgle.
Kandidatnøglerne for relation R kan bestemmes ved at finde lukningen af hver attribut:
AB bestemmer hver nøgle.
Lad os nu tjekke for delvise afhængigheder:
Der er ingen partielle afhængigheder i denne relation, fordi hver ikke-primær attribut (C og D) afhænger af hele kandidatnøglerne, den er en del af (henholdsvis AB og BC).
Derfor er relationen R allerede i 3. Normalform (3NF), fordi den opfylder betingelserne for 1. Normalform (1NF) og 2. Normalform (2NF) og ikke har nogen transitive afhængigheder.
Konklusion
Som konklusion er 2NF et grundlæggende koncept for databasenormalisering, der hjælper med at fjerne delvise afhængigheder i din relationelle database. At følge 2NF-regler hjælper med at organisere din database for at undgå uregelmæssigheder og sikre dataintegritet, hvilket gør det nemmere at gemme og hente data.