Software

Inleiding tot databaserelaties

Schrijver: Robert Simon
Datum Van Creatie: 22 Juni- 2021
Updatedatum: 11 Kunnen 2024
Anonim
Inleiding tot databaserelaties - Software
Inleiding tot databaserelaties - Software

Inhoud

Relationele databases ondersteunen afgedwongen, gedefinieerde koppelingen tussen tabellen

De databasevoorwaarden relationeel of relatie beschrijft de manier waarop gegevens in tabellen zijn verbonden. Een relationele database bestaat uit een reeks van twee of meer tabellen die met een specifieke sleutel zijn verbonden. Een relationele database verschilt van ongestructureerde databases, wat vaker voorkomt bij grote big data-initiatieven, voor zover relationele databases de neiging hebben strikte regels te vereisen over hoe tabellen worden gedefinieerd en wat een geldige relatie tussen tabellen vormt.

Met relaties kunt u de verbindingen tussen verschillende databasetabellen op krachtige manieren beschrijven. Deze relaties kunnen vervolgens worden benut om krachtige kruistabelquery's uit te voeren, ook wel joins genoemd.


Soorten databaserelaties

Er zijn drie verschillende soorten database-relaties, elk genoemd naar het aantal tabelrijen dat bij de relatie betrokken kan zijn. Elk van deze drie relatietypen bestaat tussen twee tabellen.

  • Eén-op-één relaties doen zich voor wanneer elk item in de eerste tabel één en slechts één tegenhanger heeft in de tweede tabel. Een-op-een relaties worden zelden gebruikt omdat het vaak efficiënter is om alle informatie eenvoudig in een enkele tabel te plaatsen. 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 zijn het meest voorkomende type database-relatie. Ze komen voor 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 docententabel en een studententafel op een basisschool database zou waarschijnlijk een een-op-veel-relatie zijn, omdat elke leerling maar één leerkracht heeft, maar elke leerkracht heeft meerdere leerlingen. Dit een-op-veel-ontwerp helpt dubbele gegevens te elimineren.
  • Veel-op-veel relaties komen voor wanneer elk record in tabel A overeenkomt met een of meer records in tabel B, en elk record in tabel B komt overeen met een of meer records in tabel A. De relatie tussen een docent en een cursus-tabel zou bijvoorbeeld waarschijnlijk veel- te veel omdat elke leraar meer dan één cursus kan geven en elke cursus meer dan één instructeur kan hebben.

Zelfverwijzende relaties: een speciaal geval

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


Relaties creëren met externe sleutels

U creëert 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 vanuit tabel B.

Beschouw opnieuw het voorbeeld van de tabellen Leraren en Studenten. De docententabel bevat alleen een ID, een naam en een cursuskolom:

Leraren

Instructeur-ID

Naam leraar

Cursus

001

John Doe

Engels
002

Jane Schmoe

Wiskunde

De tabel Studenten bevat een ID, naam en een kolom met een externe sleutel:

Studenten

StudentID

Studenten naam

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 Leraren. Databaseontwerpers gebruiken vaak "PK" of "FK" in de kolomnaam om gemakkelijk een primaire sleutel of een externe-sleutelkolom te identificeren.

Deze twee tabellen illustreren een een-op-veel-relatie tussen de leerkrachten en de leerlingen.

Relaties en referentiële integriteit

Nadat u een externe sleutel aan een tabel heeft 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 refererende sleutel heeft naar een andere tabel, vereist referentiële integriteit dat elke waarde van een externe sleutel in tabel B moet verwijzen naar een bestaand record in tabel A.

Relaties implementeren

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

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

CREËER TABEL Leraren (InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Teacher_Name VARCHAR (100),
Cursus VARCHAR (100)
);

Wanneer u de tabel Students maakt, verklaart u dat de kolom Teacher_FK een externe sleutel is die verwijst naar de kolom InstructorID in de tabel Teachers:

MAAK TABEL Studenten (
StudentID INT AUTO_INCREMENT PRIMAIRE SLEUTEL,
Student_Name VARCHAR (100), Teacher_FK INT,
BUITENLANDSE SLEUTEL (Teacher_FK) REFERENTIES Docenten (InstructorID))
);

Relaties gebruiken om lid te worden van tabellen

Nadat u een of meer relaties in uw database hebt gemaakt, kunt u hun kracht gebruiken door SQL JOIN-query's te gebruiken om informatie uit meerdere tabellen te combineren. Het meest voorkomende type join is een SQL INNER JOIN of een simpele join. Dit type join retourneert alle records die voldoen aan de joinvoorwaarde uit een of meer tabellen. Deze JOIN-voorwaarde retourneert bijvoorbeeld Student_Name, Teacher_Name en Course waarbij de refererende sleutel in de tabel Students overeenkomt met de primaire sleutel in de tabel Teachers:

SELECTEER Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
VAN Studenten
BINNEN WORDEN Leraren
ON Students.Teacher_FK = Teachers.InstructorID;

Deze verklaring produceert een tabel die er ongeveer als volgt uitziet:

Geretourneerde tabel uit de SQL Join-instructie

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

Artikelen Voor Jou

Interessante Artikelen

Extra onderbrekingen in Word-documenten verwijderen
Software

Extra onderbrekingen in Word-documenten verwijderen

Het wijzigen van de documentopmaak in Word i meetal vrij eenvoudig. Er kunnen echter complicatie optreden. Er treden problemen op wanneer extra retouren in een document worden ingevoegd in plaat van ...
CSS-leveranciersvoorvoegsels
Internet

CSS-leveranciersvoorvoegsels

Voorvoegel van C-leverancier, ook wel bekend al voorvoegel van C-brower, zijn een manier voor browerfabrikanten om onderteuning voor nieuwe C-functie toe te voegen voordat deze functie volledig worde...