Aanbevolen, 2024

Editor'S Choice

Verschil tussen primaire en kandidaat-sleutel

Toetsen zijn het kenmerk of een set kenmerken die worden gebruikt om toegang te krijgen tot tuples uit een tabel of ze worden ook gebruikt om een ​​relatie tussen twee tabellen te construeren. In dit artikel gaan we het hebben over Primaire en Kandidaat Sleutel en de verschillen tussen hen. Zowel Primary als Candidate Key identificeert op unieke wijze een tuple in een relatie of tabel. Maar het belangrijkste punt dat hen onderscheidt, is dat er maar één primaire sleutel in een relatie kan zijn. Er kan echter meer dan één kandidaatssleutel in een relatie zijn.

Er zijn wat meer verschillen tussen Primary en Candidate Key die ik zal bespreken met behulp van de onderstaande vergelijkingsgrafiek.

Vergelijkingstabel

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

Definitie van primaire sleutel

Primaire sleutel is een attribuut of een set attributen die elke tuple in een relatie uniek identificeert. Er kan slechts één primaire sleutel zijn voor elke relatie. Er moet voor worden gezorgd dat een primaire sleutel nooit een NULL- waarde bevat en deze moet de unieke waarde hebben voor elke tuple in de relatie. De waarden van het attribuut / de attributen van de primaire sleutel moeten statisch zijn, dwz de waarde van het attribuut mag nooit of zelden worden gewijzigd.

Een van de kandidaat-sleutels wordt gekwalificeerd om een ​​primaire sleutel te worden. De regels die een kandidaat-sleutel moet kwalificeren om primair te worden, zijn dat de sleutelwaarde nooit NULL moet zijn en dat deze uniek moet zijn voor alle tuples.

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

Het wordt aangeraden om de primaire sleutel van een relatie te achterhalen voordat u andere kenmerken van een relatie introduceert als primaire sleutel, die elk tuple uniek identificeert. Het is beter om een ​​enkel attribuut of een klein aantal attributen als primaire sleutel te kiezen, het maakt het afhandelen van relaties eenvoudig.

Laten we nu een voorbeeld van een primaire sleutel bekijken.

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

Hier zullen we eerst de kandidaatsleutels vinden. Ik heb twee kandidaatsleutels {ID} en {First_name, Last_name} bedacht, omdat ze elke student in de studentenrelatie uniek identificeren. Nu zal ik hier ID kiezen 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 .

Definitie van kandidaat-sleutel

Een kandidaatsleutel is een attribuut of een set attributen die op unieke wijze een tuple in een relatie definieert. Er zijn meer dan één kandidaatssleutel in een relatie. Deze Kandidaatsleutels zijn de kandidaten die zich kunnen kwalificeren om een ​​primaire sleutel te worden.

Hoewel elke kandidaat-sleutel in aanmerking komt om een ​​primaire sleutel te worden, kan er maar één als primaire sleutel worden gekozen. De regels die een kandidaatsleutel vereist om primaire sleutel te worden, is dat de kenmerkwaarde van de sleutel nooit nul kan zijn in een willekeurig domein van de sleutel, het moet uniek en statisch zijn .

Als alle kandidaatsleutels in aanmerking komen voor de primaire sleutel, moet een ervaren DBA beslissen om de primaire sleutel te achterhalen. Er kan nooit een relatie zijn zonder kandidaat-sleutel.

Laten we de kandidaat-sleutel begrijpen met een voorbeeld. Als we wat meer attributen toevoegen aan de relatie met studenten, heb ik het hierboven besproken.

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

Hier kan ik twee kandidaat-sleutels achterhalen die {ID}, {First_name, Last_name, DOB} zijn . U kunt dus begrijpen dat de kandidaatsleutels er een zijn die op unieke wijze een tuple in een relatie identificeert.

Belangrijkste verschillen tussen primaire en kandidaat-sleutel

  1. Het basispunt dat de primaire sleutel van de kandidaatsleutel onderscheidt, is dat er maar één primaire kan zijn voor een relatie in een schema. Er kunnen echter meerdere kandidaatsleutels zijn voor een enkele relatie.
  2. Het attribuut onder de primaire sleutel mag nooit een NULL-waarde bevatten omdat de belangrijkste functie van de primaire sleutel het uniek identificeren van een record in relatie is. Zelfs een primaire sleutel kan worden gebruikt als externe sleutel in een andere relatie en daarom mag deze niet NULL zijn, zodat de verwijzende relatie de tuples kan vinden in een relatie waarnaar wordt verwezen. De kandidaat-sleutel kan NULL zijn tenzij de attribuutbeperking niet nul 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 verschaffen waarvan er één als een primaire sleutel kan worden geselecteerd.
  5. Elke primaire sleutel is een kandidaat-sleutel, maar omgekeerd is niet waar.

Conclusie:

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

Top