Skip to content

Inleiding tot databaserelaties

15 de juni de 2021
GettyImages 763160545 5a469015f1300a00377839f0

De databasevoorwaarden relationeel en relatie beschrijven de manier waarop gegevens in tabellen zijn verbonden. Een relationele database bestaat uit een reeks van twee of meer tabellen die met elkaar zijn verbonden door een specifieke sleutel. Een relationele database verschilt van ongestructureerde databases, die vaker voorkomen bij grootschalige big-data-initiatieven. Relationele databases vereisen meestal strikte regels 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 gebruikt om krachtige kruistabelquery’s uit te voeren, ook wel joins genoemd.

Soorten databaserelaties

Er zijn drie typen databaserelaties, elk benoemd op basis van het aantal tabelrijen dat bij de relatie betrokken is. Elk van deze drie relatietypen bestaat tussen twee tabellen.

  • Een-op-een relaties treden op wanneer elk item in de eerste tabel één, en slechts één, tegenhanger in de tweede tabel heeft. 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 zijn 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 cursus Cursussen is bijvoorbeeld waarschijnlijk veel- to-many omdat elke leraar meer dan één cursus kan geven, en elke cursus kan meer dan één instructeur hebben.

Zelfverwijzende relaties: een speciaal geval

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. Kijk nog eens naar het voorbeeld van de tabellen Docenten en Studenten. De tabel Docenten 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 externe sleutelkolom:

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 cursusleider in de tabel Docenten. Vaak gebruiken databaseontwerpers “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 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 relaties tussen tabellen op verschillende manieren. 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 Teachers, waarbij u een ID-kolom als primaire sleutel aangeeft: CREATE TABLE Teachers (InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Naam leraar VARCHAR(100),
Cursus VARCHAR(100)
);

type=”code”> Wanneer u de tabel Studenten maakt, declareert u de kolom Teacher_FK als een externe sleutel die verwijst naar de kolom InstructorID in de tabel Docenten: CREATE TABLE Students (
StudentID INT AUTO_INCREMENT PRIMAIRE SLEUTEL,
Student_Name VARCHAR(100), Teacher_FK INT,
BUITENLANDSE SLEUTEL (Teacher_FK) REFERENTIES Docenten (InstructorID) )
);

type=”code”>

Relaties gebruiken om tabellen samen te voegen

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
VAN studenten
INNER JOIN Leraren
ON Students.Teacher_FK=Teachers.InstructorID;

type=”code”> Deze instructie levert een tabel op als volgt:

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

class=”ql-syntax”> Meer van Lifewire

  • Een grafiek op een computerscherm.

    Wat is een databaserelatie?

  • Databaseprogrammeur met behulp van een laptop aan een bureau in een thuiskantoor

    Een database in de derde normale vorm (3NF) plaatsen

  • Man met behulp van een laptop

    Wat is transitieve afhankelijkheid in een database?

  • Entiteit-relatiediagram

    Entiteit-relatiediagram Definitie

  • Vrouw met uitzicht op serverruimte

    Een-op-veel-relaties in een database

  • Database op een computer

    Hoe referentiële integriteit zorgt voor databaseconsistentie

  • Afbeelding van rood potlood dat databaserelaties schetst

    Databaserelaties maken in Access

  • Hoge hoekmening van technici die in de serverruimte werken

    Basissleutels die databasebeheer eenvoudig maken

  • Zakenman met behulp van computer in virtuele serverruimte.

    Een database in de eerste normale vorm zetten

  • Twee mannen kijken naar een computerscherm

    De kracht van buitenlandse sleutels in relationele databases

  • Lay-out van databaseschema

    Wat is een databaseschema?

  • Digitale weergave van computercode en verbindingslijnen die een database vertegenwoordigen

    Woordenlijst van algemene databasetermen

  • Mensen uit het bedrijfsleven bespreken via laptop aan bureau in vergadering

    Een databasekenmerk definieert de eigenschappen van een tabel

  • Databasebeheerder die aan bureau werkt

    Determinanten en hun rol in een database

  • Jonge jongen student programmeren op computer in donkere klas

    Databases voor beginners

  • Sociale zekerheidskaarten

    Wat is een primaire sleutel?

reddingsdraad

Volg ons

  • Facebook

  • Over ons
  • Reclame maken
  • Privacybeleid
  • Cookie beleid
  • carrières
  • Redactionele richtlijnen
  • Contact
  • Gebruiksvoorwaarden
  • EU-privacy
  • Privacyverklaring Californië
  • TRUSTe

Uw privacyrechten

Lifewire en onze externe partners gebruiken cookies en verwerken persoonlijke gegevens zoals unieke identificatiegegevens op basis van uw toestemming om informatie op een apparaat op te slaan en/of te openen, gepersonaliseerde advertenties weer te geven en voor inhoudsmeting, doelgroepinzicht en productontwikkeling. Klik hieronder om uw toestemmingskeuzes voor Lifewire.com te wijzigen of in te trekken, inclusief uw recht om bezwaar te maken wanneer een legitiem belang wordt gebruikt. U kunt uw instellingen op elk moment bijwerken via de link “EU-privacy” onderaan elke pagina. Deze keuzes worden wereldwijd aan onze partners gesignaleerd en hebben geen invloed op de browsegegevens. Lijst met partners (leveranciers)

Wij en onze partners verwerken gegevens om:

Scan actief apparaatkenmerken voor identificatie. Gebruik nauwkeurige geolocatiegegevens. Informatie op een apparaat opslaan en/of openen. Selecteer gepersonaliseerde inhoud. Maak een gepersonaliseerd inhoudsprofiel. Meet advertentieprestaties. Selecteer basisadvertenties. Maak een gepersonaliseerd advertentieprofiel. Selecteer gepersonaliseerde advertenties. Pas marktonderzoek toe om doelgroepinzichten te genereren. Inhoudsprestaties meten. Ontwikkelen en verbeteren van producten. Lijst met partners (leveranciers)