Ievads datu bāzu attiecībās

Datubāzes nosaukums "relāciju" vai "attiecības" apraksta to, kā dati tabulās ir savienoti.

Jaunpienācējiem datu bāzu pasaulē bieži vien ir grūti saskatīt atšķirību starp datubāzi un izklājlapu. Viņi redz datu tabulas un atzīst, ka datu bāzes ļauj jums organizēt un pieprasīt datus jaunos veidos, bet nesaprot, cik liela nozīme ir sakarībām starp datiem, kas piešķir relāciju datubāzes tehnoloģiju tā nosaukumu.

Attiecības ļauj efektīvi aprakstīt savienojumus starp dažādām datu bāzes tabulām. Pēc tam šīs attiecības var tikt izmantotas, lai veiktu jaudīgus pārrobežu tabulas vaicājumus, kurus sauc par savienojumiem.

Datubāzu attiecību veidi

Ir trīs dažādi datu bāzu attiecību veidi, katrs no tiem tiek norādīts atbilstoši tabulu rindu skaitam, kas var būt saistīts ar attiecībām. Katrs no šiem trim saikņu veidiem pastāv starp divām tabulām.

Pašreferences attiecības: īpašs gadījums

Pašreferatīvās attiecības rodas, ja ir iesaistīta tikai viena tabula. Viens kopīgs piemērs ir darbinieku tabula, kurā ir informācija par katra darbinieka vadītāju. Katrs vadītājs ir arī darbinieks un viņam ir savs uzraugs. Šajā gadījumā ir savstarpēji saistītas savstarpējas attiecības, jo katram darbiniekam ir viens vadītājs, bet katram uzraugam var būt vairāk nekā viens darbinieks.

Radīt attiecības ar ārvalstu taustiņiem

Jūs izveidojat attiecības starp tabulām, norādot ārējo atslēgu . Šī atslēga norāda relāciju datubāzei, kā tabulas ir saistītas. Daudzos gadījumos A tabulas aile satur primārās atslēgas, uz kurām attiecas B tabula.

Vēlreiz apsveriet Skolotāju un studentu tabulu piemēru. Skolotāju tabulā ir tikai ID, vārds un kursa aile:

Skolotāji
InstructorID Skolotāja vārds Kurss
001 John Doe Angļu
002 Jane Schmoe Matemātika

Studentu tabulā ir ID, vārds un ārējās atslēgas kolonna:

Studenti
StudentID Studenta vārds Teacher_FK
0200 Lowells Smits 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monika Jonesa 001

Tabulā Studenti sleja Teacher_FK norāda skolotāju tabulas instruktora primāro atslēgas vērtību .

Bieži vien datu bāzes projektētāji kolonnas nosaukumā izmantos "PK" vai "FK", lai viegli identificētu primāro atslēgu vai ārējās atslēgas kolonnu.

Ņemiet vērā, ka šīs divas tabulas ilustrē skolotāju un studentu savstarpējo saistību.

Attiecības un atsauces integritāte

Kad esat pievienojis ārējo atslēgu tabulā, varat izveidot datubāzes ierobežojumu, kas nodrošina abpusēju tabulu savstarpēju atsaucību. Tas nodrošina, ka attiecības starp tabulām paliek konsekventi. Ja vienam tabulam ir ārējā atslēga citai tabulai, atsauces integritātes koncepcija nosaka, ka jebkurai ārējās atslēgas vērtībai B tabulā jāattiecas uz esošo ierakstu A tabulā.

Īstenošanas attiecības

Atkarībā no datubāzes, jūs dažādos veidos lietojat tabulas. Microsoft Access nodrošina vedni, kas viegli ļauj saistīt tabulas un arī nodrošināt atsauces integritāti.

Ja jūs rakstāt SQL tieši, vispirms izveidojiet tabulu "Skolotāji", pasludinot ID kolonnu par primāro atslēgu:

CREATE TABLE Skolotāji (

InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Teacher_Name VARCHAR (100),
Kurss VARCHAR (100)
);

Izveidojot Studentu tabulu, paskaidrojiet, ka Teacher_FK sleja ir svešvārdi, kas atsaucas uz InstructorID kolonnu Skolotāju tabulā:

CREATE TABLE Studenti (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
ĀRĒJĀ KEY (Teacher_FK) ATSAUCES Skolotāji (InstructorID))
);

Izmantojot attiecības, lai pievienotos tabulām

Kad esat izveidojis vienu vai vairākas attiecības savā datubāzē, varat izmantot savu jaudu, izmantojot SQL JOIN vaicājumus, lai apvienotu informāciju no vairākām tabulām. Visizplatītākais pievienošanās veids ir SQL INNER JOIN vai vienkārša pievienošanās. Šis savienojuma veids atgriež visus ierakstus, kas atbilst pievienošanās nosacījumiem, no vairākām tabulām. Piemēram, šis JOIN nosacījums atgriež Student_Name, Teacher_Name un Course, kur ārējā atslēga Studentu tabulā atbilst Primārās atslēgas Skolotāju tabulai:

SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
No studentiem
INNER JOIN Skolotāji
ON Studenti.Teacher_FK = Skolotāji. InstruktorsID;

Šis paziņojums rada tabulu, kas līdzīgs šim:

Atgrieztais tabula no SQL pievienošanās paziņojuma

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish