Introducere în relațiile de baze de date

Termenul de bază de date "relațional" sau "relație" descrie modul în care sunt conectate datele din tabele.

Cei nou-veniți în lumea bazelor de date au adesea dificultăți în a vedea diferența dintre o bază de date și o foaie de calcul. Ei văd tabele de date și recunosc că bazele de date vă permit să organizați și să interogați date în moduri noi, dar nu înțelegeți semnificația relațiilor dintre datele care conferă tehnologiei bazei de date relaționale numele.

Relațiile vă permit să descrieți legăturile dintre diferitele tabele de baze de date în moduri puternice. Aceste relații pot fi apoi utilizate pentru a efectua interogări puternice de tip cross-table, cunoscute sub numele de "join".

Tipuri de relații baze de date

Există trei tipuri diferite de relații baze de date, fiecare numit în funcție de numărul de rânduri de tabel care pot fi implicate în relație. Fiecare dintre aceste trei tipuri de relații există între două tabele.

Relații de auto-referință: un caz special

Relațiile de auto-referință apar atunci când există doar un singur tabel implicat. Un exemplu obișnuit este un tabel al angajaților care conține informații despre supraveghetorul fiecărui angajat. Fiecare supraveghetor este, de asemenea, un angajat și are propriul său supraveghetor. În acest caz, există o relație de auto-referință unu-la-multe, deoarece fiecare angajat are un supraveghetor, dar fiecare supraveghetor poate avea mai mult de un angajat.

Crearea relațiilor cu cheile externe

Creați relații între tabele, specificând o cheie străină . Această cheie spune baza de date relațională cum sunt legate tabelele. În multe cazuri, o coloană din Tabelul A conține cheile primare care sunt menționate din Tabelul B.

Luați din nou în considerare exemplul meselor profesorilor și studenților. Tabelul Profesorilor conține doar o coloană de identificare, nume și coloană:

Profesori
InstructorID Numele profesorului Curs
001 John Doe Engleză
002 Jane Schmoe Math

Tabelul Studenți include un cod, un nume și o coloană de chei străine:

Elevi
Carnet de student Numele studentului Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

Coloana Teacher_FK din tabelul Studenți face referire la valoarea cheii primare a unui instructor din tabelul Profesorii.

Frecvent, designerii bazei de date vor folosi "PK" sau "FK" în numele coloanei pentru a identifica cu ușurință o cheie primară sau o coloană de chei străine.

Rețineți că aceste două tabele ilustrează o relație una-la-multe între profesori și studenți.

Relațiile și integritatea referențială

Odată ce ați adăugat o cheie străină la o masă, puteți crea o constrângere bazată pe baza de date care impune integritatea referențială între cele două tabele. Acest lucru asigură faptul că relațiile dintre tabele rămân în concordanță. Atunci când un tabel are o cheie străină la un alt tabel, conceptul de integritate referențială prevede că orice valoare cheie străină din Tabelul B trebuie să se refere la o înregistrare existentă în Tabelul A.

Implementarea relațiilor

În funcție de baza de date, implementați relațiile dintre tabele în moduri diferite. Microsoft Access oferă un expert care vă permite cu ușurință să conectați tabelele și să impuneți și integritatea referențială.

Dacă scrieți direct SQL, mai întâi creați tabelul Profesorii, declarând o coloană ID drept cheie primară:

CREATE TABLE Profesorii (

InstructorID INT AUTO_INCREMENT PRIMAR CHEIE,
Teacher_Name VARCHAR (100),
Curs VARCHAR (100)
);

Când creați tabelul Studenți, declarați că coloana Teacher_FK este o cheie străină care face referire la coloana InstructorID din tabelul Profesorilor:

CREATE TABLE Studenții (
StudentID INT AUTO_INCREMENT PRIMAR CHEIE,
Student_Name VARCHAR (100), Teacher_FK INT,
FOREIGN KEY (Teacher_FK) REFERINȚE Profesori (InstructorID))
);

Utilizarea relațiilor pentru a intra în tabele

Odată ce ați creat una sau mai multe relații în baza de date, puteți utiliza puterea lor utilizând interogările SQL JOIN pentru a combina informațiile din mai multe tabele. Cel mai obișnuit tip de conectare este SQL INNER JOIN sau o simplă conexiune. Acest tip de intrare returnează toate înregistrările care îndeplinesc condiția de conectare din mai multe tabele. De exemplu, această condiție JOIN va reveni la Student_Name, Teacher_Name și Curs unde cheia străină din tabelul Studenți se potrivește cu cheia primară din tabelul Profesorii:

SELECT Studenți.Student_Name, Teachers.Teacher_Name, Teachers.Course
Din studenți
INNER JOIN Profesori
ON Students.Teacher_FK = Teachers.InstructorID;

Această afirmație produce un tabel ca acesta:

Tabel întors din declarația de conectare SQL

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEngleză