Prima formă normală

Prima formă normală (1NF)  este forma normală de bază a unei relații în modelul de date relațional .

Definiție

O variabilă de relație este în prima formă normală dacă și numai dacă, în orice valoare validă a acelei variabile, fiecare tuplu de relație conține exact o valoare pentru fiecare dintre atributele [1] .

Î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. Conform definiției lui Christopher Date pentru un astfel de caz, un tabel este normalizat (în mod echivalent, este în prima formă normală) dacă și numai dacă este o reprezentare directă și adevărată a unei relații. Mai precis, tabelul în cauză trebuie să îndeplinească următoarele cinci condiții:

  1. Nu există o ordonare a rândurilor de sus în jos (cu alte cuvinte, ordinea rândurilor nu transmite nicio informație).
  2. Nu există o ordonare de la stânga la dreapta a coloanelor (cu alte cuvinte, ordinea coloanelor nu conține informații).
  3. Fără linii duplicate.
  4. Fiecare intersecție a unui rând și a unei coloane conține exact o valoare din domeniul corespunzător (și nimic altceva).
  5. Toate coloanele sunt regulate [1] .

„Regularitatea” tuturor coloanelor unui tabel înseamnă că nu există componente „ascunse” în tabel care să poată fi accesate doar prin invocarea unui operator special în loc să se refere la nume de coloane obișnuite sau care să ducă la efecte secundare pentru rânduri sau tabele la invocarea operatorilor standard. Astfel, de exemplu, șirurile de caractere nu au alte identificatori decât valorile chei candidate normale (fără „identificatori de rând” sau „identificatori de obiecte”) ascunși. De asemenea, nu au marcaje temporale ascunse [1] .

Exemplu

Tabelul original nenormalizat (adică nu este o reprezentare corectă a unei relații):

Angajat Număr de telefon
Ivanov I.I. 283-56-82
390-57-34
Petrov P.P. 708-62-34

Un tabel redus la 1NF, care este reprezentarea corectă a unei relații:

Angajat Număr de telefon
Ivanov I.I. 283-56-82
Ivanov I.I. 390-57-34
Petrov P.P. 708-62-34

Atomicitate

Mulți autori completează definiția primei forme normale cu cerința de atomicitate ( indivizibilitate ) a valorilor [2] . Totuși, conceptul de „atomicitate” este prea vag [1] [3] . De exemplu, multe tipuri de date (șiruri, date, numere cu virgulă fixă ​​etc.) pot fi descompuse cu ușurință în elementele lor constitutive, dacă este necesar, utilizând operațiuni standard furnizate de SGBD. K. Date concluzionează că „conceptul de atomicitate nu are absolut niciun sens” [1] .

Din punct de vedere istoric, conceptul de „atomicity” provine din „simple domains” ( în engleză  simple domains ), propus de autorul modelului de date relaționale, E. F. Codd . Scopul „formei normale” propus de Codd în „A Relational Data Model for Large Shared Data Banks” [4] nu a fost legat de niciun aspect teoretic, cum ar fi tratarea anomaliilor sau redundanței. Codd a sugerat utilizarea „domeniilor simple” doar pentru a facilita implementarea viitoare a software-ului, după cum urmează:

O relație ale cărei domenii sunt toate simple poate fi reprezentată atunci când este stocată ca o matrice bidimensională cu coloane uniforme.

Text original  (engleză)[ arataascunde] O relație ale cărei domenii sunt toate simple poate fi reprezentată în stocare printr-o matrice bidimensională omogenă de coloană.

Ușurința reprezentării relațiilor cu matrice, care este fezabilă atunci când toate relațiile sunt normalizate, oferă avantaje nu numai pentru stocare, ci și pentru transferul de cantități mari de date între sisteme care utilizează reprezentări de date foarte diferite.

Text original  (engleză)[ arataascunde] Simplitatea reprezentării matricei care devine fezabilă atunci când toate relațiile sunt turnate în formă normală este nu numai un avantaj în scopuri de stocare, ci și pentru comunicarea datelor în masă între sisteme care utilizează reprezentări foarte diferite ale datelor.

Vezi și

Note

  1. 1 2 3 4 5 C. J. Data. Ce înseamnă cu adevărat prima formă normală //С. J. data. Data în baza de date: Scrieri 2000-2006, Apress, 2006, ISBN 978-1-59059-746-0
  2. Elmasri, Ramez și Navathe, Shamkant B. Fundamentals of Database Systems, Ediția a patra  . - Pearson, 2003. - P. 315. - ISBN 0321204484 . : „Se precizează că domeniul unui atribut trebuie să includă numai valori atomice (simple, indivizibile) și că valoarea oricărui atribut dintr-un tuplu trebuie să fie o singură valoare din domeniul acelui atribut.”
  3. Darwen, Hugh. Atribute cu valoare de relație; sau, Adevărata prima formă normală vă rog să se ridice? // Relational Database Writings 1989-1991, Addison-Wesley, 1992.
  4. E.F. Codd. Relational Model of Data for Large Shared Data Banks ( tradus de M. R. Kogalovsky) Arhivat 22 noiembrie 2010 la Wayback Machine
    Codd, EF A Relational Model of Data for Large Shared Data Banks   // Communications of the ACM  : journal. - 1970. - Vol. 13 , nr. 6 . - P. 377-387 . doi : 10.1145 / 362384.362685 . Arhivat din original pe 12 iunie 2007.

Literatură