Skip to content

Wat is een databaserelatie?

27 de juli de 2021
database relationship eb40478e1d9b4b73aec6452586c8927f

Er wordt een relatie tot stand gebracht tussen twee databasetabellen wanneer een tabel een externe sleutel gebruikt die verwijst naar de primaire sleutel van een andere tabel. Dit is het basisconcept achter de term relationele database.

Hoe een buitenlandse sleutel werkt om een ​​relatie tot stand te brengen

Een primaire sleutel identificeert elk record in de tabel op unieke wijze. Het is een type kandidaatsleutel die meestal de eerste kolom in een tabel is en die automatisch door de database kan worden gegenereerd om ervoor te zorgen dat deze uniek is. Een refererende sleutel is een andere kandidaatsleutel (niet de primaire sleutel) die wordt gebruikt om een ​​record te koppelen aan gegevens in een andere tabel. Beschouw bijvoorbeeld deze twee tabellen die aangeven welke leraar welke cursus geeft. Hier is de primaire sleutel van de tabel Courses Course_ID. De externe sleutel is Teacher_ID:

Cursus id Cursus naam Docent_ID
Cursus_001 Biologie Leraar_001
Cursus_002 Wiskunde Docent_002
Cursus_003 Engels Docent_003

Je kunt zien dat de externe sleutel in Cursussen overeenkomt met een primaire sleutel in Docenten:

Docent_ID Naam leraar
Leraar_001 Carmen
Docent_002 Veronica
Docent_003 Jorge
We kunnen zeggen dat de externe sleutel Teacher_ID heeft geholpen om een ​​relatie tot stand te brengen tussen de tabellen Cursussen en Docenten.

Soorten databaserelaties

Met behulp van externe sleutels of andere kandidaatsleutels kunt u drie soorten relaties tussen tabellen implementeren:

Een op een

Dit type relatie staat slechts één record toe aan elke kant van de relatie. De primaire sleutel heeft betrekking op slechts één record (of geen) in een andere tabel. In een huwelijk heeft bijvoorbeeld elke echtgenoot slechts één andere echtgenoot. Dit soort relatie kan in een enkele tabel worden geïmplementeerd en maakt daarom geen gebruik van een externe sleutel.

Een te veel

Met een een-op-veel-relatie kan een enkele record in de ene tabel worden gerelateerd aan meerdere records in een andere tabel. Overweeg een bedrijf met een database met tabellen met klanten en bestellingen. Een enkele klant kan meerdere bestellingen kopen, maar een enkele bestelling kan niet aan meerdere klanten worden gekoppeld. Daarom zou de tabel Orders een externe sleutel bevatten die overeenkomt met de primaire sleutel van de tabel Klanten, terwijl de tabel Klanten geen externe sleutel zou hebben die naar de tabel Orders verwijst.

Veel te veel

Dit is een complexe relatie waarin veel records in een tabel kunnen worden gekoppeld aan veel records in een andere tabel. Ons bedrijf heeft bijvoorbeeld waarschijnlijk de tabellen Klanten en Bestellingen nodig, en waarschijnlijk ook een tabel Producten. Nogmaals, de relatie tussen de tabel Klanten en Bestellingen is een-op-veel, maar houd rekening met de relatie tussen de tabel Bestellingen en Producten. Een bestelling kan meerdere producten bevatten en een product kan aan meerdere bestellingen worden gekoppeld, aangezien meerdere klanten een bestelling kunnen plaatsen die enkele van dezelfde producten bevat. Voor dit soort relaties zijn minimaal drie tabellen nodig.

Waarom zijn databaserelaties belangrijk?

Het tot stand brengen van consistente relaties tussen databasetabellen helpt de gegevensintegriteit te waarborgen en draagt ​​bij aan de normalisatie van de database. Wat als we bijvoorbeeld geen tabellen zouden koppelen via een externe sleutel en in plaats daarvan de gegevens in de tabellen Cursussen en Docenten zouden combineren, zoals zo:

Docent_ID Naam leraar Cursus
Leraar_001 Carmen Biologie, Wiskunde
Docent_002 Veronica Wiskunde
Docent_003 Jorge Engels

Dit ontwerp is inflexibel en schendt het eerste principe van databasenormalisatie, First Normal Form, dat stelt dat elke tabelcel één afzonderlijk stuk gegevens moet bevatten. Of misschien hebben we besloten om een ​​tweede record toe te voegen voor Carmen, om 1NF af te dwingen:

Docent_ID Naam leraar Cursus
Leraar_001 Carmen Biologie
Leraar_001 Carmen Wiskunde
Docent_002 Veronica Wiskunde
Docent_003 Jorge Engels

Dit is nog steeds een zwak ontwerp en introduceert onnodige duplicatie en zogenaamde anomalieën bij het invoegen van gegevens, wat betekent dat het kan bijdragen aan inconsistente gegevens. Als een leraar bijvoorbeeld meerdere records heeft, wat als sommige gegevens moeten worden bewerkt, maar de persoon die de gegevensbewerking uitvoert, zich niet realiseert dat er meerdere records bestaan? De tabel zou dan verschillende gegevens voor dezelfde persoon bevatten, zonder enige duidelijke manier om deze te identificeren of te vermijden. Door deze tabel op te splitsen in twee tabellen, Docenten en Cursussen, wordt de juiste relatie tussen de gegevens gecreëerd en wordt daardoor de consistentie en nauwkeurigheid van de gegevens gegarandeerd. Meer van Lifewire

  • Zakenlieden praten, bespreken gegevens op laptop in vergaderruimte vergadering

    Inleiding tot databaserelaties

  • Architect kijkt naar database op computer

    Definitie van databaserelatie

  • Vrouw met uitzicht op serverruimte

    Een-op-veel-relaties in een database

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

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

  • Handen van een webdesigner die een digitale tablet gebruikt

    Volledige functionele afhankelijkheid bij databasenormalisatie

  • Computeranalist die een database maakt op een laptop

    Feiten versus Afmetingentabellen in een database

  • Man met behulp van een laptop

    Wat is transitieve afhankelijkheid in een database?

  • Sociale zekerheidskaarten

    Wat is een primaire sleutel?

  • Entiteit-relatiediagram

    Entiteit-relatiediagram Definitie

  • Afbeelding van rood potlood dat databaserelaties schetst

    Databaserelaties maken in Access

  • Zakenman met behulp van computer in virtuele serverruimte.

    Een database in de eerste normale vorm zetten

  • Binaire code op laptopscherm.

    5 beste databasetips voor beginners

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

    Een databasekenmerk definieert de eigenschappen van een tabel

  • 1s en 0s die een database vertegenwoordigen

    Wat is een databank?

  • Database op een computer

    Hoe referentiële integriteit zorgt voor databaseconsistentie

  • Twee mannen kijken naar een computerscherm

    De kracht van buitenlandse sleutels in relationele databases

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)