logo

Druga normalna oblika (2NF)

Prva normalna oblika (1NF) ne odpravlja redundance, temveč odpravlja ponavljajoče se skupine. Namesto da bi imeli v zapisu več stolpcev iste vrste podatkov (0NF ali nenormalizirana oblika), ponovljene informacije odstranite v ločeno relacijo in jih predstavite kot vrstice. To je tisto, kar sestavlja 1NF.

Druga normalna oblika

Druga normalna oblika (2NF) temelji na konceptu popolnoma funkcionalne odvisnosti. Druga normalna oblika velja za relacije s sestavljenimi ključi, to je relacije s primarnim ključem, sestavljenim iz dveh ali več atributov. Relacija s primarnim ključem z enim atributom je samodejno v vsaj 2NF. Odnos, ki ni v 2NF, lahko trpi zaradi anomalij pri posodabljanju. Da je relacija v drugi normalni obliki, mora biti v prvi normalni obliki in relacija ne sme vsebovati nobene delne odvisnosti. Relacija je v 2NF, če nima delne odvisnosti, tj. noben neprimarni atribut (atributi, ki niso del nobenega kandidatnega ključa) ni odvisen od katere koli ustrezne podmnožice katerega koli kandidatnega ključa v tabeli. Z drugimi besedami,

Relacija, ki je v prvi normalni obliki in je vsak atribut neprimarnega ključa v celoti funkcionalno odvisen od primarnega ključa, je relacija v drugi normalni obliki (2NF).



Opomba - Če ustrezna podmnožica ključa kandidata določa atribut, ki ni prvi, se ta pokliče delna odvisnost . The normalizacija odnosov 1NF do 2NF vključuje odstranitev delnih odvisnosti . Če obstaja delna odvisnost, odstranimo delno odvisne atribute iz relacije tako, da jih postavimo v novo relacijo skupaj s kopijo njihove determinante. Razmislite o spodnjih primerih.

Primer-1: Razmislite o spodnji tabeli.

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

{Upoštevajte, da obstaja veliko tečajev, ki imajo enako ceno. } Tukaj COURSE_FEE ne more sam določiti vrednosti COURSE_NO ali STUD_NO; COURSE_FEE skupaj s STUD_NO ne more določiti vrednosti COURSE_NO; COURSE_FEE skupaj s COURSE_NO ne more določiti vrednosti STUD_NO; Zato bi bil COURSE_FEE neprimarni atribut, saj ne pripada edinemu ključu kandidata {STUD_NO, COURSE_NO}; Toda COURSE_NO -> COURSE_FEE, tj. COURSE_FEE je odvisen od COURSE_NO, ki je pravilna podmnožica ključa kandidata. Neprime atribut COURSE_FEE je odvisen od ustrezne podmnožice ključa kandidata, ki je delna odvisnost, zato ta relacija ni v 2NF. Če želite zgornjo relacijo pretvoriti v 2NF, moramo tabelo razdeliti na dve tabeli, kot sta: Tabela 1: STUD_NO, COURSE_NO Tabela 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>

Opomba - 2NF poskuša zmanjšati odvečne podatke, ki se shranjujejo v pomnilniku. Na primer, če tečaj C1 obiskuje 100 študentov, nam ni treba shraniti njegove pristojbine kot 1000 za vseh 100 zapisov, namesto tega jo lahko shranimo v drugi tabeli, saj je cena tečaja za C1 1000.

Primer-2: Razmislite o naslednjih funkcionalnih odvisnostih v relaciji R (A, B, C, D)

AB ->C [A in B skupaj določata C] BC -> D [B in C skupaj določata D]>

odgovor:

Najprej lahko preverimo, ali obstajajo delne odvisnosti. Do delne odvisnosti pride, ko je atribut, ki ni primarni (ni del nobenega možnega ključa), odvisen samo od dela možnega ključa.

Kandidatske ključe za relacijo R je mogoče določiti z iskanjem zaprtja vsakega atributa:

AB določa vse ključe.

Zdaj pa preverimo delne odvisnosti:

V tem razmerju ni delnih odvisnosti, ker je vsak ne-prime atribut (C in D) odvisen od celotnega kandidatnega ključa(-ov), katerega del je (AB oziroma BC).

Zato je relacija R že v 3. normalni obliki (3NF), ker izpolnjuje pogoje 1. normalne oblike (1NF) in 2. normalne oblike (2NF) in nima tranzitivnih odvisnosti.

Zaključek

Skratka, 2NF je temeljni koncept normalizacije baze podatkov, ki pomaga odstraniti delne odvisnosti v vaši relacijski bazi podatkov. Upoštevanje pravil 2NF pomaga organizirati vašo bazo podatkov, da se izognete nepravilnostim in zagotovite celovitost podatkov, kar olajša shranjevanje in pridobivanje podatkov.