Voordat we het verschil leren tussen de primaire sleutel en de externe sleutel, leren we:
Wat zijn sleutels?
Sleutels zijn attributen waarmee u een rij (tuple) in een relatie (tabel) kunt identificeren. Hiermee kunt u de relatie tussen twee tabellen vinden. Met sleutels kunt u een rij in een tabel op unieke wijze identificeren door een combinatie van een of meer kolommen in die tabel. De databasesleutel is ook handig om een uniek record of een unieke rij uit de tabel te vinden.
Wat is databaserelatie?
De databaserelatie bestaat uit koppelingen tussen een of meer tabellen die zijn gemaakt met behulp van join-instructies. Het wordt gebruikt om efficiënt gegevens uit de database op te halen. Er zijn hoofdzakelijk drie soorten relaties: 1) Een-op-een, 2) Een-op-veel, 3) Veel-op-veel.
Wat is de primaire sleutel?
Een primaire sleutelbeperking is een kolom of groep kolommen die elke rij in de tabel van het relationele databasebeheersysteem uniek identificeert. Het mag geen duplicaat zijn, wat betekent dat dezelfde waarde niet meer dan één keer in de tabel mag voorkomen.
Een tabel kan meer dan één primaire sleutel hebben. De primaire sleutel kan op kolom- of tabelniveau worden gedefinieerd. Als u een samengestelde primaire sleutel maakt, moet deze op tabelniveau worden gedefinieerd.
Wat is een externe sleutel?
Vreemde sleutel is een kolom die een relatie tussen twee tabellen creëert. Het doel van de externe sleutel is om de gegevensintegriteit te behouden en om navigatie tussen twee verschillende instanties van een entiteit mogelijk te maken. Het fungeert als een kruisverwijzing tussen twee tabellen omdat het verwijst naar de primaire sleutel van een andere tabel. Elke relatie in de database moet worden ondersteund door een externe sleutel.
BELANGRIJKSTE VERSCHILLEN:
- Een primaire sleutelbeperking is een kolom die elke rij in de tabel van het relationele databasebeheersysteem uniek identificeert, terwijl externe sleutel een kolom is die een relatie tussen twee tabellen creëert.
- Primaire sleutel accepteert nooit null-waarden, terwijl externe sleutel meerdere null-waarden kan accepteren.
- U kunt slechts één primaire sleutel in een tabel hebben, terwijl u meerdere externe sleutels in een tabel kunt hebben.
- De waarde van de primaire sleutel kan niet uit de bovenliggende tabel worden verwijderd, terwijl de waarde van de waarde van de externe sleutel uit de onderliggende tabel kan worden verwijderd.
- Geen twee rijen kunnen identieke waarden hebben voor een primaire sleutel, aan de andere kant kan een externe sleutel dubbele waarden bevatten.
- Er is geen beperking bij het invoegen van de waarden in de tabelkolom terwijl u een waarde in de externe-sleuteltabel invoegt, zorg ervoor dat de waarde aanwezig is in een kolom van een primaire sleutel.
Waarom primaire sleutel gebruiken?
Dit zijn de nadelen / voordelen van het gebruik van de primaire sleutel:
- Het belangrijkste doel van de primaire sleutel is om elk record in de databasetabel te identificeren.
- U kunt een primaire sleutel gebruiken als u iemand niet toestaat null-waarden in te voeren.
- Als u records verwijdert of bijwerkt, wordt de door u gespecificeerde actie ondernomen om de gegevensintegriteit te waarborgen.
- Voer de beperkingsbewerking uit om de verwijderings- of updatebewerking voor de bovenliggende tabel te weigeren.
- De gegevens worden georganiseerd in een opeenvolging van geclusterde indexen wanneer u de DBMS-tabel fysiek organiseert.
Waarom een Foreign Key gebruiken?
Hier zijn de belangrijkste redenen om een externe sleutel te gebruiken:
- Vreemde sleutels helpen u entiteiten te migreren met behulp van een primaire sleutel uit de bovenliggende tabel.
- Met een externe sleutel kunt u twee of meer tabellen aan elkaar koppelen.
- Het maakt uw databasegegevens consistent.
- Een externe sleutel kan worden gebruikt om een kolom of combinatie van kolommen te matchen met een primaire sleutel in een bovenliggende tabel.
- SQL-externe-sleutelbeperking wordt gebruikt om ervoor te zorgen dat de referentiële integriteit van de bovenliggende gegevens overeenkomt met de waarden in de onderliggende tabel.
Voorbeeld van primaire sleutel
Syntaxis:
Hieronder vindt u de syntaxis van de primaire sleutel:
CREATE TABLE(Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);
Hier,
- Table_Name is de naam van de tabel die u moet maken.
- Column_Name is de naam van de kolom met de primaire sleutel.
Voorbeeld:
StudID | Rol nr | Voornaam | Achternaam | |
---|---|---|---|---|
1 | 11 | Tom | Prijs | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
2 | 12 | Nick | Wright | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
3 | 13 | Dana | Natan | Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. |
In het bovenstaande voorbeeld hebben we een studententabel gemaakt met kolommen als StudID, Rolnummer, Voornaam, Achternaam en E-mail. StudID is gekozen als primaire sleutel omdat het op unieke wijze andere rijen in de tabel kan identificeren.
Voorbeeld van een externe sleutel
Syntaxis:
Hieronder staat de syntaxis van Foreign Key:
CREATE TABLE