Izraz podatkovne baze "relacijski" ali "povezava" opisuje način povezovanja podatkov v tabelah.
Novinci v svetu podatkovnih baz pogosto težko vidijo razliko med bazo podatkov in preglednico. Prikazujejo tabele podatkov in prepoznajo, da lahko zbirke podatkov organizirajo in poizvedujejo podatke na nove načine, vendar ne poznajo pomembnosti odnosov med podatki, ki dajejo tehnologiji relacijskih baz podatkov njegovo ime.
Odnosi vam omogočajo, da na močne načine opisujete povezave med različnimi tabelami baz podatkov. Ta razmerja se nato lahko vzamejo za izvajanje močnih navzkrižnih pregledov, znanih kot povezovalni elementi.
Vrste podatkovnih odnosov
Obstajajo tri različne vrste odnosov z bazami podatkov, od katerih je vsaka imenovana glede na število vrstic v tabeli, ki so lahko vključeni v razmerje. Vsaka od teh treh vrst povezav obstaja med dvema tabelama.
- Odnosi z enim sogovornikom se pojavijo, ko vsak vnos v prvi tabeli vsebuje eno in le eno, v drugi tabeli. Odnosi z enim sogovornikom se redko uporabljajo, ker je pogosto bolj učinkovito, če preprosto daste vse informacije v eno samo tabelo. Nekateri oblikovalci baz podatkov izkoristijo to razmerje z ustvarjanjem tabel, ki vsebujejo podmnožico podatkov iz druge tabele.
- Odnosi med enimi in mnogimi so najpogostejši tip odnosa z bazami podatkov. Pojavijo se, ko vsak zapis v tabeli A ustreza enemu ali več zapisom v tabeli B, vendar vsak zapis v tabeli B ustreza samo enemu zapisu v tabeli A. Na primer, razmerje med tabelo učiteljev in tabelo študentov v osnovni šoli baza podatkov bi bila verjetno enostopenjski odnos, saj ima vsak učenec samo enega učitelja, vendar ima vsak učitelj več učencev. Ta enostopenjski model pomaga odpraviti podvojene podatke.
- Odnosi med mnogimi in mnogimi se pojavijo, ko vsak zapis v tabeli A ustreza enemu ali več zapisom v tabeli B in vsak zapis v tabeli B ustreza enemu ali več zapisom v tabeli A. Na primer, odnos med učitelji in tečaj miza bi bila verjetno veliko, saj vsak učitelj lahko poučuje več kot en tečaj in vsak tečaj ima lahko več kot enega inštruktorja.
Odnosi z lastnimi referencami: poseben primer
Samoreferenčni odnosi se pojavijo, ko je vključena samo ena tabela. Eden pogostih primerov je tabela zaposlenih, ki vsebuje informacije o nadzorniku vsakega zaposlenega. Vsak nadzornik je tudi zaposlen in ima svojega nadzornika. V tem primeru obstaja enostopenjsko samoreferenčno razmerje, saj ima vsak zaposleni en supervizor, vendar ima vsak nadzornik več kot enega zaposlenega.
Ustvarjanje odnosov s tujimi ključi
Ustvarjate odnose med tabelami tako, da določite tuji ključ. Ta ključ pove relacijsko bazo podatkov, kako so tabel povezane. V mnogih primerih stolpec v tabeli A vsebuje primarne ključe, na katere se sklicuje tabela B.
Ponovno razmislite o primeru tabele učiteljev in študentov. Tabela učiteljev vsebuje le ID, ime in stolpec tečaja:
InstructorID | Teacher_Name | Seveda |
---|---|---|
001 | John Doe | angleščina |
002 | Jane Schmoe | Matematika |
Tabela Študent vsebuje stolpec ID, ime in tuji ključ:
StudentID | Študentsko ime | Učitelj_FK |
---|---|---|
0200 | Lowell Smith | 001 |
0201 | Brian Short | 001 |
0202 | Corky Mendez | 002 |
0203 | Monica Jones | 001 |
Stolpec Teacher_FK v tabeli Študenti se nanaša na primarno vrednost ključa inštruktorja v tabeli Učitelji.
Pogosto oblikovalci baze podatkov v imenu stolpca uporabijo "PK" ali "FK", s čimer lahko zlahka prepoznajo primarni ključ ali stolpec v tujem ključu.
Upoštevajte, da ti dve tabeli ponazarjata odnos med učitelji in učenci.
Odnosi in referenčna integriteta
Ko v tabelo dodate tuji ključ, lahko ustvarite omejitev baze podatkov, ki uveljavlja referenčno integriteto med dvema tabelama. To zagotavlja, da so odnosi med tabelami dosledni. Ko ima ena tabela tuji ključ v drugo tabelo, koncept referenčne integritete navaja, da se mora vsaka vrednost zunanjega ključa v tabeli B nanašati na obstoječ zapis v tabeli A.
Izvajanje odnosov
Odvisno od vaše baze podatkov izvajate odnose med tabelami na različne načine. Microsoft Access ponuja čarovnika, ki vam preprosto omogoča povezovanje tabel in tudi uveljavljanje referenčne integritete.
Če pišete SQL neposredno, najprej ustvarite tabelo Učitelji, pri čemer navedete stolpec ID kot primarni ključ:
Ustvarite tabelo Učitelji (
InstructorID INT AUTO_INCREMENT PRIMARNI KLJUČ,
Teacher_Name VARCHAR (100),
Tečaj VARCHAR (100)
);
Ko ustvarite tabelo študentov, prijavite stolpec Teacher_FK kot tuj ključ, ki se nanaša na stolpec TeachctorID v učilnici:
CREATE TABLE Študenti (
StudentID INT AUTO_INCREMENT PRIMARNI KLJUČ,
Student_Name VARCHAR (100), Teacher_FK INT,
TUJI KLJUČ (Teacher_FK) REFERENCE Učitelji (InstructorID))
);
Uporaba odnosov v pridruženih tabelah
Ko ustvarite eno ali več povezav v svoji bazi podatkov, lahko z uporabo SQL JOIN poizvedb povežete svojo moč z združevanjem informacij iz več tabel. Najpogostejša vrsta pridružitve je SQL INNER JOIN ali preprosta povezava. Ta vrsta pridružitve vrne vse zapise, ki izpolnjujejo pogoj združitve iz več tabel. Na primer ta pogoj JOIN bo vrnil Student_Name, Teacher_Name in tečaj, če se tuji ključ tabele študentov ujema z primarnim ključem v tabeli Učitelji:
SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
Od študentov
INNER JOIN Učitelji
ON Students.Teacher_FK = Teachers.InstructorID;
Ta izjava daje tabelo nekaj takega:
Vrnjena tabela iz izjave SQL pridružitve
Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish