logo

Andra normala formen (2NF)

First Normal Form (1NF) eliminerar inte redundans, utan snarare är det att det eliminerar upprepande grupper. Istället för att ha flera kolumner av samma typ av data i en post (0NF eller Unnormalized form) tar du bort den upprepade informationen till en separat relation och representerar dem som rader. Detta är vad som utgör 1NF.

Andra normalformen

Den andra normala formen (2NF) är baserad på konceptet fullt funktionellt beroende. Den andra normala formen gäller relationer med sammansatta nycklar, det vill säga relationer med en primärnyckel som består av två eller flera attribut. En relation med en primärnyckel med ett attribut är automatiskt i minst 2NF. En relation som inte finns i 2NF kan drabbas av uppdateringsavvikelserna. För att vara i den andra normalformen måste en relation vara i den första normalformen och relationen får inte innehålla något partiellt beroende. En relation är i 2NF om den har No Partial Dependency, dvs inget icke-primärt attribut (attribut som inte är en del av någon kandidatnyckel) är beroende av någon korrekt delmängd av någon kandidatnyckel i tabellen. Med andra ord,

lägga till i array java

En relation som är i första normalform och varje icke-primärnyckelattribut är helt funktionellt beroende av primärnyckeln, då är relationen i andra normalform (2NF).



Notera - Om rätt delmängd av kandidatnyckeln bestämmer ett icke-primärt attribut anropas det partiellt beroende . De normalisering av 1NF-relationer till 2NF involverar avlägsnande av partiella beroenden . Om det finns ett partiellt beroende tar vi bort de delvis beroende attributen från relationen genom att placera dem i en ny relation tillsammans med en kopia av deras determinant. Betrakta exemplen nedan.

Exempel-1: Betrakta tabellen enligt följande.

STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>

{Observera att det finns många kurser som har samma kursavgift. } Här kan COURSE_FEE inte ensamt bestämma värdet på COURSE_NO eller STUD_NO; COURSE_FEE tillsammans med STUD_NO kan inte bestämma värdet på COURSE_NO; COURSE_FEE tillsammans med COURSE_NO kan inte bestämma värdet på STUD_NO; Därför skulle COURSE_FEE vara ett icke-primärt attribut, eftersom det inte tillhör den enda kandidatnyckeln {STUD_NO, COURSE_NO} ; Men, COURSE_NO -> COURSE_FEE, dvs. COURSE_FEE är beroende av COURSE_NO, som är en riktig delmängd av kandidatnyckeln. Icke-primärt attribut COURSE_FEE är beroende av en korrekt delmängd av kandidatnyckeln, vilket är ett partiellt beroende och så denna relation är inte i 2NF. För att konvertera ovanstående relation till 2NF måste vi dela upp tabellen i två tabeller såsom: Tabell 1: STUD_NO, COURSE_NO Tabell 2: COURSE_NO, COURSE_FEE

   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>

Notera - 2NF försöker minska den redundanta data som lagras i minnet. Till exempel, om det finns 100 elever som tar C1-kurs, behöver vi inte lagra dess avgift som 1000 för alla 100 poster, istället när vi kan lagra den i den andra tabellen eftersom kursavgiften för C1 är 1000.

Exempel-2: Överväg att följa funktionella beroenden i relation R (A, B, C, D )

AB ->C [A och B bestämmer tillsammans C] BC -> D [B och C bestämmer tillsammans D]>

Svar:

Först kan vi kontrollera om det finns några partiella beroenden. Ett partiellt beroende uppstår när ett icke-primärt attribut (inte en del av någon kandidatnyckel) endast beror på en del av en kandidatnyckel.

Kandidatnycklarna för relation R kan bestämmas genom att hitta stängningen av varje attribut:

AB bestämmer varje nycklar.

Låt oss nu kontrollera om det finns partiella beroenden:

Det finns inga partiella beroenden i denna relation eftersom varje icke-primärt attribut (C och D) beror på hela kandidatnyckeln/nycklarna den är en del av (AB respektive BC).

Därför är relationen R redan i 3:a normalformen (3NF) eftersom den uppfyller villkoren för 1:a normalformen (1NF) och 2:a normalformen (2NF) och inte har några transitiva beroenden.

Slutsats

Sammanfattningsvis är 2NF ett grundläggande koncept för databasnormalisering som hjälper till att ta bort partiella beroenden i din relationsdatabas. Att följa 2NF-regler hjälper till att organisera din databas för att undvika anomalier och säkerställa dataintegritet, vilket gör det lättare att lagra och hämta data.

söndra karta