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.