Uvod u baze podataka

Naziv baze podataka "relacijski" ili "odnos" opisuje način povezivanja podataka u tablicama.

Novi korisnici u svijetu baza podataka često teško vide razlike između baze podataka i proračunske tablice. Oni vide tablice podataka i prepoznaju da baze podataka omogućuju organiziranje i upitivanje podataka na nove načine, ali ne shvaćaju važnost odnosa između podataka koji tehnologiji relacijske baze podataka omogućuju.

Odnosi omogućuju opisivanje veza između različitih tablica baze podataka na snažne načine. Ti se odnosi zatim mogu iskoristiti za obavljanje snažnih upita za unakrsne tablice, poznati kao spojevi.

Vrste odnosa s bazama podataka

Postoje tri različite vrste odnosa s bazom podataka, od kojih se svaka naziva prema broju redaka tablice koje mogu biti uključene u odnos. Svaka od tih tri vrste odnosa postoji između dvije tablice.

Odnosi koji upućuju na sebe: Poseban slučaj

Relacije koje se odnose samo na referenciranje pojavljuju se kada je uključena samo jedna tablica. Jedan od uobičajenih primjera je tablica zaposlenika koja sadrži informacije o nadređenom svakom zaposleniku. Svaki nadglednik je također zaposlenik i ima vlastiti nadzornik. U ovom slučaju, postoji jedan-na-mnogi self-referenciranje odnos, kao i svaki zaposlenik ima jedan nadzornik, ali svaki supervizor svibanj imati više od jednog zaposlenika.

Stvaranje odnosa s stranim ključevima

Možete stvoriti veze između tablica određivanjem stranog ključa. Taj ključ navodi relacijsku bazu podataka kako se tablice odnose. U mnogim slučajevima, stupac u tablici A sadrži primarne ključeve navedene u tablici B.

Ponovno razmotrite primjer tablica učitelja i učenika. Tablica Učitelji sadrži samo ID, naziv i stupac kolegija:

nastavnici
InstructorID Nastavnik TEACHER_NAME Tečaj
001 John Doe Engleski
002 Jane Schmoe matematika

Tablica studenata sadrži ID, naziv i stupac s vanjskim ključem:

studenti
Studentska iskaznica Ime studenta Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

Stupac Teacher_FK u tablici Studenti upućuje na vrijednost primarne ključeve instruktora u tablici Učitelji.

Često će dizajneri baze podataka upotrebljavati "PK" ili "FK" u nazivu stupca kako bi lako identificirali primarni ključ ili stupac stranog ključa.

Imajte na umu da ove dvije tablice ilustriraju jedan-na-mnogi odnos između učitelja i učenika.

Odnosi i referentni integritet

Nakon dodavanja stranog ključa u tablicu, tada možete stvoriti ograničenje baze podataka koja provodi referencijalni integritet između dvije tablice. To osigurava da odnosi između tablica ostanu konzistentni. Kada jedna tablica ima strani ključ za drugu tablicu, koncept referencijalnog integriteta navodi da se svaka vrijednost stranog ključa u tablici B mora odnositi na postojeći zapis u tablici A.

Provedbene odnose

Ovisno o vašoj bazi podataka, veze između tablica provodite na različite načine. Microsoft Access pruža čarobnjak koji vam omogućuje jednostavno povezivanje tablica i provođenje referentnog integriteta.

Ako izravno pišete SQL, prvo biste izradili tablicu Učitelji, izjavljujući da je ID stupac primarni ključ:

CREATE TABLE Nastavnici (

InstructorID INT AUTO_INCREMENT PRIMARNI KEY,
Učitelj_Name VARCHAR (100),
Tečaj VARCHAR (100)
);

Kada izradite tablicu studenata, izjavljujete da je stupac Teacher_FK identični ključ koji se odnosi na stupac instruktora u tablici Učitelja:

CREATE TABLE Students (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
FORUMNA STRANA (Teacher_FK) REFERENCE Nastavnici (InstructorID))
);

Korištenje odnosa za pridruživanje tablicama

Nakon što izradite jedan ili više veza u bazi podataka, možete iskoristiti njihovu snagu pomoću SQL JOIN upita kako biste kombinirali podatke s više tablica. Najčešći tip pridruživanja je SQL INNER JOIN ili jednostavno pridruživanje. Ova vrsta pridruživanja vraća sve zapise koji udovoljavaju uvjetu pridruživanja iz više tablica. Na primjer, ovaj uvjet JOIN vratit će Student_Name, Teacher_Name i Course gdje strani ključ u tablici Studentska odgovara primarnom ključu u tablici Teachers:

SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
OD UČENIKA
INNER JOIN Učitelji
ON Students.Teacher_FK = Teachers.InstructorID;

Ova izjava proizvodi tablicu ovako:

Vraćena tablica iz izjave SQL Join

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish