Uvod u odnose baze podataka

Sadržaj:

Uvod u odnose baze podataka
Uvod u odnose baze podataka
Anonim

Izrazi baze podataka relacija i odnos opisuju način na koji su podaci u tabelama povezani. Relaciona baza podataka sastoji se od niza od dvije ili više tabela povezanih određenim ključem. Relaciona baza podataka se razlikuje od nestrukturiranih baza podataka, koje su uobičajene u inicijativama za velike podatke. Relacijske baze podataka imaju tendenciju da zahtijevaju stroga pravila o tome kako su tablice definirane i šta čini valjan odnos među tabelama.

Image
Image

Vrste odnosa baze podataka

Relacije vam omogućavaju da opišete veze između tabela baze podataka na moćan način. Ovi odnosi se zatim mogu iskoristiti za izvođenje moćnih upita unakrsnih tabela, poznatih kao JOIN.

Postoje tri tipa odnosa baze podataka, od kojih je svaki imenovan prema broju redova tabele uključenih u odnos. Svaki od ova tri tipa odnosa postoji između dvije tabele.

  • Odnosi jedan-na-jedan se javljaju kada svaki unos u prvoj tabeli ima samo jedan parnjak u drugoj tabeli. Relacije jedan-na-jedan rijetko se koriste jer je često efikasnije staviti sve informacije u jednu tabelu. Neki dizajneri baza podataka iskorištavaju ovaj odnos tako što kreiraju tabele koje sadrže podskup podataka iz druge tabele.
  • Odnosi jedan prema više su najčešći tip odnosa baze podataka. Oni se javljaju kada svaki zapis u tabeli A odgovara jednom ili više zapisa u tabeli B, ali svaki zapis u tabeli B odgovara samo jednom zapisu u tabeli A. Na primer, odnos između tabele Nastavnici i tabele Učenici u osnovnoj školi baza podataka bi vjerovatno bila odnos jedan-prema-više jer svaki učenik ima samo jednog nastavnika, ali svaki nastavnik ima nekoliko učenika. Ovaj dizajn jedan prema više pomaže u uklanjanju dupliciranih podataka.
  • Odnosi mnogo-prema-više nastaju kada svaki zapis u tabeli A odgovara jednom ili više zapisa u tabeli B, a svaki zapis u tabeli B odgovara jednom ili više zapisa u Tabeli A. Na primjer, odnos između tabele Nastavnici i tabele Kurseva bi vjerovatno bio mnogo-prema-više jer svaki nastavnik može predavati više od jednog predmeta, a svaki kurs može imati više od jednog instruktora.

Donja linija

Samoreferencirajući odnosi se javljaju kada je uključena samo jedna tabela. Jedan uobičajen primjer je tabela Employees koja sadrži informacije o supervizoru svakog zaposlenika. Svaki supervizor je također zaposlenik i ima supervizora. U ovom slučaju, postoji odnos jedan-prema-više samoreferenciranja, jer svaki zaposleni ima jednog supervizora, ali svaki supervizor može imati više od jednog zaposlenika.

Stvaranje odnosa sa stranim ključevima

Relacije između tabela kreirate navođenjem stranog ključa. Ovaj ključ govori relacijskoj bazi podataka kako su tablice povezane. U mnogim slučajevima, kolona u tabeli A sadrži primarne ključeve na koje se upućuje iz tabele B.

Razmotrite primjer tablica Nastavnici i Učenici. Tabela Nastavnici sadrži ID, ime i kolonu kursa:

InstructorID Teacher_Name Kurs
001 John Doe engleski
002 Jane Schmoe Matematika

Tabela Studenti uključuje ID, ime i kolonu stranog ključa:

StudentID Ime_studenta Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

Kolona Teacher_FK u tabeli Studenti referencira vrijednost primarnog ključa instruktora u tabeli Nastavnici. Dizajneri baza podataka često koriste PK ili FK u nazivu kolone da identifikuju kolonu primarnog ključa ili stranog ključa.

Ove dvije tabele ilustruju odnos jedan prema više između nastavnika i učenika.

Odnosi i referentni integritet

Nakon dodavanja stranog ključa u tabelu, kreirajte ograničenje baze podataka koje nameće referentni integritet između dve tabele. Ovaj korak osigurava da odnosi između tabela ostaju dosljedni. Kada jedna tabela ima strani ključ za drugu tabelu, referentni integritet zahteva da se bilo koja vrednost stranog ključa u tabeli B mora odnositi na postojeći zapis u tabeli A.

Implementing Relationships

U zavisnosti od vaše baze podataka, implementirat ćete odnose između tabela na različite načine. Microsoft Access obezbeđuje čarobnjaka koji vam omogućava da povežete tabele i takođe primenite referentni integritet.

Ako pišete SQL direktno, prvo kreirajte tabelu Nastavnici, deklarišući ID kolonu kao primarni ključ:

CREATE TABLE Nastavnici (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Nastavnik_Name VARCHAR(100), Kurs VARCHAR(100));

Kada kreirate tabelu Studenti, kolonu Teacher_FK deklarirate kao strani ključ koji upućuje na kolonu InstructorID u tabeli nastavnika:

CREATE TABLE Učenici (StudentID INT AUTO_INCREMENT PRIMARY KEY, Ime_studenta VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Nastavnik_FK) REFERENCE));

Upotreba veza za spajanje stolova

Nakon kreiranja jedne ili više relacija u vašoj bazi podataka, iskoristite njihovu moć korištenjem SQL JOIN upita za kombinovanje informacija iz više tabela. Najčešći tip spajanja je SQL INNER JOIN, što je jednostavno spajanje. Ova vrsta spajanja vraća sve zapise koji ispunjavaju uslov spajanja iz jedne ili više tabela.

Na primjer, ovaj uvjet JOIN vraća Student_Name, Teacher_Name i Course, gdje se strani ključ u tabeli Studenti poklapa sa primarnim ključem u tabeli Nastavnici:

SELECT Students. Student_Name, Teachers. Teacher_Name, Teachers. Course

FROM Students

INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;

Ova izjava proizvodi tabelu otprilike ovako:

Student_Name Teacher_Name Kurs
Lowell Smith John Doe engleski
Brian Short John Doe engleski
Corky Mendez Jane Schmoe Matematika
Monica Jones John Doe engleski

Preporučuje se: