Inleiding tot databasisverhoudings

INHOUDSOPGAWE:

Inleiding tot databasisverhoudings
Inleiding tot databasisverhoudings
Anonim

Die databasisterme relasioneel en verwantskap beskryf die manier waarop data in tabelle verbind word. 'n Relasionele databasis bestaan uit 'n reeks van twee of meer tabelle wat deur 'n spesifieke sleutel gekoppel is. 'n Relasionele databasis verskil van ongestruktureerde databasisse, wat algemeen voorkom in grootdata-inisiatiewe. Relasionele databasisse is geneig om streng reëls te vereis oor hoe tabelle gedefinieer word en wat 'n geldige verwantskap tussen tabelle uitmaak.

Image
Image

tipes databasisverhoudings

Verhoudings laat jou toe om die verbindings tussen databasistabelle op kragtige maniere te beskryf. Hierdie verhoudings kan dan aangewend word om kragtige kruistabelnavrae uit te voer, bekend as JOINs.

Daar is drie tipes databasisverwantskappe, elk genoem volgens die aantal tabelrye wat by die verhouding betrokke is. Elkeen van hierdie drie tipes verhoudings bestaan tussen twee tabelle.

  • Een-tot-een-verhoudings vind plaas wanneer elke inskrywing in die eerste tabel net een eweknie in die tweede tabel het. Een-tot-een verhoudings word selde gebruik omdat dit dikwels meer doeltreffend is om al die inligting in 'n enkele tabel te plaas. Sommige databasisontwerpers trek voordeel uit hierdie verhouding deur tabelle te skep wat 'n subset van die data van 'n ander tabel bevat.
  • Een-tot-baie-verhoudings is die mees algemene tipe databasisverhouding. Hulle kom voor wanneer elke rekord in Tabel A ooreenstem met een of meer rekords in Tabel B, maar elke rekord in Tabel B ooreenstem met slegs een rekord in Tabel A. Byvoorbeeld, die verwantskap tussen 'n Onderwyserstabel en 'n Studentetabel in 'n laerskool databasis sal waarskynlik 'n een-tot-veel-verhouding wees omdat elke student net een onderwyser het, maar elke onderwyser het verskeie studente. Hierdie een-tot-vee-ontwerp help om gedupliseerde data uit te skakel.
  • Baie-tot-baie-verhoudings vind plaas wanneer elke rekord in Tabel A ooreenstem met een of meer rekords in Tabel B, en elke rekord in Tabel B ooreenstem met een of meer rekords in Tabel A. Byvoorbeeld, die verhouding tussen 'n Onderwyserstabel en 'n Kursussetabel sal waarskynlik baie-tot-veel wees, want elke onderwyser kan meer as een kursus onderrig, en elke kursus kan meer as een instrukteur hê.

Onderste reël

Selfverwysende verhoudings vind plaas wanneer daar net een tabel betrokke is. Een algemene voorbeeld is 'n Werknemerstabel wat inligting bevat oor die toesighouer van elke werknemer. Elke toesighouer is ook 'n werknemer en het 'n toesighouer. In hierdie geval is daar 'n een-tot-veel selfverwysende verhouding, aangesien elke werknemer een toesighouer het, maar elke toesighouer kan 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 verwant is. In baie gevalle bevat 'n kolom in Tabel A primêre sleutels wat vanaf Tabel B verwys word.

Beskou die voorbeeld van die Onderwysers- en Studente-tabelle. Die Onderwyserstabel bevat 'n ID, 'n naam en 'n kursuskolom:

Instrukteur-ID Onderwyser_Naam Kursus
001 John Doe Engels
002 Jane Schmoe Math

Die Studente-tabel bevat 'n ID, naam en 'n vreemde sleutelkolom:

StudentID Student_Name 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. Databasisontwerpers gebruik gereeld PK of FK in die kolomnaam om 'n primêre sleutel of vreemde sleutelkolom te identifiseer.

Hierdie twee tabelle illustreer 'n een-tot-veel-verhouding tussen die onderwysers en die studente.

Verhoudings en verwysingsintegriteit

Nadat 'n vreemde sleutel by 'n tabel gevoeg is, skep 'n databasisbeperking wat verwysingsintegriteit tussen die twee tabelle afdwing. Hierdie stap verseker dat verhoudings tussen tabelle konsekwent bly. Wanneer een tabel 'n vreemde sleutel na 'n ander tabel het, vereis verwysingsintegriteit dat enige vreemde sleutelwaarde in Tabel B na 'n bestaande rekord in Tabel A moet verwys.

Implementering van verhoudings

Afhangende van jou databasis, sal jy verhoudings tussen tabelle op verskillende maniere implementeer. Microsoft Access verskaf 'n towenaar wat jou toelaat om tabelle te koppel en ook verwysingsintegriteit af te dwing.

As jy SQL direk skryf, skep eers die tabel Onderwysers, en verklaar dat 'n ID-kolom die primêre sleutel is:

SKEP TABEL Onderwysers (InstructorID INT AUTO_INCREMENT PRIMARY SLEUTEL, Teacher_Name VARCHAR(100), Kursus VARCHAR(100));

Wanneer jy die Studente-tabel skep, verklaar jy die Teacher_FK-kolom as 'n vreemde sleutel wat na die InstructorID-kolom in die Onderwysers-tabel verwys:

SKEP TABEL Studente (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Teacher_FK) VERWYSINGS Onderwysers)(Instrukteur-ID));

Gebruik verhoudings om by tafels aan te sluit

Nadat jy een of meer verhoudings in jou databasis geskep het, gebruik hul krag deur SQL JOIN-navrae te gebruik om inligting van veelvuldige tabelle te kombineer. Die mees algemene tipe aansluiting is 'n SQL INNER JOIN, wat 'n eenvoudige aansluiting is. Hierdie tipe aansluiting gee alle rekords terug wat aan die aansluitingsvoorwaarde voldoen vanaf een of meer tabelle.

Byvoorbeeld, hierdie JOIN-voorwaarde gee Student_Name, Teacher_Name en Course terug, waar die vreemde sleutel in die Students-tabel ooreenstem met die primêre sleutel in die Teachers-tabel:

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

FROM Students

INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;

Hierdie stelling produseer 'n tabel iets soos hierdie:

Student_Name Onderwyser_Naam Kursus
Lowell Smith John Doe Engels
Brian Short John Doe Engels
Corky Mendez Jane Schmoe Math
Monica Jones John Doe Engels

Aanbeveel: