Utegemezi kamili wa kazi ni hali ya uhalali wa database unaofanana na kiwango cha kawaida cha Fomu ya Pili ya kawaida (2NF) . Kwa kifupi, hii ina maana kwamba inakidhi mahitaji ya Fomu ya kwanza ya kawaida (1NF), na sifa zote zisizo muhimu zina tegemezi kikamilifu kwenye ufunguo wa msingi.
Hii si ngumu kama inaweza kuonekana. Hebu angalia hii kwa undani zaidi.
Muhtasari wa Fomu ya kwanza ya kawaida
Kabla ya database inaweza kuwa tegemezi kikamilifu, lazima kwanza kuzingatia Fomu ya kwanza ya kawaida .
Yote hii ina maana kwamba kila sifa lazima ishikie thamani moja, atomiki.
Kwa mfano, meza ifuatayo haitii 1NF, kwa sababu mfanyakazi Tina ameshikamana na maeneo mawili, wote wawili katika kiini moja:
Mfanyakazi | Eneo |
---|---|
Yohana | Los Angeles |
Tina | Los Angeles, Chicago |
Kuruhusu utengenezaji huu unaweza kuathiri vibaya data au vifungo vya data. Kuhakikisha kufuata kwa NNF, rekebisha meza ili sifa zote (au seli za safu) ziwe na thamani moja:
Mfanyakazi | Eneo |
---|---|
Yohana | Los Angeles |
Tina | Los Angeles |
Tina | Chicago |
Lakini 1NF bado haitoshi kuepuka matatizo na data.
Jinsi 2NF Inavyofanya Kazi Kuhakikisha Utegemea Kamili
Kuwa tegemezi kikamilifu, sifa zote zisizo za mgombea lazima zinategemea ufunguo wa msingi. (Kumbuka, sifa muhimu ya mgombea ni ufunguo wowote (kwa mfano, ufunguo wa msingi au wa kigeni) uliotumiwa kutambua rekodi ya kumbukumbu pekee.
Waumbaji wa darasani hutumia maelezo ili kuelezea mahusiano ya tegemezi kati ya sifa:
Ikiwa sifa A huamua thamani ya B, tunaandika hii A -> B - inamaanisha kwamba B inategemea A. Kwa uhusiano huu, A huamua thamani ya B, wakati B inategemea A.
Kwa mfano, katika meza ya Wafanyakazi wafuatayo, Waajiriwa na DeptID ni funguo zote za mgombea: Waajiriwa ni ufunguo wa msingi wa meza wakati DeptID ni ufunguo wa kigeni.
Tabia nyingine yoyote - katika kesi hii, EmployeeName na DeptName - lazima itategemea ufunguo wa msingi ili kupata thamani yake.
Waajiriwa | Waajiriwa | DeptID | DeptName |
---|---|---|---|
Emp1 | Yohana | Dept001 | Fedha |
Emp2 | Tina | Dept003 | Mauzo |
Emp3 | Carlos | Dept001 | Fedha |
Katika suala hili, meza haikutegemea kikamilifu kwa sababu, wakati Waajiriwa inategemea Mfanyakazi wa msingi wa msingi, DeptName inategemea badala ya Wizara. Hii inaitwa utegemezi wa sehemu .
Ili kuunda meza hii kulingana na 2NF, tunahitaji kugawanya data katika meza mbili:
Waajiriwa | Waajiriwa | DeptID |
---|---|---|
Emp1 | Yohana | Dept001 |
Emp2 | Tina | Dept003 |
Emp3 | Carlos | Dept001 |
Tunaondoa sifa ya DeptName kutoka kwa Wafanyakazi wa meza na kuunda Idara mpya ya meza:
DeptID | DeptName |
---|---|
Dept001 | Fedha |
Dept002 | Rasilimali |
Dept003 | Mauzo |
Sasa uhusiano kati ya meza ni tegemezi kamili, au katika 2NF.
Kwa nini Mtegemezi Kamili ni muhimu
Utegemea kamili kati ya sifa za database husaidia kuhakikisha uadilifu wa data na kuepuka makosa ya data.
Kwa mfano, fikiria meza katika sehemu ya juu inayofuata 1NF tu. Hapa ni, tena:
Mfanyakazi | Eneo |
---|---|
Yohana | Los Angeles |
Tina | Los Angeles |
Tina | Chicago |
Tina ina rekodi mbili. Ikiwa tunasasisha moja bila kutambua kwamba kuna mambo mawili, matokeo yake yatakuwa data yasiyolingana.
Au, ni nini ikiwa tunataka kuongeza mfanyakazi kwenye meza hii, lakini hatujui Mahali? Tunaweza kuepukiwa hata kuongeza mfanyakazi mpya ikiwa sifa za Eneo haziruhusu maadili ya NULL.
Utegemezi kamili sio picha nzima, ingawa, linapokuja suala la kawaida. Lazima uhakikishe kwamba database yako iko katika Fomu ya Tatu ya kawaida (3NF).