Inleiding tot databaserelaties

Inhoudsopgave:

Inleiding tot databaserelaties
Inleiding tot databaserelaties
Anonim

De databasetermen relationeel en relatie beschrijven de manier waarop gegevens in tabellen met elkaar verbonden zijn. Een relationele database bestaat uit een reeks van twee of meer tabellen die door een specifieke sleutel zijn verbonden. Een relationele database verschilt van ongestructureerde databases, die veel voorkomen bij big data-initiatieven. Relationele databases vereisen doorgaans strikte regels over hoe tabellen worden gedefinieerd en wat een geldige relatie tussen tabellen vormt.

Image
Image

Soorten databaserelaties

Relaties stellen je in staat om de verbindingen tussen databasetabellen op krachtige manieren te beschrijven. Deze relaties kunnen vervolgens worden gebruikt om krachtige kruistabelquery's uit te voeren, bekend als JOINs.

Er zijn drie typen databaserelaties, elk genoemd naar het aantal tabelrijen dat bij de relatie betrokken is. Elk van deze drie relatietypes bestaat tussen twee tabellen.

  • Een-op-een relaties treden op wanneer elk item in de eerste tabel slechts één tegenhanger heeft in de tweede tabel. Eén-op-één relaties worden zelden gebruikt omdat het vaak efficiënter is om alle informatie in één tabel te zetten. Sommige databaseontwerpers profiteren van deze relatie door tabellen te maken die een subset van de gegevens uit een andere tabel bevatten.
  • Een-op-veel-relaties is het meest voorkomende type databaserelatie. Ze treden op wanneer elk record in Tabel A overeenkomt met een of meer records in Tabel B, maar elk record in Tabel B komt overeen met slechts één record in Tabel A. Bijvoorbeeld, de relatie tussen een tabel Docenten en een tabel Studenten in een basisschool database zou waarschijnlijk een een-op-veel-relatie zijn, omdat elke student slechts één leraar heeft, maar elke leraar heeft meerdere studenten. Dit een-op-veel-ontwerp helpt dubbele gegevens te elimineren.
  • Veel-op-veel-relaties treden op wanneer elk record in tabel A overeenkomt met een of meer records in tabel B en elk record in tabel B overeenkomt met een of meer records in Tabel A. De relatie tussen een tabel Docenten en een tabel Cursussen is bijvoorbeeld waarschijnlijk veel-op-veel omdat elke docent meer dan één cursus kan instrueren en elke cursus meer dan één instructeur kan hebben.

Bottom Line

Zelfverwijzende relaties treden op wanneer er slechts één tabel bij betrokken is. Een veelvoorkomend voorbeeld is een tabel Werknemers die informatie bevat over de supervisor van elke werknemer. Elke supervisor is ook een werknemer en heeft een supervisor. In dit geval is er een een-op-veel-zelfverwijzende relatie, aangezien elke werknemer één supervisor heeft, maar elke supervisor kan meer dan één werknemer hebben.

Relaties creëren met buitenlandse sleutels

U maakt relaties tussen tabellen door een externe sleutel op te geven. Deze sleutel vertelt de relationele database hoe de tabellen gerelateerd zijn. In veel gevallen bevat een kolom in Tabel A primaire sleutels waarnaar wordt verwezen in Tabel B.

Beschouw het voorbeeld van de tabellen Docenten en Studenten. De tabel Docenten bevat een ID, een naam en een cursuskolom:

Instructeur-ID Teacher_Name Cursus
001 John Doe Engels
002 Jane Schmoe Wiskunde

De tabel Studenten bevat een ID, naam en een externe sleutelkolom:

Student-ID Student_Name Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

De kolom Teacher_FK in de tabel Studenten verwijst naar de primaire sleutelwaarde van een instructeur in de tabel Docenten. Vaak gebruiken databaseontwerpers PK of FK in de kolomnaam om een primaire sleutel of een externe sleutelkolom te identificeren.

Deze twee tabellen illustreren een een-op-veel-relatie tussen de docenten en de studenten.

Relaties en referentiële integriteit

Nadat u een externe sleutel aan een tabel hebt toegevoegd, maakt u een databasebeperking die de referentiële integriteit tussen de twee tabellen afdwingt. Deze stap zorgt ervoor dat relaties tussen tabellen consistent blijven. Wanneer een tabel een referentiële sleutel heeft naar een andere tabel, vereist referentiële integriteit dat elke referentiële sleutelwaarde in Tabel B moet verwijzen naar een bestaand record in Tabel A.

Relaties implementeren

Afhankelijk van uw database, implementeert u op verschillende manieren relaties tussen tabellen. Microsoft Access biedt een wizard waarmee u tabellen kunt koppelen en ook referentiële integriteit kunt afdwingen.

Als u rechtstreeks SQL schrijft, maakt u eerst de tabel Docenten, waarbij u een ID-kolom als de primaire sleutel aangeeft:

MAAK TABEL Leraren (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR(100), Course VARCHAR(100));

Wanneer u de tabel Studenten maakt, declareert u de kolom Teacher_FK als een externe sleutel die verwijst naar de kolom Instructeur-ID in de tabel Docenten:

CREATE TABLE Studenten (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Teacher_FK) REFERENTIES Docenten (InstructorID)));

Relaties gebruiken om aan tabellen deel te nemen

Nadat u een of meer relaties in uw database hebt gemaakt, maakt u gebruik van hun kracht door SQL JOIN-query's te gebruiken om informatie uit meerdere tabellen te combineren. Het meest voorkomende type join is een SQL INNER JOIN, een eenvoudige join. Dit type join retourneert alle records die voldoen aan de join-voorwaarde uit een of meer tabellen.

Deze JOIN-voorwaarde retourneert bijvoorbeeld Student_Name, Teacher_Name en Course, waarbij de refererende sleutel in de tabel Studenten overeenkomt met de primaire sleutel in de tabel Docenten:

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

FROM Students

INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;

Deze verklaring levert een tabel op als volgt:

Student_Name Teacher_Name Cursus
Lowell Smith John Doe Engels
Brian Short John Doe Engels
Corky Mendez Jane Schmoe Wiskunde
Monica Jones John Doe Engels

Aanbevolen: