Cuprins:
Definiție - Ce înseamnă Second Normal Form (2NF)?
A doua formă normală (2NF) este al doilea pas în normalizarea unei baze de date. 2NF se bazează pe prima formă normală (1NF).
Normalizarea este procesul de organizare a datelor într-o bază de date, astfel încât să îndeplinească două cerințe de bază:
- Nu există redundanță de date (toate datele sunt stocate într-un singur loc).
- Dependențele de date sunt logice (toate elementele de date asociate sunt stocate împreună).
Un tabel 1NF este în formă 2NF dacă și numai dacă toate atributele non-prime ale acestora depind funcțional de întreaga cheie a candidatului.
Techopedia explică a doua formă normală (2NF)
După ce a îndeplinit cerințele de la 1NF, 2NF cere proiectantului bazei de date să facă următoarele:
- Împărțiți toate datele rezultând în relații de la multe la multe și stocați datele sub formă de tabele separate. De exemplu, într-o bază de date folosită de aplicația unei școli, două dintre tabele sunt STUDENT și SUBIECT. În viața reală, un student ia mai multe materii simultan, în timp ce un subiect este studiat de mai mulți studenți. Acestea sunt relații de la multe la multe. 2NF afirmă că această relație trebuie împărțită în mai mult de cele două tabele de mai sus (STUDENT și SUBIECT). O modalitate de a le împărți este prin introducerea unui al treilea tabel, care conține coloanele Student_ID, Subiect_ID, Semestru și An. În acest fel, nu există nicio relație directă între STUDENT și SUBIECT deoarece toate relațiile sunt create indirect prin intermediul celui de-al treilea tabel.
- Creați relații între tabele folosind tastele străine. De exemplu, baza de date a unei bănci conține două tabele: CUSTOMER_MASTER (pentru stocarea detaliilor clientului) și ACCOUNT_MASTER (pentru stocarea detaliilor despre conturile bancare, inclusiv care deține clientul care cont). Trebuie să existe o modalitate de a conecta cele două tabele pentru a ști cine este clientul pentru fiecare cont. Modul de a face acest lucru este printr-o cheie străină, care este o coloană din tabelul ACCOUNT_MASTER îndreptată către o coloană corespunzătoare din tabelul CUSTOMER_MASTER.
Un tabel pentru care nu există dependențe funcționale parțiale de la cheia primară ar putea sau nu să fie în 2NF. În plus față de cheia primară, tabelul poate conține alte taste de candidat; este necesar să se stabilească că niciun atribut non-prim nu are dependențe de cheie parțială de niciuna din aceste chei de candidat.
