De belangrijk verschil tussen de externe sleutel en de primaire sleutel is dat foreign key is een kolom of een reeks kolommen die verwijst naar een primaire sleutel of een kandidaatsleutel van een andere tabel, terwijl de primaire sleutel een kolom of een reeks kolommen is die kan worden gebruikt om een rij in een tabel uniek te identificeren.
Een kolom of een reeks kolommen die kan worden gebruikt om een rij of een reeks rijen in een database te identificeren of te openen, wordt een sleutel genoemd. Een primaire sleutel in een relationele database is een combinatie van kolommen in een tabel die op unieke wijze een rij van de tabel identificeren. Externe sleutel in een relationele database is een veld in een tabel dat overeenkomt met de primaire sleutel van een andere tabel. De foreign key wordt gebruikt om referentietabellen te kruisen.
1. Overzicht en belangrijkste verschil
2. Wat is de buitenlandse sleutel
3. Wat is primaire sleutel
4. Vergelijking zij aan zij - Vreemde sleutel en primaire sleutel in tabelvorm
5. Samenvatting
Vreemde sleutel is een referentiële beperking tussen twee tabellen. Het identificeert een kolom of een reeks kolommen in één tabel, de verwijzings-tabel genoemd die verwijst naar een reeks kolommen in een andere tabel, de tabel met verwijzingen genoemd. De externe sleutel of de kolommen in de verwijzingstabel moeten de primaire sleutel of een kandidaatsleutel zijn (een sleutel die als de primaire sleutel kan worden gebruikt) in de tabel waarnaar wordt verwezen. Bovendien maken externe sleutels het koppelen van gegevens over meerdere tabellen mogelijk. Daarom kan de foreign key geen waarden bevatten die niet in de tabel staan waarnaar deze verwijst. Vervolgens helpt de referentie die wordt verschaft door de buitenlandse sleutel om informatie in verschillende tabellen te koppelen en dit zou essentieel worden met genormaliseerde databases. Meerdere rijen in de verwijzingstabel kunnen verwijzen naar een enkele rij in de tabel waarnaar wordt verwezen.
Figuur 01: Foreign Key Mapping
In ANSI SQL-standaard definieert de FOREIGN KEY-voorwaarde buitenlandse sleutels. Bovendien is het mogelijk om de externe sleutels te definiëren bij het maken van de tabel zelf. Een tabel kan meerdere externe sleutels hebben en ze kunnen verwijzen naar verschillende tabellen.
Primaire sleutel is een kolom of een combinatie van kolommen die op unieke wijze een rij definieert in een tabel van een relationele database. Een tabel kan maximaal één primaire sleutel bevatten. Primaire sleutel dwingt de impliciete NOT NULL-beperking af. Daarom kan een kolom met primaire sleutel geen NULL-waarden bevatten. Primaire sleutel kan een normaal kenmerk in de tabel zijn dat gegarandeerd uniek is, zoals een sofinummer, of het kan een unieke waarde zijn die wordt gegenereerd door het databasebeheersysteem, zoals een Globally Unique Identifier (GUID) in Microsoft SQL Server.
Figuur 02: Primaire sleutel
Bovendien definieert de PRIMARY KEY-voorwaarde in ANSI SQL Standard primaire sleutels. Het is ook mogelijk om een primaire sleutel te definiëren bij het maken van de tabel. Bovendien staat SQL toe dat de primaire sleutel wordt samengesteld uit een of meer kolommen en elke kolom die is opgenomen in de primaire sleutel, is impliciet gedefinieerd als NOT NULL. Sommige databasebeheersystemen vereisen echter dat de primaire kolomkolommen expliciet NIET NULL zijn.
Externe sleutel versus primaire sleutel | |
Externe sleutel is een kolom of groep kolommen in een relationele databasetabel die een koppeling tussen gegevens in twee tabellen biedt. | Primaire sleutel is een speciale relationele databasetabelkolom of een combinatie van meerdere kolommen waarmee alle tabelrecords op unieke wijze kunnen worden geïdentificeerd. |
NUL | |
De buitenlandse sleutel accepteert de NULL-waarde. | De waarde van de primaire sleutel kan niet NULL zijn. |
Aantal toetsen | |
Tabel kan meerdere externe sleutels hebben. | Tabel kan slechts één primaire sleutel bevatten. |
verdubbeling | |
Tuples kunnen een dubbele waarde hebben voor een kenmerk met een buitenlandse sleutel. | Twee tuples in een relatie kunnen geen dubbele waarden hebben voor een kenmerk met een primaire sleutel. |
Het verschil tussen de externe sleutel en de primaire sleutel is dat de externe sleutel een kolom of een reeks kolommen is die verwijst naar een primaire sleutel of een kandidaatsleutel van een andere tabel, terwijl de primaire sleutel een kolom of een reeks kolommen is die uniek kunnen worden gebruikt identificeer een rij in een tabel.
1. "Foreign Key." Wikipedia, Wikimedia Foundation, 12 mei 2018. Beschikbaar Hier
2. "Primaire sleutel." Wikipedia, Wikimedia Foundation, 3 april 2018. Beschikbaar Hier
1.'Buiten-sleutel-in kaart brengen'door MovGP0 - Eigen werk, (CC BY-SA 3.0) via Commons Wikimedia
2.'Erd-id-as-primary-key'Door UniCollab - Eigen werk, (CC BY-SA 3.0) via Commons Wikimedia