Neno la database "uhusiano" au "uhusiano" linaelezea namna data katika meza imeunganishwa.
Wahamiaji kwenye ulimwengu wa daima huwa na wakati mgumu kuona tofauti kati ya database na sahajedwali. Wanaona meza za data na kutambua kwamba orodha hizi zinakuwezesha kuandaa na kuuliza data kwa njia mpya, lakini hushindwa kuelewa umuhimu wa mahusiano kati ya data ambayo hutoa teknolojia ya database ya uhusiano jina lake.
Uhusiano unawezesha kuelezea uhusiano kati ya meza tofauti za database kwa njia za nguvu. Mahusiano haya yanaweza kufutwa ili kufanya maswali yenye nguvu ya msalaba, inayojulikana kama kujiunga.
Aina ya Mahusiano ya Database
Kuna aina tatu tofauti za mahusiano ya database, kila mmoja anayeitwa kwa mujibu wa idadi ya safu ya meza inayoweza kuhusishwa katika uhusiano huo. Aina ya aina hizi tatu za uhusiano zipo kati ya meza mbili.
- Uhusiano mmoja hadi mmoja hutokea wakati kila kuingia kwenye meza ya kwanza ina moja, na moja tu, mwenzake katika meza ya pili. Uhusiano wa moja kwa moja hauna kutumika mara kwa mara kwa sababu mara nyingi ni rahisi zaidi kuweka habari zote katika meza moja. Waandishi wengine wa database wanapata fursa ya uhusiano huu kwa kuunda meza zilizo na sehemu ndogo ya data kutoka kwenye meza nyingine.
- Uhusiano mmoja hadi wengi ni aina ya kawaida ya uhusiano wa database. Zinatokea wakati kila rekodi katika Jedwali A inafanana na rekodi moja au zaidi katika Jedwali B, lakini rekodi kila katika Jedwali B inalingana na rekodi moja tu katika Jedwali A. Kwa mfano, uhusiano kati ya meza ya Walimu na meza ya Wanafunzi katika shule ya msingi database inaweza kuwa uhusiano mmoja hadi wengi, kwa sababu kila mwanafunzi ana mwalimu mmoja tu, lakini kila mwalimu ana wanafunzi wengi. Muundo mmoja hadi wengi husaidia kuondoa data zilizopigwa.
- Mahusiano mengi na mengi hutokea wakati kila rekodi katika Jedwali A inafanana na rekodi moja au zaidi katika Jedwali B, na kila rekodi katika Jedwali B inafanana na rekodi moja au zaidi katika Jedwali A. Kwa mfano, uhusiano kati ya Walimu na Mafunzo meza inaweza kuwa wengi kwa wengi kwa kila mwalimu anaweza kufundisha zaidi ya kozi moja, na kila kozi inaweza kuwa na mwalimu zaidi ya moja.
Mahusiano ya kujitegemea: Uchunguzi maalum
Mahusiano ya kujitegemea hutokea wakati kuna meza moja tu inayohusika. Mfano mmoja wa kawaida ni meza ya Waajiri ambayo ina habari kuhusu msimamizi wa kila mfanyakazi. Kila msimamizi pia ni mfanyakazi na ana msimamizi wake mwenyewe. Katika suala hili, kuna uhusiano wa moja kwa moja binafsi, kama kila mfanyakazi ana msimamizi mmoja, lakini kila msimamizi anaweza kuwa na mfanyakazi zaidi ya moja.
Kujenga Uhusiano na Keki za Nje
Unaunda uhusiano kati ya meza kwa kubainisha ufunguo wa kigeni . Hii ufunguo unaelezea database ya uhusiano jinsi meza zinavyohusiana. Mara nyingi, safu katika Jedwali A ina funguo za msingi ambazo zimeandikwa kutoka kwenye Jedwali B.
Fikiria tena mfano wa meza za Walimu na Wanafunzi. Jedwali la Walimu lina ID, jina, na safu ya kozi.
| InstructorID | Mwalimu_Name | Kozi |
|---|---|---|
| 001 | John Doe | Kiingereza |
| 002 | Jane Schmoe | Math |
Jedwali la wanafunzi linajumuisha ID, jina, na safu ya ufunguo wa kigeni:
| Mwanafunzi | Mwanafunzi_Name | Mwalimu_FK |
|---|---|---|
| 0200 | Lowell Smith | 001 |
| 0201 | Brian Short | 001 |
| 0202 | Corky Mendez | 002 |
| 0203 | Monica Jones | 001 |
Safu Teacher_FK katika meza ya Wanafunzi inaonyesha thamani muhimu ya mwalimu katika meza ya Walimu.
Mara kwa mara, wabunifu wa database watatumia "PK" au "FK" katika jina la safu ili kutambua kwa urahisi ufunguo wa msingi au safu ya ufunguo wa kigeni.
Kumbuka kwamba meza hizi mbili zinaonyesha uhusiano mmoja hadi wengi kati ya walimu na wanafunzi.
Uhusiano na uaminifu wa kutafakari
Mara baada ya kuongezea ufunguo wa kigeni kwenye meza, unaweza kuunda kikwazo cha database ambacho kinasisitiza uadilifu wa kutaja kati ya meza mbili. Hii inahakikisha kuwa mahusiano kati ya meza hubakia thabiti. Wakati meza moja ina ufunguo wa kigeni kwenye meza nyingine, dhana ya utimilifu wa kutaja inasema kuwa thamani yoyote ya nje ya kigeni katika Jedwali B inapaswa kutaja rekodi iliyopo katika Jedwali A.
Utekelezaji wa Mahusiano
Kulingana na database yako, unatekeleza uhusiano kati ya meza kwa njia tofauti. Microsoft Access hutoa wizara ambayo inaruhusu urahisi kuunganisha meza na pia kutekeleza utimilifu wa kutafakari.
Ikiwa unaandika SQL moja kwa moja, ungependa kuunda meza ya Walimu kwanza, wakitangaza safu ya ID kuwa msingi muhimu:
Unda TABLE Walimu (
InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Mwalimu_Name VARCHAR (100),
Kozi VARCHAR (100)
);
Unapounda meza ya Wanafunzi, unasema safu ya Mwalimu_FK kuwa kiini cha kigeni kinachoelezea safu ya InstructorID katika meza ya Walimu:
Unda TABLE Wanafunzi (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Mwanafunzi_Name VARCHAR (100), Teacher_FK INT,
KIJANI KIWE (Teacher_FK) REFERENCES Walimu (InstructorID))
);
Kutumia Mahusiano Kujiunga na Majedwali
Mara baada ya kuunda uhusiano mmoja au zaidi kwenye databana yako, unaweza kutumia uwezo wao kwa kutumia SQL JOIN maswali kuchanganya habari kutoka kwa meza nyingi. Aina ya kawaida ya kujiunga ni SQL INNER JOIN, au kujiunga rahisi. Aina hii ya kujiunga inarudi rekodi zote ambazo zinakabiliwa na hali ya kujiunga kutoka kwa meza nyingi. Kwa mfano, hali hii ya JOIN itarudi Student_Name, Teacher_Name, na Kozi ambapo ufunguo wa kigeni katika Wafanyabiashara meza umefananisha ufunguo wa msingi katika meza ya Walimu:
Chagua Wanafunzi.Student_Name, WalimuTeacher_Name, Teachers.Course
Kutoka kwa Wanafunzi
INNER JOIN Walimu
ILIYO Wanafunzi. Mwalimu_FK = WalimuInstructorID;
Taarifa hii inazalisha meza kama kitu hiki:
Jedwali la Kurudi kutoka kwa Taarifa ya Kujiunga SQL
Mwanafunzi_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish