Utegemea kamili wa Kazi katika Usimamizi wa Database

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:

Fomu ya kwanza ya kawaida yasiyo ya kufuata
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:

Ufungashaji wa Fomu ya Kwanza ya kawaida
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.

Idara ya Waajiriwa
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:

Wafanyakazi
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:

Idara
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:

Ufungashaji wa Fomu ya Kwanza ya kawaida
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).