Verschil tussen primaire sleutel en externe sleutel in DBMS

Schrijver: Laura McKinney
Datum Van Creatie: 1 April 2021
Updatedatum: 12 Kunnen 2024
Anonim
Primary key and Foreign Key in DBMS
Video: Primary key and Foreign Key in DBMS

Inhoud


Sleutels zijn het cruciale onderdeel van DBMS waarmee ze een relatie tussen de tabellen in een schema identificeren en tot stand brengen. Nu gaan we vandaag twee zeer belangrijke sleutels van DBMS bespreken, namelijk de primaire sleutel en de externe sleutel, en we zullen ook het verschil bespreken tussen de primaire sleutel en de externe sleutel. Laat me u onderweg vertellen dat het fundamentele verschil tussen primaire en externe sleutel, die primaire sleutel is, een van de gekozen kandidaatsleutels is van de databaseontwerper, terwijl een externe sleutel een sleutel is die verwijst naar de primaire sleutel van een andere relatie.

Er zijn veel andere verschillen tussen deze twee, laten we die verschillen identificeren met behulp van de onderstaande vergelijkingstabel.

  1. Vergelijkingstabel
  2. Definitie
  3. Belangrijkste verschillen
  4. Gevolgtrekking

Vergelijkingstabel

Basis voor vergelijkingHoofdsleutelVreemde sleutel
basis-Primaire sleutel is een gekozen kandidaatsleutel die op unieke wijze een tuple in een relatie definieert.Een externe sleutel in een tabel verwijst naar de primaire sleutel van een andere tabel.
NULDe primaire sleutelwaarde kan nooit NULL zijn.De externe sleutel accepteert de waarde NULL.
DuplicaatGeen twee tupels in een relatie hebben dubbele waarden voor een primair sleutelkenmerk.Tuples kunnen dubbele waarden bevatten voor een kenmerk met een externe sleutel.
reeksEr kan slechts één primaire sleutel van een relatie zijn.Er kunnen meerdere externe sleutels in een relatie zijn.
Tijdelijke tabelPrimaire sleutelbeperking kan worden gedefinieerd in de tijdelijke tabellen.Buitenlandse sleutelbeperking kan niet worden gedefinieerd in de tijdelijke tabellen.
Geclusterde indexStandaard wordt een primaire sleutel geclusterd geïndexeerd.Buitenlandse sleutel wordt niet automatisch geclusterd geïndexeerd; het moet handmatig worden gedaan.
InvoegingWe kunnen een waarde aan een primair sleutelkenmerk toevoegen, zelfs als de buitenlandse sleutel die die waarde bevat niet in de kolom voorkomt.We kunnen geen waarde aan een externe sleutel toevoegen als die waarde niet aanwezig is in de kolom waarnaar wordt verwezen als primaire sleutel.
verwijderingVoordat u een primaire sleutelwaarde verwijdert, moet u ervoor zorgen dat die waarde nog steeds niet aanwezig is in de kolom met de referentiesleutel in de referentietabel.U kunt een waarde uit de kolom met een externe sleutel verwijderen zonder dat u zich druk maakt, of die waarde aanwezig is in de kolom met de primaire sleutel waarnaar wordt verwezen of de relatie waarnaar wordt verwezen.


Definitie van primaire sleutel

Een primaire sleutel uniek definieert tupels in een relatie. Het kan een enkel attribuut in een relatie zijn, of het kan een set attributen in een relatie zijn. De waarde van het kenmerk primaire sleutel moet nooit of zelden veranderd. Omdat het een principaal is, betekent dit om elk record in een database te identificeren. Verandering in een attribuutwaarde van primaire sleutel zou verwarring veroorzaken.

Database-ontwerper kiest een van de kandidaatsleutels als een primaire sleutel, rekening houdend met enkele punten. De eerste overweging is dat een primaire sleutelattribuutwaarde nooit kan bevatten NUL waarde. Omdat als een kenmerkwaarde van een primaire sleutel NULL bevat, dit betekent dat we die record in de tabel niet kunnen identificeren. Het is ook een inbreuk op de integriteitsbeperking van de entiteit. Tweede overweging is, geen twee tupels in een tabel kan de bevatten dezelfde waarde voor een primair sleutelkenmerk, omdat dit het unieke karakter van de tupels zou schenden.


Dat kan er alleen maar zijn een primaire sleutel voor enige relatie. De primaire sleutel is standaard -Cluster geïndexeerd, wat betekent dat alle tupels in een tabel zijn gesorteerd, op basis van de waarden van de primaire sleutels. De primaire sleutelbeperking kan worden gedefinieerd op a tijdelijke tafel. Tussentabellen die tijdens de uitvoering van een query zijn gemaakt, worden tijdelijke tabellen genoemd.

Terwijl verwijderen een tupel van een relatie, moet men ervoor zorgen dat de primaire sleutelwaarde van de verwijderde tuple nog steeds niet aanwezig is in de kolom met de externe sleutel van de relatie waarnaar wordt verwezen. Terwijl de invoeging heeft geen beperkingen voor een primaire sleutel.

De primaire sleutel van een tabel wordt in een andere tabel gebruikt als een externe sleutel voor die tabel. Buitenlandse sleutelbeperkingen worden hieronder besproken.

Definitie van buitenlandse sleutel

Wanneer een relatie R1heeft onder zijn attributen een primair sleutel van een andere relatie R2, dan wordt dat kenmerk genoemd Vreemde sleutel voor relatie R1. De relatie R1 met de externe sleutel wordt opgeroepen verwijzende relatie omdat het verwijst naar de primaire sleutel van relatie R2 en relatie R2 wordt genoemd verwezen relatie.
In tegenstelling tot de primaire sleutel kan de externe sleutel accepteren NUL waarden omdat het niet de taak heeft om een ​​record in een relatie duidelijk te identificeren, omdat we hiervoor de primaire sleutel hebben. Op dezelfde manier accepteert de externe sleutel ook dubbele waarden.

Een relatie kan hebben meerdere buitenlandse sleutels, omdat deze verschillende attributen kunnen hebben die primaire sleutels zijn in verschillende relaties. Buitenlandse sleutelbeperking kan niet worden gedefinieerd op de tijdelijke tabellen, noch een externe sleutel is een -Cluster geïndexeerd attribuut.

Terwijl invoegen een waarde in een externe-sleutelkolom van de verwijzingsrelatie, zorg ervoor dat de invoegwaarde aanwezig moet zijn in de primaire-sleutelkolom van de verwijzingsrelatie. Terwijl er geen beperking is, terwijl verwijderen een waarde uit de kolom met de externe sleutel.

  1. Een primaire is een set kenmerken / een kandidaatssleutel die een record in een relatie duidelijk identificeert. Een externe sleutel in een tabel verwijst echter naar de primaire sleutel van een andere tabel.
  2. Geen primaire sleutelkenmerken kunnen NULL-waarden bevatten, terwijl een externe sleutelkenmerk NULL-waarde kan accepteren.
  3. Een primaire sleutel moet unieke kenmerkwaarden hebben, terwijl een externe sleutel dubbele kenmerkwaarden kan hebben.
  4. Er kunnen meerdere externe sleutels in een relatie zijn, maar een relatie heeft slechts één primaire sleutel.
  5. De primaire sleutelbeperking kan worden toegepast op de tijdelijke tabellen. Beperking van externe sleutels kan echter niet worden toegepast op de tijdelijke tabellen.
  6. Een primaire sleutel wordt standaard geclusterd geïndexeerd, terwijl een externe sleutel niet automatisch wordt geïndexeerd, maar dit kan handmatig worden gedaan.
  7. Zorg er bij het invoegen van een waarde in een kolom met een externe sleutel voor dat de invoegkenmerkwaarde aanwezig is in de kolom met de primaire sleutel waarnaar wordt verwezen. Er is echter geen beperking voor invoegen in de kolom met de primaire sleutel.
  8. Let er bij het verwijderen van een waarde uit de primaire-sleutelkolom op dat de verwijderde kenmerkwaarde niet aanwezig is in de externe-sleutelkolom. Er is echter geen beperking voor het verwijderen van een waarde uit een kolom met een externe sleutel.

Gevolgtrekking:

Beide, primaire sleutel en externe sleutel zijn essentieel voor een schema. Een primaire sleutel definieert elke tupel in een relatie op unieke wijze, terwijl een externe sleutel wordt gebruikt om een ​​koppeling tussen twee relaties te maken.