Tofauti kuu kati ya ufunguo wa kigeni na ufunguo msingi ni kwamba ufunguo wa kigeni ni safu wima au seti ya safu wima zinazorejelea ufunguo msingi au ufunguo ulioteuliwa wa jedwali lingine huku ufunguo msingi ni safu au seti ya safu wima. ambayo inaweza kutumika kutambua safu mlalo katika jedwali kwa njia ya kipekee.
Safu wima au seti ya safu wima ambayo inaweza kutumika kutambua au kufikia safu mlalo au seti ya safu mlalo katika hifadhidata inaitwa ufunguo. Ufunguo msingi katika hifadhidata ya uhusiano ni mchanganyiko wa safu wima katika jedwali zinazotambulisha safu mlalo ya jedwali kwa njia ya kipekee. Kitufe cha kigeni katika hifadhidata ya uhusiano ni sehemu katika jedwali inayolingana na ufunguo msingi wa jedwali lingine. Ufunguo wa kigeni hutumika kuvuka majedwali ya marejeleo.
Ufunguo wa Kigeni ni nini?
Ufunguo wa kigeni ni kizuizi cha marejeleo kati ya majedwali mawili. Inabainisha safu au seti ya safu wima katika jedwali moja, inayoitwa jedwali la marejeleo linalorejelea seti ya safu wima katika jedwali lingine, inayoitwa jedwali linalorejelewa. Ufunguo wa kigeni au safu wima katika jedwali la marejeleo lazima ziwe ufunguo msingi au ufunguo wa mgombea (ufunguo unaoweza kutumika kama ufunguo msingi) katika jedwali linalorejelewa. Zaidi ya hayo, funguo za kigeni huruhusu kuunganisha data kwenye majedwali kadhaa. Kwa hiyo, ufunguo wa kigeni hauwezi kuwa na maadili ambayo hayaonekani kwenye meza ambayo inahusu. Kisha marejeleo yaliyotolewa na ufunguo wa kigeni husaidia kuunganisha habari katika majedwali kadhaa na hii itakuwa muhimu na hifadhidata za kawaida. Safu mlalo nyingi katika jedwali la marejeleo zinaweza kurejelea safu mlalo moja katika jedwali linalorejelewa.
Kielelezo 01: Uchoraji wa Ufunguo wa Kigeni
Katika kiwango cha ANSI SQL, kikwazo cha FOREIGN KEY kinafafanua funguo za kigeni. Zaidi ya hayo, inawezekana kufafanua funguo za kigeni wakati wa kuunda meza yenyewe. Jedwali linaweza kuwa na funguo nyingi za kigeni, na zinaweza kurejelea jedwali tofauti.
Ufunguo Msingi ni nini?
Ufunguo msingi ni safu wima au mchanganyiko wa safu wima ambao hufafanua kwa njia ya kipekee safu mlalo katika jedwali la hifadhidata ya uhusiano. Jedwali linaweza kuwa na ufunguo mmoja msingi. Ufunguo msingi hutekeleza kikwazo kisicho dhahiri cha NOT NULL. Kwa hivyo, safu iliyo na ufunguo wa msingi haiwezi kuwa na maadili NULL ndani yake. Ufunguo msingi unaweza kuwa sifa ya kawaida katika jedwali ambayo imethibitishwa kuwa ya kipekee kama vile nambari ya usalama wa jamii, au inaweza kuwa thamani ya kipekee inayotolewa na mfumo wa usimamizi wa hifadhidata kama vile Kitambulisho cha Kipekee cha Kimataifa (GUID) katika Seva ya Microsoft SQL.
Kielelezo 02: Ufunguo Msingi
Zaidi ya hayo, kikwazo cha PRIMARY KEY katika ANSI SQL Standard hufafanua funguo msingi. Inawezekana pia kufafanua ufunguo wa msingi wakati wa kuunda meza. Kwa kuongezea hiyo, SQL inaruhusu ufunguo wa msingi kuundwa kwa safu wima moja au zaidi, na kila safu ambayo imejumuishwa kwenye ufunguo wa msingi imefafanuliwa kwa uwazi kuwa SIYO BATILI. Lakini baadhi ya mifumo ya usimamizi wa hifadhidata inahitaji kufanya safu wima za msingi kwa uwazi SIYO BATILI.
Kuna tofauti gani kati ya ufunguo wa Kigeni na ufunguo Msingi?
Ufunguo wa kigeni dhidi ya ufunguo Msingi |
|
Ufunguo wa kigeni ni safu au kikundi cha safu wima katika jedwali la hifadhidata linalohusiana ambalo hutoa uhusiano kati ya data katika majedwali mawili. | Ufunguo msingi ni safu wima maalum ya jedwali ya hifadhidata au mchanganyiko wa safu wima nyingi zinazoruhusu kutambua rekodi zote za jedwali kwa njia ya kipekee. |
NULL | |
Ufunguo wa kigeni unakubali thamani NULL. | Thamani ya msingi haiwezi kuwa NULL. |
Idadi ya Funguo | |
Jedwali linaweza kuwa na funguo nyingi za kigeni. | Jedwali linaweza kuwa na ufunguo mmoja tu msingi. |
Rudufu | |
Nakala zinaweza kuwa na nakala ya thamani ya sifa ya ufunguo wa kigeni. | Nakala mbili katika uhusiano haziwezi kuwa na thamani rudufu za sifa ya ufunguo msingi. |
Muhtasari – Ufunguo wa kigeni dhidi ya ufunguo Msingi
Tofauti kati ya ufunguo wa kigeni na ufunguo msingi ni kwamba ufunguo wa kigeni ni safu wima au seti ya safu wima zinazorejelea ufunguo msingi au ufunguo ulioteuliwa wa jedwali lingine huku ufunguo msingi ni safu au seti ya safu wima ambazo inaweza kutumika kutambua safu mlalo katika jedwali kwa njia ya kipekee.