logo

A doua formă normală (2NF)

Prima formă normală (1NF) nu elimină redundanța, ci mai degrabă elimină grupurile care se repetă. În loc să aveți mai multe coloane de același tip de date într-o înregistrare, (0NF sau formă nenormalizată) eliminați informațiile repetate într-o relație separată și le reprezentați ca rânduri. Acesta este ceea ce constituie 1NF.

A doua formă normală

A doua formă normală (2NF) se bazează pe conceptul de dependență complet funcțională. A doua formă normală se aplică relațiilor cu chei compuse, adică relațiilor cu o cheie primară compusă din două sau mai multe atribute. O relație cu o cheie primară cu un singur atribut este automat în cel puțin 2NF. O relație care nu este în 2NF poate suferi de anomalii de actualizare. Pentru a fi în a doua formă normală, o relație trebuie să fie în prima formă normală și relația nu trebuie să conțină nicio dependență parțială. O relație este în 2NF dacă nu are nicio dependență parțială, adică niciun atribut non-prim (atribute care nu fac parte din nicio cheie candidată) nu este dependent de orice subset adecvat al oricărei chei candidate din tabel. Cu alte cuvinte,

O relație care este în prima formă normală și fiecare atribut non-cheie primară este complet dependent funcțional de cheia primară, apoi relația este în a doua formă normală (2NF).



câte orașe sunt în Statele Unite ale Americii

Notă - Dacă subsetul adecvat al cheii candidate determină un atribut non-prim, acesta este apelat dependență parțială . The normalizare a relațiilor 1NF la 2NF implică eliminarea dependențelor parțiale . Dacă există o dependență parțială, eliminăm atributele parțial dependente din relație, plasându-le într-o relație nouă împreună cu o copie a determinantului lor. Luați în considerare exemplele de mai jos.

Exemplul-1: Luați în considerare tabelul de mai jos.

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

{Rețineți că există multe cursuri care au aceeași taxă de curs. } Aici, COURSE_FEE nu poate decide singur valoarea COURSE_NO sau STUD_NO; COURSE_FEE împreună cu STUD_NO nu pot decide valoarea COURSE_NO; COURSE_FEE împreună cu COURSE_NO nu pot decide valoarea STUD_NO; Prin urmare, COURSE_FEE ar fi un atribut non-prim, deoarece nu aparține singurei chei candidate {STUD_NO, COURSE_NO} ; Dar, COURSE_NO -> COURSE_FEE, adică COURSE_FEE depinde de COURSE_NO, care este un subset adecvat al cheii candidate. Atributul non-prim COURSE_FEE depinde de un subset adecvat al cheii candidate, care este o dependență parțială și astfel această relație nu este în 2NF. Pentru a converti relația de mai sus la 2NF, trebuie să împărțim tabelul în două tabele, cum ar fi: Tabelul 1: STUD_NO, COURSE_NO Tabelul 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>

Notă - 2NF încearcă să reducă stocarea datelor redundante în memorie. De exemplu, dacă există 100 de studenți care urmează cursul C1, nu trebuie să-i stocăm taxa ca 1000 pentru toate cele 100 de înregistrări, ci odată ce o putem stoca în al doilea tabel, deoarece taxa de curs pentru C1 este 1000.

Exemplul-2: Luați în considerare următoarele dependențe funcționale în relația R (A, B, C, D)

java citind csv
AB ->C [A și B împreună determină C] BC -> D [B și C împreună determină D]>

Răspuns:

În primul rând, putem verifica dacă există dependențe parțiale. O dependență parțială apare atunci când un atribut non-prim (nu face parte din nicio cheie candidată) depinde doar de o parte a unei chei candidate.

Cheile candidate pentru relația R pot fi determinate prin găsirea închiderii fiecărui atribut:

AB determină fiecare tastă.

Acum, să verificăm dependențele parțiale:

Nu există dependențe parțiale în această relație, deoarece fiecare atribut non-prim (C și D) depinde de întreaga cheie candidată din care face parte (AB și, respectiv, BC).

conversie int în șir în java

Prin urmare, relația R este deja în a treia formă normală (3NF) deoarece îndeplinește condițiile primei forme normale (1NF) și a doua formă normală (2NF) și nu are dependențe tranzitive.

Concluzie

În concluzie, 2NF este un concept fundamental de normalizare a bazei de date care ajută la eliminarea dependențelor parțiale din baza de date relațională. Respectarea regulilor 2NF vă ajută să vă organizați baza de date pentru a evita anomaliile și pentru a asigura integritatea datelor, facilitând stocarea și preluarea datelor.