Forma normală este o proprietate a unei relații dintr-un model de date relaționale care o caracterizează în termeni de redundanță, ceea ce poate duce la rezultate logic eronate ale eșantionării sau modificării datelor. Forma normală este definită ca setul de cerințe pe care o relație trebuie să le satisfacă.
Procesul de conversie a relațiilor de bază de date într-o formă care se conformează formelor normale se numește normalizare . Normalizarea are scopul de a aduce structura bazei de date într-o formă care oferă o redundanță logică minimă și nu are scopul de a reduce sau de a crește performanța sau de a reduce sau de a crește volumul fizic al bazei de date [1] . Scopul final al normalizării este de a reduce potențiala inconsecvență a informațiilor stocate în baza de date. După cum a menționat K. Data [2] , scopul general al procesului de normalizare este următorul:
Redundanța este de obicei eliminată prin descompunerea relațiilor în așa fel încât în fiecare relație să fie stocate doar fapte primare (adică fapte care nu sunt derivate din alte fapte stocate).
În timp ce ideile de normalizare sunt foarte utile pentru proiectarea bazelor de date, ele nu sunt în niciun caz un mijloc universal sau exhaustiv de îmbunătățire a calității designului unei baze de date. Acest lucru se datorează faptului că există prea multă varietate de posibile erori și deficiențe în structura bazei de date care nu pot fi eliminate prin normalizare. În ciuda acestor considerații, teoria normalizării este o realizare foarte valoroasă a teoriei și practicii relaționale, deoarece oferă criterii riguroase și rezonabile din punct de vedere științific pentru calitatea unui proiect de bază de date și metode formale de îmbunătățire a acestei calități. În acest fel, teoria normalizării iese în evidență puternic pe fundalul abordărilor de proiectare pur empirice [3] care sunt oferite în alte modele de date . Mai mult, se poate susține că în întregul domeniu al tehnologiei informației nu există practic metode de evaluare și îmbunătățire a soluțiilor de proiectare care să fie comparabile cu teoria normalizării bazelor de date relaționale din punct de vedere al nivelului de rigoare formală.
Normalizarea este uneori criticată pe motiv că „este doar bunul simț”, iar orice profesionist competent va proiecta „în mod natural” o bază de date complet normalizată, fără a fi nevoie să aplice teoria dependenței [4] . Cu toate acestea, așa cum subliniază Christopher Date , normalizarea este tocmai principiile de bun simț pe care un designer matur se ghidează în mintea sa, adică principiile normalizării sunt bunul simț formalizat . Între timp, identificarea și formalizarea principiilor bunului simț este o sarcină foarte dificilă, iar succesul în rezolvarea acesteia este o realizare semnificativă [4] .
Mulți oameni de știință au luat parte la crearea și dezvoltarea teoriei normalizării. Totuși, E. Codd [4] a propus primele trei forme normale și conceptul de dependență funcțională .
O variabilă de relație este în prima formă normală (1NF) dacă și numai dacă , în orice valoare de relație validă, fiecare dintre tuplurile sale conține exact o valoare pentru fiecare dintre atribute.
Într-un model relațional, o relație este întotdeauna în prima formă normală, prin definiția conceptului relație . În ceea ce privește diferitele tabele , ele pot să nu fie reprezentări corecte ale relațiilor și, în consecință, pot să nu fie în 1NF.
O variabilă de relație este în a doua formă normală dacă și numai dacă este în prima formă normală și fiecare atribut non-cheie este ireductibil (complet funcțional) dependent de cheia sa candidată. Dependența completă funcțional înseamnă că, dacă cheia candidată este compusă, atunci atributul depinde de întreaga cheie și nu depinde de părțile acesteia.
O variabilă de relație este în a treia formă normală dacă și numai dacă este în a doua formă normală și nu există dependențe funcționale tranzitive ale atributelor non-cheie de atributele cheie.
O variabilă de relație este în formă normală Boyce-Codd (cu alte cuvinte, în forma a treia normală puternică) dacă și numai dacă fiecare dintre dependențele sale funcționale netriviale și ireductibile din stânga are ca determinant o cheie potențială .
O variabilă de relație este în a patra formă normală dacă este în formă normală Boyce-Codd și nu conține dependențe multivalorice non-triviale .
O variabilă de relație este în a cincea formă normală (cu alte cuvinte, în formă normală proiectiv-conectivă) dacă și numai dacă fiecare dependență de conexiune netrivială din ea este determinată de cheia (cheile) potențiale a acestei relații.
O variabilă relație este în DKNF dacă și numai dacă fiecare constrângere impusă acesteia este o consecință logică a constrângerilor de domeniu și a constrângerilor cheie impuse variabilei relației.
O variabilă de relație este în a șasea formă normală dacă și numai dacă satisface toate dependențele de unire non-triviale. Din definiție rezultă că o variabilă este în 6NF dacă și numai dacă este ireductibilă, adică nu poate fi descompusă în continuare fără pierderi. Fiecare variabilă de relație care este în 6NF este, de asemenea, în 5NF.
Introdus de K. Date în cartea sa [2] ca o generalizare a celei de-a cincea forme normale pentru o bază de date cronologică .
forme normale | |
---|---|
Bază de date | |
---|---|
Concepte |
|
Obiecte |
|
Chei | |
SQL |
|
Componente |