Verschil tussen primaire sleutel en buitenlandse sleutel
Belangrijkste verschillen tussen primaire sleutel en buitenlandse sleutel
- Een primaire sleutelbeperking is een kolom die elke rij in de tabel van het relationele databasebeheersysteem op unieke wijze identificeert, terwijl een externe sleutel een kolom is die een relatie tussen twee tabellen creëert.
- De primaire sleutel accepteert nooit nulwaarden, terwijl de externe sleutel meerdere nulwaarden 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 externe sleutel wel uit de onderliggende tabel kan worden verwijderd.
- Geen twee rijen kunnen identieke waarden voor een primaire sleutel hebben; aan de andere kant kan een externe sleutel dubbele waarden bevatten.
- Er is geen beperking voor het invoegen van de waarden in de tabelkolom tijdens het invoegen van een waarde in de externe sleuteltabel; zorg ervoor dat de waarde aanwezig is in een kolom van een primaire sleutel.

Hier heb ik het verschil tussen de primaire sleutel en de externe sleutel geanalyseerd en zal ik de voor- en nadelen ervan uitgebreid evalueren.
Wat is primaire sleutel?
Een primaire sleutelbeperking is een kolom of groep kolommen die elke rij in de tabel van het relationele databasebeheersysteem op unieke wijze identificeert. Het kan geen duplicaat zijn, wat betekent dat dezelfde waarde niet vaker dan één keer in de tabel mag voorkomen.
Een tabel kan niet meer dan één primaire sleutel hebben. De hoofdsleutel kan worden gedefinieerd op kolom- of tabelniveau. Als u een samengestelde primaire sleutel maakt, moet deze op tabelniveau worden gedefinieerd.
Voorbeeld van een primaire sleutel
Syntax:
Hieronder vindt u de syntaxis van de primaire sleutel:
CREATE TABLE <Table-Name> ( Column1 datatype, Column2 datatype, PRIMARY KEY (Column-Name) . );
Hier
- Tabelnaam is de naam van de tabel die u moet maken.
- Kolomnaam is de naam van de kolom met de primaire sleutel.
Voorbeeld:
StudID | Rol nr | Voornaam | Achternaam | |
---|---|---|---|---|
1 | 11 | Tom | Prijs | abc@gmail.com |
2 | 12 | Nick | Wright | xyz@gmail.com |
3 | 13 | Dana | Nathan | mno@yahoo.com |
In het bovenstaande voorbeeld hebben we een studententabel gemaakt met kolommen als StudID, Roll No., First Name, Last Name en Email. StudID is gekozen als primaire sleutel omdat het andere rijen in de tabel op unieke wijze kan identificeren.
Waarom primaire sleutel gebruiken?
Gedurende de jaren dat ik met databasesystemen heb gewerkt, heb ik de volgende nadelen en voordelen opgemerkt bij het gebruik van een 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 niet toestaat dat iemand nulwaarden invoert.
- Als u records verwijdert of bijwerkt, wordt de door u opgegeven actie ondernomen om de gegevensintegriteit te garanderen.
- Voer de beperkingsbewerking uit om de verwijder- of updatebewerking voor de bovenliggende tabel te weigeren.
- Wanneer u een DBMS-tabel fysiek organiseert, worden gegevens georganiseerd in een reeks geclusterde indexen.
Wat is buitenlandse sleutel?
Foreign key is een kolom die een relatie tussen twee tabellen creëert. Het doel van de Foreign key is om de gegevensintegriteit te behouden en navigatie tussen twee verschillende exemplaren 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.
Voorbeeld van een buitenlandse sleutel
Syntax:
Hieronder vindt u de syntaxis van Foreign Key:
CREATE TABLE <Table Name>( column1 datatype, column2 datatype, constraint (name of constraint) FOREIGN KEY [column1, column2...] REFERENCES [primary key table name] (List of primary key table column) ...);
Hier
- De parameter Tabelnaam geeft de naam aan van de tabel die u gaat maken.
- De parameters kolom1, kolom2… geven de kolommen weer die aan de tabel moeten worden toegevoegd.
- Een beperking geeft de naam aan van de beperking die u maakt.
- Verwijzingen geven een tabel aan met de primaire sleutel.
Voorbeeld:
DeptCode | Afdelingsnaam |
---|---|
001 | Wetenschap |
002 | Engels |
005 | Computer |
Leraar-ID | Fnaam | Lnaam |
---|---|---|
B002 | David | Warner |
B017 | Sara | Jozef |
B009 | Mike | Brunton |
In het bovenstaande voorbeeld hebben we twee tabellen: een leraar en een afdeling in een school. Er is echter geen manier om te zien welke zoekopdracht op welke afdeling werkt.
In deze tabel kunnen we, door de externe sleutel in Deptcode aan de naam van de leraar toe te voegen, een relatie tussen de twee tabellen creëren.
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.
Waarom een buitenlandse sleutel gebruiken?
Van wat ik heb gezien, zijn hier de belangrijke redenen om externe sleutels te implementeren:
- Met externe sleutels kunt u entiteiten migreren met behulp van een primaire sleutel uit de bovenliggende tabel.
- A vreemde sleutel Hiermee 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 de primaire sleutel in een bovenliggende tabel.
- SQL-beperking voor externe sleutels wordt gebruikt om ervoor te zorgen dat de referentiële integriteit van de bovenliggende gegevens overeenkomt met de waarden in de onderliggende tabel.
Verschil tussen primaire sleutel en externe sleutel
Laat me het belangrijke verschil tussen een primaire sleutel en een externe sleutel delen, zoals ik persoonlijk heb ervaren:
Vergelijkingsbasis | Hoofdsleutel | Vreemde sleutel |
---|---|---|
Definitie | Een primaire sleutelbeperking is een kolom of groep kolommen die elke rij in de tabel op unieke wijze identificeert relationeel databasebeheersysteem. | Een externe sleutel is een kolom die een relatie tussen twee tabellen tot stand brengt. |
Basic | Het helpt u een record in de tabel uniek te identificeren. | Het is een veld in de tabel dat de primaire sleutel is van een andere tabel. |
NULL | Primaire sleutel accepteert nooit nulwaarden. | Een externe sleutel kan meerdere nulwaarden accepteren. |
Indexeren | De primaire sleutel is een geclusterde index en de gegevens in de DBMS-tabel worden fysiek georganiseerd in de volgorde van de geclusterde index. | Een externe sleutel kan niet automatisch een index aanmaken, geclusterd of niet-geclusterd. |
Tellen | U kunt één primaire sleutel in een tabel hebben. | U kunt meerdere externe sleutels in een tabel hebben. |
Recht op verwijdering | De waarde van de primaire sleutel kan niet uit de bovenliggende tabel worden verwijderd. | De waarde van de externe sleutel kan uit de onderliggende tabel worden verwijderd. |
Tijdelijke tafel | U kunt de primaire sleutel impliciet definiëren in de tijdelijke tabellen. | U kunt geen externe sleutels definiëren voor de lokale of globale tijdelijke tabellen. |
Verhouding | De primaire sleutel is een geclusterde index. | Standaard is dit geen geclusterde index. |
Verdubbeling | Geen twee rijen kunnen identieke waarden hebben voor een primaire sleutel. | Een externe sleutel kan dubbele waarden bevatten. |
Invoeging | Er is geen beperking voor het invoegen van de waarden in de tabelkolom. | Zorg er bij het invoegen van een waarde in de externe sleuteltabel voor dat de waarde aanwezig is in een kolom van een primaire sleutel. |
Hoe u kunt kiezen tussen een primaire sleutel en een externe sleutel
Van wat we hebben gezien, identificeren primaire sleutels tabelgegevens op unieke wijze, en externe sleutels verbinden deze gegevens over tabellen heen, beide van cruciaal belang voor het behoud van de gegevensintegriteit en het faciliteren van efficiënt ophalen van gegevens.