Utangulizi wa Mahusiano ya Hifadhidata

Orodha ya maudhui:

Utangulizi wa Mahusiano ya Hifadhidata
Utangulizi wa Mahusiano ya Hifadhidata
Anonim

Masharti ya hifadhidata ya uhusiano na uhusiano yanaelezea jinsi data katika majedwali inavyounganishwa. Hifadhidata ya uhusiano ina mfululizo wa jedwali mbili au zaidi zilizounganishwa na ufunguo maalum. Hifadhidata ya uhusiano inatofautiana na hifadhidata isiyo na muundo, ambayo ni ya kawaida katika mipango mikubwa ya data. Hifadhidata za uhusiano huwa zinahitaji sheria kali kuhusu jinsi majedwali yanavyofafanuliwa na ni nini kinachojumuisha uhusiano halali kati ya majedwali.

Image
Image

Aina za Mahusiano ya Hifadhidata

Mahusiano hukuruhusu kuelezea miunganisho kati ya majedwali ya hifadhidata kwa njia thabiti. Mahusiano haya yanaweza kutumiwa kutekeleza maswali yenye nguvu ya jedwali mtambuka, yanayojulikana kama JOIN.

Kuna aina tatu za uhusiano wa hifadhidata, kila moja ikitajwa kulingana na idadi ya safu mlalo za jedwali zinazohusika katika uhusiano. Kila moja ya aina hizi tatu za uhusiano zipo kati ya majedwali mawili.

  • Mahusiano ya mtu-kwa-mmoja hutokea wakati kila ingizo katika jedwali la kwanza lina mwenza mmoja tu katika jedwali la pili. Mahusiano ya mtu na mtu hayatumiki sana kwa sababu mara nyingi ni bora zaidi kuweka habari zote kwenye jedwali moja. Baadhi ya wabuni wa hifadhidata huchukua fursa ya uhusiano huu kwa kuunda majedwali ambayo yana sehemu ndogo ya data kutoka kwa jedwali lingine.
  • Mahusiano ya mtu-kwa-wengi ndio aina ya kawaida ya uhusiano wa hifadhidata. Yanatokea wakati kila rekodi katika Jedwali A inalingana na rekodi moja au zaidi katika Jedwali B, lakini kila rekodi katika Jedwali B inalingana na rekodi moja tu katika Jedwali A. Kwa mfano, uhusiano kati ya jedwali la Walimu na jedwali la Wanafunzi katika shule ya msingi. hifadhidata inaweza kuwa uhusiano wa mtu mmoja kwa wengi kwa sababu kila mwanafunzi ana mwalimu mmoja tu, lakini kila mwalimu ana wanafunzi kadhaa. Muundo huu wa moja hadi nyingi husaidia kuondoa data iliyorudiwa.
  • Mahusiano ya wengi kwa wengi hutokea wakati kila rekodi katika Jedwali A inalingana na rekodi moja au zaidi katika Jedwali B, na kila rekodi katika Jedwali B inalingana na rekodi moja au zaidi. katika Jedwali A. Kwa mfano, uhusiano kati ya jedwali la Walimu na jedwali la Kozi huenda ukawa wengi kwa wengi kwa sababu kila mwalimu anaweza kufundisha zaidi ya kozi moja, na kila kozi inaweza kuwa na mwalimu zaidi ya mmoja.

Mstari wa Chini

Mahusiano ya kujirejelea hutokea wakati kuna jedwali moja tu linalohusika. Mfano mmoja wa kawaida ni meza ya Wafanyakazi ambayo ina taarifa kuhusu msimamizi wa kila mfanyakazi. Kila msimamizi pia ni mfanyakazi na ana msimamizi. Katika hali hii, kuna uhusiano wa mtu mmoja hadi wengi wa kujirejelea, kwani kila mfanyakazi ana msimamizi mmoja, lakini kila msimamizi anaweza kuwa na zaidi ya mfanyakazi mmoja.

Kujenga Uhusiano na Funguo za Kigeni

Unaunda uhusiano kati ya majedwali kwa kubainisha ufunguo wa kigeni. Ufunguo huu unaambia hifadhidata ya uhusiano jinsi majedwali yanahusiana. Mara nyingi, safu wima katika Jedwali A huwa na funguo msingi ambazo zimerejelewa kutoka Jedwali B.

Fikiria mfano wa jedwali la Walimu na Wanafunzi. Jedwali la Walimu lina kitambulisho, jina na safu wima ya kozi:

Kitambulisho cha Mwalimu Jina_la_Mwalimu Kozi
001 John Doe Kiingereza
002 Jane Schmoe Hesabu

Jedwali la Wanafunzi linajumuisha kitambulisho, jina na safu wima ya ufunguo wa kigeni:

KITAMBULISHO CHA Mwanafunzi Jina_la_Mwanafunzi Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

Safu wima Teacher_FK katika jedwali la Wanafunzi hurejelea thamani kuu ya msingi ya mwalimu katika jedwali la Walimu. Mara kwa mara, wabuni wa hifadhidata hutumia PK au FK katika jina la safu ili kutambua ufunguo msingi au safu wima ya ufunguo wa kigeni.

Jedwali hizi mbili zinaonyesha uhusiano kati ya walimu na wanafunzi.

Mahusiano na Uadilifu Marejeleo

Baada ya kuongeza ufunguo wa kigeni kwenye jedwali, weka kikwazo cha hifadhidata ambacho kinatekeleza uadilifu wa marejeleo kati ya majedwali haya mawili. Hatua hii inahakikisha kwamba uhusiano kati ya jedwali unabaki thabiti. Jedwali moja linapokuwa na ufunguo wa kigeni kwa jedwali lingine, uadilifu wa urejeleaji unahitaji kwamba thamani yoyote ya ufunguo wa kigeni katika Jedwali B lazima irejelee rekodi iliyopo katika Jedwali A.

Kutekeleza Mahusiano

Kulingana na hifadhidata yako, utatekeleza uhusiano kati ya majedwali kwa njia tofauti. Microsoft Access hutoa mchawi unaokuruhusu kuunganisha majedwali na pia kutekeleza uadilifu wa marejeleo.

Ikiwa unaandika SQL moja kwa moja, kwanza unda jedwali la Walimu, ukitangaza safu wima ya kitambulisho kuwa ufunguo msingi:

CREATE TABLE Teachers (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Jina_la_Mwalimu VARCHAR(100), Kozi VARCHAR(100));

Unapounda jedwali la Wanafunzi, unatangaza safu wima ya Mwalimu_FK kuwa ufunguo wa kigeni unaorejelea safu wima ya Kitambulisho cha Mwalimu katika jedwali la Walimu:

CREATE TABLE Wanafunzi (Mwanafunzi INT AUTO_INCREMENT PRIMARY KEY, Jina_la_Mwanafunzi VARCHAR(100), Teacher_FK INT, FUNGUO YA KIGENI (Walimu_KITAMBULISHO));

Kutumia Mahusiano Kujiunga na Majedwali

Baada ya kuunda uhusiano mmoja au zaidi katika hifadhidata yako, tumia uwezo wao kwa kutumia hoja za SQL JOIN ili kuchanganya taarifa kutoka kwa majedwali mengi. Aina ya kawaida ya kujiunga ni SQL INNER JOIN, ambayo ni kujiunga kwa urahisi. Aina hii ya kujiunga hurejesha rekodi zote zinazotimiza masharti ya kujiunga kutoka kwa jedwali moja au zaidi.

Kwa mfano, sharti hili la JIUNGE hurejesha Jina_la_Mwanafunzi, Jina_La_Mwalimu, na Kozi, ambapo ufunguo wa kigeni katika jedwali la Wanafunzi unalingana na ufunguo msingi katika jedwali la Walimu:

CHAGUA Wanafunzi. Jina_la_Mwanafunzi, Walimu. Jina_la_Mwalimu, Walimu. Kozi

KUTOKA KWA Wanafunzi

INNER JIUNGE NA WalimuKWA Wanafunzi. Mwalimu_FK=Walimu. Kitambulisho cha Mwalimu;

Kauli hii inatoa jedwali kitu kama hiki:

Jina_la_Mwanafunzi Jina_la_Mwalimu Kozi
Lowell Smith John Doe Kiingereza
Brian Short John Doe Kiingereza
Corky Mendez Jane Schmoe Hesabu
Monica Jones John Doe Kiingereza

Ilipendekeza: