Verschil tussen primaire en kandidaatsleutel

Schrijver: Laura McKinney
Datum Van Creatie: 1 April 2021
Updatedatum: 3 Juli- 2024
Anonim
DIFFERENCE BETWEEN PRIMARY KEY AND CANDIDATE KEY IN DBMS WITH EXAMPLE
Video: DIFFERENCE BETWEEN PRIMARY KEY AND CANDIDATE KEY IN DBMS WITH EXAMPLE

Inhoud


Sleutels zijn het attribuut, of een set attributen die worden gebruikt om toegang te krijgen tot tupels vanuit een tabel of ze worden ook gebruikt om een ​​relatie tussen twee tabellen op te bouwen. In dit artikel gaan we de primaire en kandidaatsleutel en de verschillen daartussen bespreken. Zowel de primaire als de kandidaat-sleutel identificeert op unieke wijze een tuple in een relatie of tabel. Maar het belangrijkste punt dat hen onderscheidt, is dat er maar één kan zijn hoofdsleutel in een relatie. Er kunnen er echter meerdere zijn kandidaatsleutel in een relatie.

Er zijn nog meer verschillen tussen de primaire en kandidaatsleutel die ik zal bespreken met behulp van de onderstaande vergelijkingstabel.

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

Vergelijkingstabel

Basis voor vergelijkingHoofdsleutelKandidaatsleutel
basis-Er kan slechts één primaire sleutel in elke relatie zijn.Er kan meer dan één kandidaatsleutel zijn in een relatie.
NULGeen kenmerk van een primaire sleutel kan de waarde NULL bevatten.Het kenmerk van een kandidaatssleutel kan de waarde NULL hebben.
specificerenHet is optioneel om voor elke relatie een primaire sleutel op te geven.Er kan geen relatie zijn zonder opgegeven kandidaatsleutel.
Voorzien zijn vanPrimaire sleutel beschrijft het belangrijkste kenmerk voor de relatie.Kandidaatsleutels zijn kandidaten die in aanmerking kunnen komen voor de primaire sleutel.
Vice versaEen primaire sleutel is een kandidaatssleutel.Maar het is niet verplicht dat elke kandidaatssleutel een primaire sleutel kan zijn.


Definitie van primaire sleutel

Hoofdsleutel is een attribuut of een set attributen die elke tuple in een relatie uniek identificeren. Er kan alleen maar zijn een primaire sleutel voor elke relatie. Er moet voor worden gezorgd dat een primaire sleutel moet worden gebruikt nooit bevatten een NUL waarde, en het moet de uniek waarde voor elke tupel in de relatie. De waarden van de attributen van de primaire sleutel moeten zijn statisch, d.w.z. de waarde van het kenmerk mag nooit of zelden worden gewijzigd.

Een van de Kandidaatsleutels wordt gekwalificeerd om een ​​primaire sleutel te worden. De reglement dat een kandidaatsleutel in aanmerking moet komen om primair te worden, is dat de sleutelwaarde nooit mag zijn NUL en het moet zo zijn uniek voor alle tupels.

Als een relatie een kenmerk bevat dat een primaire sleutel is van een andere relatie, wordt dat kenmerk genoemd vreemde sleutel.


Het wordt geadviseerd om de primaire sleutel van een relatie te achterhalen voordat andere attributen van een relatie worden geïntroduceerd, aangezien de primaire sleutel elke tuple uniek identificeert. Het is beter om een ​​enkel attribuut of een klein aantal attributen als primaire sleutel te kiezen, waardoor het gemakkelijker wordt om relaties op te lossen.

Laten we nu een voorbeeld van een primaire sleutel bekijken.

Student {ID, voornaam, achternaam, leeftijd, adres}

Hier zullen we eerst de kandidaatsleutels uitzoeken. Ik heb het ontdekt twee kandidaatsleutels {ID KAART} en {Voornaam Achternaam} omdat ze elke student in de Student-relatie uniek zullen identificeren. Nu, hier zal ik kiezen ID kaart als mijn primaire sleutel, omdat het soms kan gebeuren dat twee studenten dezelfde voor- en achternaam hebben, dus het is gemakkelijk om een ​​student te traceren met zijn ID kaart.

Definitie van de kandidaatssleutel

EEN kandidaatsleutel is een attribuut of een set attributen die een tuple in een relatie uniek definiëren. Er is een meer dan een kandidaatsleutel in een relatie. Deze kandidaatssleutels zijn de kandidaten die in aanmerking kunnen komen om een ​​primaire sleutel te worden.

Hoewel elke kandidaatsleutel in aanmerking komt om een ​​primaire sleutel te worden, kan er slechts één worden gekozen als primaire sleutel. De regels die een kandidaatsleutel vereist om primaire sleutel te worden, zijn de kenmerkwaarde van de sleutel kan nooit zijn NUL in elk domein van de sleutel moet dat zo zijn uniek en statisch.

Als alle kandidaatsleutels in aanmerking komen voor de primaire sleutel, dan is een ervaren DBA moet de beslissing nemen om de primaire sleutel te achterhalen. Er kan nooit een relatie zijn zonder kandidaatssleutel.

Laten we de kandidaatsleutel begrijpen met een voorbeeld. Als we wat meer attributen toevoegen aan de relatie met de student, heb ik hierboven besproken.

Student {ID, Voornaam, Achternaam, Leeftijd, Adres, DOB, Afdelingsnaam}

Hier kan ik achter komen twee kandidaatsleutels die zijn {ID KAART}, {Voornaam, Achternaam, DOB}. Je kunt dus begrijpen dat de kandidaatsleutels er een zijn die een tuple in een relatie uniek identificeert.

  1. Het basispunt dat de primaire sleutel onderscheidt van de kandidaatsleutel, is dat er slechts één primaire sleutel voor een relatie in een schema kan zijn. Er kunnen echter meerdere kandidaatsleutels zijn voor een enkele relatie.
  2. Het kenmerk onder de primaire sleutel kan nooit een NULL-waarde bevatten, omdat de belangrijkste functie van de primaire sleutel is om een ​​record uniek te identificeren in relatie. Zelfs een primaire sleutel kan worden gebruikt als externe sleutel in een andere relatie, en daarom mag deze niet NULL zijn zodat de referentierelatie de tupels in een referentierelatie kan vinden. De kandidaatssleutel kan NULL zijn, tenzij de kenmerkbeperking is opgegeven en niet null is.
  3. Het is optioneel om een ​​primaire sleutel op te geven, maar er kan geen relatie zijn zonder kandidaatsleutels.
  4. Primaire sleutel beschrijft het unieke en belangrijkste attribuut van een relatie, terwijl de kandidaatsleutels de kandidaten bieden waaronder een als primaire sleutel kan worden geselecteerd.
  5. Elke primaire sleutel is een kandidaatsleutel, maar vice versa is niet waar.

Gevolgtrekking:

Het is optioneel voor een relatie om een ​​primaire sleutel op te geven. Aan de andere kant, als u een relatie aangeeft, moeten kandidaatsleutels in die relatie aanwezig zijn om een ​​goede relatie op te bouwen.