DBMS-sleutels: Kandidaat-, primaire, super- en externe typen

⚡ Slimme samenvatting

Sleutels in een DBMS zijn attributen die een rij in een tabel uniek identificeren en relaties tussen tabellen vaststellen. Acht sleuteltypen, van supersleutel en primaire sleutel tot externe sleutel en surrogaatsleutel, waarborgen de identiteit en integriteit binnen een relationele database.

  • Kerndoel: Een legenda identificeert een unieke rij en koppelt gerelateerde tabellen aan elkaar, zodat de gegevens consistent blijven.
  • 🔝 Supersleutel: Elke attributenset die rijen identificeert, mogelijk met extra attributen naast het minimum.
  • Hoofdsleutel: De gekozen kandidaatsleutel mag nooit null zijn en nooit gedupliceerd worden, en er moet er één per tabel zijn.
  • 🎯 Kandidaat Sleutel: Een minimale supersleutel zonder overbodige attributen; de primaire sleutel wordt hieruit gekozen.
  • 🔁 Alternatieve sleutel: Elke kandidaatsleutel die niet als primaire sleutel is geselecteerd.
  • 🔗 Vreemde sleutel: Een kolom die verwijst naar de primaire sleutel van een andere tabel om referentiële integriteit te waarborgen.
  • 🧩 Samengesteld en surrogaat: Samengestelde sleutels combineren kolommen voor uniciteit; een surrogaatsleutel is een gegenereerde vervanging.

DBMS-sleutels Kandidaat Super Primair

Wat zijn sleutels in een DBMS?

Sleutels in DBMS Een sleutel is een attribuut of een set attributen waarmee je een rij (tuple) in een relatie (tabel) kunt identificeren. Hiermee kun je de relatie tussen twee tabellen vinden. Sleutels helpen je om een ​​rij in een tabel uniek te identificeren aan de hand van een combinatie van een of meer kolommen, en ze zijn ook handig om een ​​uniek record in de tabel te vinden.

Voorbeeld:

Werknemers-ID Voornaam Achternaam
11 Andrew Johnson
22 Tom Hout
33 Alex flink

In het bovenstaande voorbeeld is het werknemers-ID een primaire sleutel omdat het een werknemersrecord uniek identificeert. In deze tabel kan geen enkele andere werknemer hetzelfde werknemers-ID hebben.

Waarom hebben we een sleutel nodig?

Hieronder volgen enkele redenen om een ​​sleutel in een DBMS te gebruiken:

  • Met sleutels kunt u elke rij met gegevens in een tabel identificeren. In een praktijktoepassing kan een tabel duizenden records bevatten, en deze records kunnen dubbel voorkomen. Sleutels zorgen ervoor dat u, ondanks deze uitdagingen, een tabelrecord uniek kunt identificeren.
  • Ze stellen je in staat om relaties tussen tabellen vast te stellen en te identificeren.
  • Ze helpen je om identiteit en integriteit in de relatie te versterken.

Soorten sleutels in een DBMS

In een databasebeheersysteem (DBMS) bestaan ​​hoofdzakelijk acht verschillende soorten sleutels, en elke sleutel heeft zijn eigen functionaliteit:

  1. Super Key
  2. Hoofdsleutel
  3. Kandidaatsleutel
  4. Alternatieve sleutel
  5. Vreemde sleutel
  6. Samengestelde sleutel
  7. Samengestelde sleutel
  8. Vervangende sleutel

De onderstaande tabel geeft een overzicht van alle acht, waarna ze stuk voor stuk in detail worden toegelicht.

sleutel In één regel Uniek?
Super Key Elke attributenset die een rij identificeert, extra's toegestaan Ja
Kandidaatsleutel Een minimale superkey, geen overbodige attributen. Ja
Hoofdsleutel De gekozen kandidaatsleutel, niet null Ja
Alternatieve sleutel Een kandidaatsleutel die niet als primaire sleutel is gekozen Ja
Vreemde sleutel Verwijst naar een primaire sleutel in een andere tabel. Nee
Samengestelde sleutel Twee of meer kenmerken, die elk mogelijk niet uniek zijn. gecombineerd
Samengestelde sleutel Twee of meer kolommen gecombineerd voor uniciteit gecombineerd
Vervangende sleutel Een gegenereerde kunstmatige identificator Ja

Wat is een Super Key?

Een supersleutel is een groep van één of meerdere sleutels die rijen in een tabel identificeert. Een supersleutel kan extra attributen bevatten die niet nodig zijn voor unieke identificatie.

Voorbeeld:

EmpSSN EmpNum Empnaam
9812345098 AB05 Getoond
9876512345 AB06 Roslyn
199937890 AB07 James

In het bovenstaande voorbeeld zijn EmpSSN en EmpNum superkeys.

Wat is een primaire sleutel?

HOOFDSLEUTEL in dbms Een primaire sleutel is een kolom of groep kolommen in een tabel die elke rij in die tabel uniek identificeert. De primaire sleutel mag geen duplicaat zijn, wat betekent dat dezelfde waarde niet meer dan één keer in de tabel mag voorkomen. Een tabel kan niet meer dan één primaire sleutel hebben.

Regels voor het definiëren van een primaire sleutel

  • Twee rijen mogen niet dezelfde primaire sleutelwaarde hebben.
  • Elke rij moet een primaire sleutelwaarde hebben.
  • Het primaire sleutelveld mag niet nul zijn.
  • De waarde in een primaire sleutelkolom kan nooit worden gewijzigd of bijgewerkt als een externe sleutel naar die primaire sleutel verwijst.

Voorbeeld: In het volgende voorbeeld StudID is een primaire sleutel.

StudID Rol nr Vul hier uw voornaam in Achternaam E-mail
1 11 Tom Prijs abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Nathan mno@yahoo.com

Wat is een alternatieve sleutel?

ALTERNATIEVE SLEUTEL Een primaire sleutel is een kolom of groep kolommen in een tabel die elke rij uniek identificeert. Een tabel kan meerdere opties voor een primaire sleutel hebben, maar slechts één daarvan kan als primaire sleutel worden ingesteld. Alle sleutels die niet de primaire sleutel zijn, worden alternatieve sleutels genoemd.

Voorbeeld: In deze tabel komen StudID, Roll No en Email in aanmerking als primaire sleutel. Maar aangezien StudID de primaire sleutel is, worden Roll No en Email de alternatieve sleutels.

StudID Rol nr Vul hier uw voornaam in Achternaam E-mail
1 11 Tom Prijs abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Nathan mno@yahoo.com

Wat is een kandidaatsleutel?

KANDIDAATSLEUTEL Een kandidaatsleutel is een verzameling attributen die tuples in een tabel uniek identificeren. Een kandidaatsleutel is een supersleutel zonder herhaalde attributen. De primaire sleutel moet worden gekozen uit de kandidaatsleutels. Elke tabel moet minstens één kandidaatsleutel hebben, en een tabel kan meerdere kandidaatsleutels hebben, maar slechts één primaire sleutel.

Eigenschappen van een kandidaatsleutel:

  • Het moet unieke waarden bevatten.
  • Een kandidaatsleutel kan meerdere kenmerken hebben.
  • Het mag geen null-waarden bevatten.
  • Het moet de minimale velden bevatten die nodig zijn om uniciteit te garanderen.
  • Het identificeert elk record in een tabel op unieke wijze.

Voorbeeld: In de onderstaande tabel zijn StudID, Roll No en Email kandidaatsleutels die ons helpen een studentrecord uniek te identificeren. Hun relatie tot de overkoepelende en primaire sleutels is een veelgebruikte manier om dit te begrijpen. functionele afhankelijkheid.

StudID Rol nr Vul hier uw voornaam in Achternaam E-mail
1 11 Tom Prijs abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Nathan mno@yahoo.com
Kandidaatsleutel in DBMS
Kandidaatsleutel in DBMS

Wat is een externe sleutel?

VREEMDE SLEUTEL Een foreign key is een kolom die een relatie legt tussen twee tabellen. Het doel van een foreign key is het waarborgen van de data-integriteit en het mogelijk maken van navigatie tussen twee verschillende instanties van een entiteit. Het fungeert als een kruisverwijzing tussen twee tabellen, omdat het verwijst naar de primary key van een andere tabel.

Voorbeeld:

DeptCode Afdelingsnaam
001 Wetenschap
002 Engels
005 Computer
Leraar-ID Fnaam Lnaam
B002 David Warner
B017 Sara Jozef
B009 Mike Brunton

In dit voorbeeld hebben we twee tabellen, 'Docent' en 'Afdeling', in een school. Zoals ze er nu uitzien, is er geen manier om te zien welke docent bij welke afdeling werkt.

Door de externe sleutel Dept toe te voegenCode Door de tabel 'Teacher' te gebruiken, kunnen we een relatie tussen de twee tabellen leggen.

Leraar-ID DeptCode Fnaam Lnaam
B002 002 David Warner
B017 002 Sara Jozef
B009 001 Mike Brunton

Dit concept wordt ook wel referentiële integriteit genoemd.

Wat is een samengestelde sleutel?

SAMENGESTELDE SLEUTEL Een samengestelde sleutel heeft twee of meer kenmerken waarmee een specifiek record uniek kan worden herkend. Het is mogelijk dat elke kolom op zichzelf niet uniek is binnen de database. Wanneer de kolommen echter gecombineerd worden, worden ze wel uniek. Het doel van de samengestelde sleutel is om elk record in de tabel uniek te identificeren.

Voorbeeld:

Bestelnr Product-ID Product Aantal
B005 JAP102459 Muis 5
B005 DKT321573 USB 10
B005 OMG446789 LCD-monitor 20
B004 DKT321573 USB 15
B002 OMG446789 Laser Printer 3

In dit voorbeeld kunnen OrderNo en ProductID niet afzonderlijk een primaire sleutel zijn, omdat geen van beide een record uniek identificeert. Een samengestelde sleutel van OrderNo en ProductID identificeert echter wel elk record uniek.

Wat is een samengestelde sleutel?

SAMENGESTELDE SLEUTEL Een kolom is een combinatie van twee of meer kolommen die rijen in een tabel uniek identificeren. De combinatie van kolommen garandeert uniciteit, hoewel individuele uniciteit niet gegarandeerd is. Daarom worden ze gecombineerd om records in een tabel uniek te identificeren.

Het verschil tussen een samengestelde en een gecombineerde sleutel is dat elk onderdeel van een gecombineerde sleutel een externe sleutel kan zijn, terwijl een gecombineerde sleutel wel of niet onderdeel kan zijn van een externe sleutel.

Wat is een surrogaatsleutel?

VERVANGENDE SLEUTEL Een surrogaatsleutel is een kunstmatige sleutel die bedoeld is om elk record uniek te identificeren. Dit type sleutel is uniek omdat deze wordt aangemaakt wanneer er geen natuurlijke primaire sleutel beschikbaar is. Surrogaatsleutels hebben geen betekenis voor de gegevens in de tabel en zijn meestal een geheel getal dat wordt gegenereerd vlak voordat het record wordt ingevoegd.

Fnaam Achternaam Starttijd Eindtijd
Anne smid 09:00 18:00
krik Francis 08:00 17:00
Anna McLean 11:00 20:00
Getoond Willam 14:00 23:00

Het bovenstaande voorbeeld toont de werktijden van verschillende medewerkers. Hier is een surrogaatsleutel nodig om elke medewerker uniek te identificeren. Surrogaatsleutels in SQL worden gebruikt wanneer:

  • Geen enkele eigenschap heeft de parameter van een primaire sleutel.
  • De primaire sleutel is te groot of te ingewikkeld.

Verschil tussen primaire sleutel en buitenlandse sleutel

Het belangrijkste verschil tussen een primaire sleutel en een externe sleutel is als volgt:

Hoofdsleutel Vreemde sleutel
Hiermee kunt u een record in de tabel uniek identificeren. Het is een veld in de tabel dat de primaire sleutel is van een andere tabel.
Een primaire sleutel accepteert nooit null-waarden. Een externe sleutel kan meerdere nulwaarden accepteren.
De primaire sleutel is een geclusterde index en de gegevens in de tabel zijn fysiek georganiseerd in de volgorde van de geclusterde index. Een foreign key kan niet automatisch een index aanmaken, of deze nu geclusterd of niet-geclusterd is. Je kunt er handmatig een aanmaken.
Een tabel kan één primaire sleutel hebben. U kunt meerdere externe sleutels in een tabel hebben.

Veelgestelde vragen

Elke kandidaatsleutel kan een rij uniek identificeren. De primaire sleutel is de kandidaatsleutel die de ontwerper selecteert; de overige kandidaatsleutels worden alternatieve sleutels.

Beide combineren kolommen voor uniciteit. Bij een samengestelde sleutel is elke kolom zelf een externe sleutel, terwijl een samengestelde sleutel simpelweg twee of meer attributen combineert die geen externe sleutels hoeven te zijn.

Gebruik een surrogaatsleutel wanneer geen enkel natuurlijk attribuut betrouwbaar uniek is, of wanneer de natuurlijke sleutel groot is of kan veranderen. Een gegenereerd geheel getal blijft stabiel en houdt joins eenvoudig.

Ja. Door kolommen te profileren op uniciteit, null-percentage en stabiliteit, kan AI een shortlist van kandidaat-sleutels samenstellen en een primaire sleutel of een surrogaatsleutel voorstellen, waarbij de uiteindelijke keuze aan de ontwerper wordt overgelaten.

Ja. In tegenstelling tot een primaire sleutel kan een externe sleutel de waarde null bevatten. Dit vertegenwoordigt een rij die nog niet is gekoppeld aan een bovenliggend record. Een externe sleutel die niet null is, moet overeenkomen met een bestaande primaire sleutel.

Vat dit bericht samen met: