Inleiding tot databasisverhoudings

Die databasis term "relasionele" of "verhouding" beskryf die manier waarop data in tabelle verbind word.

Nuwelinge in die wêreld van databasisse het dikwels 'n moeilike tyd om die verskil tussen 'n databasis en 'n sigblad te sien. Hulle sien tabelle van data en erken dat databasisse jou toelaat om data op nuwe maniere te organiseer en navraag te doen, maar om die betekenis van die verhoudings tussen data wat relasionele databasis tegnologie ken, te mis nie.

Verhoudings stel jou in staat om die verbindings tussen verskillende databasis tabelle op kragtige maniere te beskryf. Hierdie verhoudings kan dan aangewend word om kragtige kruistafelnavrae uit te voer, bekend as verbindings.

Tipes databasisverwantskappe

Daar is drie verskillende tipes databasisverhoudings, elk volgens die aantal tabelryke wat in die verhouding betrokke mag wees. Elk van hierdie drie verwantskapstipes bestaan ​​tussen twee tabelle.

Selfverwysingsverwantskappe: 'n spesiale saak

Selfverwysingsverhoudings vind plaas wanneer daar net een tafel betrokke is. Een algemene voorbeeld is 'n Werknemers tabel wat inligting bevat oor die toesighouer van elke werknemer. Elke toesighouer is ook 'n werknemer en het sy of haar eie toesighouer. In hierdie geval is daar 'n een tot baie selfverwysingsverhouding, aangesien elke werknemer een toesighouer het, maar elke toesighouer mag meer as een werknemer hê.

Skep verhoudings met buitelandse sleutels

Jy skep verhoudings tussen tabelle deur 'n vreemde sleutel te spesifiseer . Hierdie sleutel vertel die relasionele databasis hoe die tabelle verband hou. In baie gevalle bevat 'n kolom in Tabel A primêre sleutels wat na Tabel B verwys word.

Kyk weer na die voorbeeld van die onderwysers en studente tafels. Die Onderwysers tabel bevat net 'n ID, 'n naam en 'n kursuskolom:

onderwysers
InstructorID Teacher_Name Kursus
001 John Doe Engels
002 Jane Schmoe wiskunde

Die tabel Studente bevat 'n ID, naam en 'n buitelandse sleutel kolom:

Studente
Studente ID Studente naam Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

Die kolom Teacher_FK in die Studente-tabel verwys na die primêre sleutelwaarde van 'n instrukteur in die Onderwysers-tabel.

Dikwels sal databasisontwerpers "PK" of "FK" in die kolomnaam gebruik om 'n primêre sleutel of buitelandse sleutel kolom maklik te identifiseer.

Let daarop dat hierdie twee tabelle 'n een-tot-baie verhouding tussen die onderwysers en die studente illustreer.

Verhoudings en verwysingsintegriteit

Sodra jy 'n vreemde sleutel by 'n tabel gevoeg het, kan jy dan 'n databasisbeperking skep wat die referentiële integriteit tussen die twee tabelle afdwing. Dit verseker dat die verhoudings tussen tabelle konsekwent bly. Wanneer 'n tabel 'n vreemde sleutel na 'n ander tabel het, word in die konsep van referensiële integriteit aangedui dat enige vreemde sleutelwaarde in Tabel B moet verwys na 'n bestaande rekord in Tabel A.

Implementering van verhoudings

Afhangende van jou databasis, implementeer jy verhoudings tussen tabelle op verskillende maniere. Microsoft Access bied 'n towenaar waarmee jy maklik tabelle kan koppel en ook referensiële integriteit afdwing.

As jy direk SQL skryf, sal jy eers die Teacher-tabel skep en 'n ID-kolom verklaar om die primêre sleutel te wees:

SKEP TAFEL Onderwysers (

InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Onderwyser_naam VARCHAR (100),
Kursus VARCHAR (100)
);

Wanneer u die Studente-tabel maak, verklaar u die Teacher_FK-kolom om 'n vreemde sleutel te wees wat die InstructorID-kolom in die Onderwyserstafel verwys:

SKEP TAFEL Studente (
StudentID INT AUTO_INCREMENT PRIMÊRE SLEUTEL,
Student_Name VARCHAR (100), Teacher_FK INT,
BUITELANDSE KEY (Teacher_FK) VERWYSINGS Onderwysers (InstructorID))
);

Gebruik verhoudings om tabelle aan te sluit

Sodra jy een of meer verhoudings in jou databasis geskep het, kan jy hul krag gebruik deur SQL-vrae te gebruik om inligting uit verskeie tabelle te kombineer. Die mees algemene tipe deelname is 'n SQL INNER JOIN, of 'n eenvoudige deelname. Hierdie tipe toemaak gee alle rekords wat voldoen aan die aansluitvoorwaarde van verskeie tabelle. Byvoorbeeld, hierdie JOIN-voorwaarde sal die Student_Name, Teacher_Name, en Kursus terugbring waar die vreemde sleutel in die Studente-tabel die primêre sleutel in die Onderwysers-tabel pas:

SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
VANAF Studente
BINNEN MET ONDERWYSERS
ON Students.Teacher_FK = Teachers.InstructorID;

Hierdie stelling gee 'n tabel soos volg:

Teruggekeer Tabel uit die SQL Join Statement

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish