Što je odnos baze podataka?

Sadržaj:

Što je odnos baze podataka?
Što je odnos baze podataka?
Anonim

Odnos se uspostavlja između dvije tablice baze podataka kada jedna tablica koristi strani ključ koji upućuje na primarni ključ druge tablice. Ovo je osnovni koncept iza izraza relacijska baza podataka.

Kako strani ključ radi za uspostavljanje odnosa

Primarni ključ jedinstveno identificira svaki zapis u tablici. To je tip ključa kandidata koji je obično prvi stupac u tablici i može ga baza podataka automatski generirati kako bi se osigurala njegova jedinstvenost. Strani ključ je drugi kandidatski ključ (ne primarni ključ) koji se koristi za povezivanje zapisa s podacima u drugoj tablici.

Na primjer, razmotrite ove dvije tablice koje identificiraju koji učitelj predaje koji predmet. Ovdje je primarni ključ tablice Tečajevi Course_ID. Njegov strani ključ je Teacher_ID:

ID_tečaja Course_Name ID_učitelja
Tečaj_001 Biologija Učitelj_001
Tečaj_002 Matematika Učitelj_002
Tečaj_003 engleski Učitelj_003

Možete vidjeti da strani ključ u tečajevima odgovara primarnom ključu u učiteljima:

ID_učitelja Ime_učitelja
Učitelj_001 Carmen
Učitelj_002 Veronika
Učitelj_003 Jorge

Možemo reći da je vanjski ključ Teacher_ID pomogao uspostaviti odnos između tablica Tečajevi i Učitelji.

Image
Image

Vrste odnosa baze podataka

Upotrebom stranih ključeva ili drugih ključeva kandidata možete implementirati tri vrste odnosa između tablica:

Jedan-na-jedan

Ova vrsta odnosa dopušta samo jedan zapis na svakoj strani odnosa. Primarni ključ odnosi se samo na jedan zapis (ili nijedan) u drugoj tablici. Na primjer, u braku svaki supružnik ima samo još jednog supružnika. Ova vrsta odnosa može se implementirati u jednu tablicu i stoga ne koristi strani ključ.

Jedan prema više

Odnos jedan prema više dopušta da jedan zapis u jednoj tablici bude povezan s više zapisa u drugoj tablici. Razmislite o tvrtki s bazom podataka koja ima tablice kupaca i narudžbi.

Jedan kupac može kupiti više narudžbi, ali se jedna narudžba ne može povezati s više kupaca. Stoga bi tablica Narudžbe sadržavala strani ključ koji odgovara primarnom ključu tablice Kupci, dok tablica Kupci ne bi imala strani ključ koji bi upućivao na tablicu Narudžbe.

Mnogo-više

Ovo je složen odnos u kojem se mnogi zapisi u tablici mogu povezati s mnogim zapisima u drugoj tablici. Na primjer, naša tvrtka vjerojatno treba tablice kupaca i narudžbi, a vjerojatno također treba i tablicu proizvoda.

Opet, odnos između tablice Kupci i Narudžbe je jedan prema više, ali razmotrite odnos između tablice Narudžbe i Proizvodi. Narudžba može sadržavati više proizvoda, a proizvod može biti povezan s više narudžbi budući da nekoliko kupaca može poslati narudžbu koja sadrži neke od istih proizvoda. Ova vrsta odnosa zahtijeva najmanje tri tablice.

Zašto su odnosi baze podataka važni?

Uspostavljanje dosljednih odnosa između tablica baze podataka pomaže u osiguravanju integriteta podataka, doprinoseći normalizaciji baze podataka. Na primjer, što ako nismo povezali nijednu tablicu putem stranog ključa i umjesto toga kombinirali podatke u tablicama Tečajevi i Nastavnici, ovako:

ID_učitelja Ime_učitelja Tečaj
Učitelj_001 Carmen Biologija, matematika
Učitelj_002 Veronika Matematika
Učitelj_003 Jorge engleski

Ovaj dizajn je nefleksibilan i krši prvo načelo normalizacije baze podataka, First Normal Form, koji navodi da svaka ćelija tablice treba sadržavati jedan, diskretni dio podataka.

Ili smo možda odlučili dodati drugi zapis za Carmen, kako bismo nametnuli 1NF:

ID_učitelja Ime_učitelja Tečaj
Učitelj_001 Carmen Biologija
Učitelj_001 Carmen Matematika
Učitelj_002 Veronika Matematika
Učitelj_003 Jorge engleski

Ovo je još uvijek slab dizajn, uvodi nepotrebno dupliciranje i ono što se naziva anomalijama umetanja podataka, što znači da bi mogao pridonijeti nekonzistentnim podacima. Na primjer, ako učitelj ima više zapisa, što ako neke podatke treba urediti, ali osoba koja vrši uređivanje podataka ne shvaća da postoji više zapisa? Tablica bi tada sadržavala različite podatke za istu osobu, bez ikakvog jasnog načina da se to identificira ili izbjegne.

Razdvajanje ove tablice u dvije tablice, Nastavnici i Tečajevi, stvara pravilan odnos između podataka i stoga pomaže u osiguravanju dosljednosti i točnosti podataka.

Preporučeni: