Dependentzia funtzional osoa datu-basearen normalizazioan

Dependentzia funtzional oso bat Normalizatzeko Bigarren Inprimaki Normalaren (2NF) estandarrarekin bat datorren datu baseen normalizazio egoera da. Laburbilduz, lehen forma arruntaren (1NF) eskakizunak betetzen dituela esan nahi du, eta gako-atributu guztiak guztiz funtzionalak dira lehen mailako gakoan.

Hau ez da soinuak bezain konplexua. Ikus dezagun xehetasun gehiago.

First Normal Formaren laburpena

Datu-basea guztiz funtzionalki menperatuta egon aurretik, lehenengo formatu normalarekin bat etorri behar du lehenik.

Horrek esan nahi du atributu bakoitzak balio atomiko bakarra eduki behar duela.

Adibidez, hurrengo taulak ez du 1NF betetzen, Tina langilea bi kokapenekin lotzen delako, biak gelaxka bakarrean:

Lehenengo inprimaki arrunta Ez betetzeagatik
Langilearen Kokalekua
John los Angeles
Tina Los Angeles, Chicago

Diseinu horri esker, datuen eguneratzeak edo sarrerak modu negatiboan eragina izan liteke. 1NF betetzen dela ziurtatzeko, berrantolatu taula, atributu guztiek (edo zutabe zelulak) balio bakar bat eduki dezaten:

Lehenengo inprimaki normala betetzea
Langilearen Kokalekua
John los Angeles
Tina los Angeles
Tina Chicago

Baina 1NF oraindik ez da nahikoa datuekin arazoak saihesteko.

Nola funtzionatzen duen 2NF Mendekotasun osoa ziurtatzeko

Erabateko menpekotasuna izateko, hautagai gabeko gako-atributu guztiek lehen mailako gakoaren menpe egon behar dute. (Gogoratu, hautagaiaren gakoen atributuak datu-basearen erregistroa modu bakarrean identifikatzeko erabilitako edozein gako (adibidez, lehen edo atzerriko gakoa) da.

Datu-basearen diseinatzaileek atributuen arteko mendekotasuna deskribatzeko notazioa erabiltzen dute:

A atributu batek B balioa zehazten badu, hau A -> B - hau esaten duenez, B funtzionalki A. araberakoa dela esan nahi dugu. Harreman horretan, A batek B balioa zehazten du, B araberakoa baita.

Adibidez, honako Langileen Saileko taulan honako hauek daude: EmployeeID eta DeptID bai hautagaiak: EmployeeID taula nagusiko gakoa da, DeptID atzerriko gakoa bada.

Beste edozein atributu - kasu honetan, Langilearen izena eta DeptName - lehen mailako gakoan egon behar du bere balioa lortzeko.

Langileen Departamentuak
EmployeeID EmployeeName DeptID DeptName
Emp1 John Dept001 Finantza
Emp2 Tina Dept003 salmentak
Emp3 Carlos Dept001 Finantza

Kasu honetan, mahaia ez da guztiz menperatzen, Langilearen izena lehen mailako langilearen IDaren menpe dagoen bitartean, DeptName ordez, DeptID-en oinarritzen da. Mendekotasun partziala deritzo.

Taula hau 2NF-ra egokitzeko, datuak bi tauletan bereizi behar ditugu:

Langileak
EmployeeID EmployeeName DeptID
Emp1 John Dept001
Emp2 Tina Dept003
Emp3 Carlos Dept001

DeptName atributua kenduko dugu Langileen taulan eta sortu taula berri bat Departamentuak :

Sailak
DeptID DeptName
Dept001 Finantza
Dept002 Giza baliabideak
Dept003 salmentak

Orain taulen arteko erlazioak guztiz menpe daude, edo 2NF-n.

Zergatik dependentzia oso garrantzitsua da?

Datu-basearen atributuen artean dagoen mendekotasun osoa datu osotasuna ziurtatzea eta datuak anomaliak saihestea da.

Adibidez, kontuan hartu taula 1NF baino lehenagoko atalean. Hemen da berriro:

Lehenengo inprimaki normala betetzea
Langilearen Kokalekua
John los Angeles
Tina los Angeles
Tina Chicago

Tina bi diskoak ditu. Eguneratzen badugu bi kontutan hartu gabe, emaitza ez datozen datuak izango lirateke.

Edo, zer egin nahi badiogu langile bati mahai honi, baina oraindik ez dakigu Kokapena? Ezingo dugu langile berri bat gehitu, Kokapen atributuak balio NULL ez badu onartzen.

Mendekotasun osoa ez da irudi osoa, ordea, normalizazioari dagokionean. Ziurtatu zure datu-basea Hirugarren Formulario arruntan dagoela (3NF).