Ukuxhomekeka ngokugcweleyo komsebenzi yindlela yokumisela isiseko seenkcukacha ezilingana nomgangatho oqhelekileyo weFomu yesiBini yesiQhelo (2NF) . Ngamafutshane, oku kuthetha ukuba ihlangabezana neemfuno zeFom yeSiqhelo esiQalayo (1NF), kwaye zonke iimpawu ezingundoqo ezingezantsi zixhomekeke ngokusisiseko kwizinto eziphambili.
Oku akuko kunzima njengoko kunokuba kuzwakala. Makhe sijonge kule nkcukacha ngokubanzi.
Isishwankathelo soFom yeSiQala sokuQala
Ngaphambi kokuba i-database ingakwazi ukuxhomekeka ngokupheleleyo, kufuneka iqale ihambelane neFom yoQoqo .
Konke oku kuthetha ukuba impawu nganye kufuneka zibambe ixabiso elinye, i-athomu.
Ngokomzekelo, itafile elandelayo ayihambisani ne-1NF, kuba umqeshwa uTina uxhunyiwe kwiindawo ezimbini, zombini kwisisele esisodwa:
Umqeshwa | Indawo |
---|---|
U Yohane | ilos Angeles |
Tina | Los Angeles, Chicago |
Ukuvumela ukuba olu qulunqo lunokuchaphazela kakubi ukuhlaziywa kwedatha okanye ukungena. Ukuqinisekisa ukuthotyelwa kwe-1NF, lungisa kwakhona itafile ukuze zonke iimpawu (okanye iiseli zekholomu) zibambe ixabiso elilodwa:
Umqeshwa | Indawo |
---|---|
U Yohane | ilos Angeles |
Tina | ilos Angeles |
Tina | Chicago |
Kodwa i-1NF ayanele ngokwaneleyo ukukhusela iingxaki kunye nedatha.
Indlela ye-2NF isebenza ngayo ukuqinisekisa Ukuxhomekeka ngokupheleleyo
Ukuxhomekeke ngokupheleleyo, zonke iimpawu ezibalulekileyo ezingabhalwanga kufuneka zixhomekeke kwisitshixo esisisiseko. (Khumbula, impawu ebalulekileyo yomviwa yeyiphi na isitshixo (umzekelo, isitshixo esisisiseko okanye sangaphandle) esetyenziselwa ukuchonga ngokukodwa irekhodi yeenkcukacha.
Abaqulunqi beDatabase basebenzisa i-notation ukuchaza ubudlelwane obuxhomekeke phakathi kweempawu:
Ukuba isibonakaliso A sibeka ixabiso leB, sibhala le A -> B- esithetha ukuba uB isebenza ngokuxhomekeke ku-A. Kulo dlelwane, i-A imisela ukubaluleka kwe-B, ngelixa iB ixhomekeke ku-A.
Umzekelo, kuletafile yamaSebe alandelayo, i-EmployeeID kunye ne-DeptID zizo zombini izitshixo zabafundi: I-EmployeeID iyona nto iphambili yetafile ngelixa i-DeptID iyona nto yangaphandle.
Nayiphi na enye impawu-kule ngxaki, i-EmployeeName kunye ne-DeptName-kufuneka ixhomekeke kwisitshixo esisisiseko sokufumana ixabiso layo.
EmployeeID | EmployeeName | DeptID | DeptName |
---|---|---|---|
Emp1 | U Yohane | Dept001 | ZeMali |
Emp2 | Tina | Dept003 | Ukuthengisa |
Emp3 | UCarlos | Dept001 | ZeMali |
Kule meko, itheyibhile ayixhomekeke ngokugcwele ngenxa yokuba, ngelixa i-EmployeeName ixhomekeke kwi-Primary Key EmployeeID, i-DeptName incike endaweni esikhundleni kwi-DeptID. Oku kuthiwa kuxhomekeke ekuxhaseni .
Ukwenza le tafile ihambelane ne-2NF, kufuneka sihlule idatha kwitafile ezimbini:
EmployeeID | EmployeeName | DeptID |
---|---|---|
Emp1 | U Yohane | Dept001 |
Emp2 | Tina | Dept003 |
Emp3 | UCarlos | Dept001 |
Sisusa umlinganiselo weDeptName kwitafile zabasebenzi kwaye sakha amasebe amatsha etafile:
DeptID | DeptName |
---|---|
Dept001 | ZeMali |
Dept002 | Ezengqesho |
Dept003 | Ukuthengisa |
Ngoku ulwalamano phakathi kweetafile luxhomekeke ngokupheleleyo, okanye kwi-2NF.
Kutheni ukuxhomekeka ngokupheleleyo kuBaluleke
Ukuxhomekeka ngokupheleleyo phakathi kweempawu zeenkcukacha kunceda ukuqinisekiswa kwengqibelelo yenkcukacha kwaye ukhuphe ukungaphumeleli kwedatha.
Ngokomzekelo, khawuqwalasele itafile kwicandelo elingentla elingqinelana ne-1NF kuphela. Nantsi, kwakhona:
Umqeshwa | Indawo |
---|---|
U Yohane | ilos Angeles |
Tina | ilos Angeles |
Tina | Chicago |
UTina unamarekhodi amabini. Ukuba sihlaziya enye ngaphandle kokuqonda ukuba kukho ezimbini, umphumo uya kuba yinkcukacha engahambelaniyo.
Okanye, kuthekani ukuba sifuna ukwongeza umqeshwa kule tafile, kodwa asikazi indawo? Sinokuthi singavunyelwa ukuba songeze ngisho nomqeshwa omtsha ukuba i-attribute ye-Indawo ayivumeli ixabiso le-NULL.
Ukuxhomekeka ngokugcwele akusiyo yonke imifanekiso, nangona kufikeleleka kumgangatho oqhelekileyo. Kufuneka uqinisekise ukuba i-database yakho ifom yeFesithathu yesiQhelo (3NF).