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:
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:
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.
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:
EmployeeID | EmployeeName | DeptID |
---|---|---|
Emp1 | John | Dept001 |
Emp2 | Tina | Dept003 |
Emp3 | Carlos | Dept001 |
DeptName atributua kenduko dugu Langileen taulan eta sortu taula berri bat Departamentuak :
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:
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).