logo

Andre normalform (2NF)

First Normal Form (1NF) eliminerer ikke redundans, men det er snarere at det eliminerer gjentatte grupper. I stedet for å ha flere kolonner med samme type data i en post (0NF eller Unnormalized form) fjerner du den gjentatte informasjonen i en separat relasjon og representerer dem som rader. Det er dette som utgjør 1NF.

Andre normalform

Den andre normalformen (2NF) er basert på konseptet fullt funksjonell avhengighet. Den andre Normalformen gjelder relasjoner med sammensatte nøkler, det vil si relasjoner med en primærnøkkel sammensatt av to eller flere attributter. En relasjon med en enkeltattributt primærnøkkel er automatisk i minst 2NF. En relasjon som ikke er i 2NF kan lide av oppdateringsavvikene. For å være i den andre normalformen, må en relasjon være i den første normalformen og relasjonen må ikke inneholde noen delvis avhengighet. En relasjon er i 2NF hvis den ikke har noen delvis avhengighet, dvs. ingen ikke-primær attributt (attributter som ikke er en del av noen kandidatnøkkel) er avhengig av en riktig delmengde av en kandidatnøkkel i tabellen. Med andre ord,

En relasjon som er i First Normal Form og hvert ikke-primærnøkkelattributt er fullt funksjonelt avhengig av primærnøkkelen, deretter er relasjonen i Second Normal Form (2NF).



Merk - Hvis det riktige undersettet av kandidatnøkkelen bestemmer et ikke-primeattributt, kalles det delvis avhengighet . De normalisering av 1NF relasjoner til 2NF involverer fjerning av delvise avhengigheter . Hvis det eksisterer en delvis avhengighet, fjerner vi de delvis avhengige attributtene fra relasjonen ved å plassere dem i en ny relasjon sammen med en kopi av deres determinant. Tenk på eksemplene nedenfor.

Eksempel-1: Betrakt 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>

{Merk at det er mange kurs som har samme kursavgift. } Her kan ikke COURSE_FEE alene bestemme verdien av COURSE_NO eller STUD_NO; COURSE_FEE sammen med STUD_NO kan ikke bestemme verdien av COURSE_NO; COURSE_FEE sammen med COURSE_NO kan ikke bestemme verdien av STUD_NO; Derfor vil COURSE_FEE være et ikke-primeattributt, siden det ikke tilhører den eneste kandidatnøkkelen {STUD_NO, COURSE_NO} ; Men, COURSE_NO -> COURSE_FEE, dvs. COURSE_FEE er avhengig av COURSE_NO, som er en riktig delmengde av kandidatnøkkelen. Non-prime attributt COURSE_FEE er avhengig av en riktig delmengde av kandidatnøkkelen, som er en delvis avhengighet, og derfor er denne relasjonen ikke i 2NF. For å konvertere relasjonen ovenfor til 2NF, må vi dele tabellen i to tabeller som: Tabell 1: STUD_NO, COURSE_NO Tabell 2: COURSE_NO, COURSE_FEE

java sammenligningsmetode
   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>

Merk - 2NF prøver å redusere redundante data som blir lagret i minnet. For eksempel, hvis det er 100 studenter som tar C1-kurs, trenger vi ikke å lagre gebyret som 1000 for alle de 100 postene, i stedet når vi kan lagre det i den andre tabellen, da kursavgiften for C1 er 1000.

Eksempel-2: Vurder å følge funksjonelle avhengigheter i forhold 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 sjekke om det er noen delvise avhengigheter. En delvis avhengighet oppstår når et ikke-primært attributt (ikke en del av noen kandidatnøkkel) bare avhenger av en del av en kandidatnøkkel.

Kandidatnøklene for relasjon R kan bestemmes ved å finne lukkingen av hver attributt:

AB bestemmer alle nøkler.

La oss nå se etter delvise avhengigheter:

Det er ingen partielle avhengigheter i denne relasjonen fordi hvert ikke-primært attributt (C og D) avhenger av hele kandidatnøkkelen(e) den er en del av (henholdsvis AB og BC).

Derfor er relasjonen R allerede i 3. Normalform (3NF) fordi den tilfredsstiller betingelsene for 1. Normalform (1NF) og 2. Normalform (2NF) og ikke har noen transitive avhengigheter.

Konklusjon

Avslutningsvis er 2NF et grunnleggende konsept for databasenormalisering som hjelper til med å fjerne delvise avhengigheter i relasjonsdatabasen. Å følge 2NF-regler hjelper deg med å organisere databasen din for å unngå uregelmessigheter og sikre dataintegritet, noe som gjør det enklere å lagre og hente data.