Aanbevolen, 2020

Editor'S Choice

Verschil tussen primaire sleutel en unieke sleutel

We hebben al verschillende soorten sleutels bestudeerd die in de database en het schema werden gebruikt in de vorige artikelen, namelijk Difference Between Primary key en Foreign Key. In dit artikel onderscheiden we de primaire sleutel en de unieke sleutel. Zowel de primaire sleutel als de unieke sleutel worden gebruikt om een ​​tuple uniek te identificeren en dwingt uniekheid in een kolom of combinatie van een kolom af.

Het essentiële verschil tussen primaire sleutel en unieke sleutel is dat de primaire sleutel geen NULL-waarden accepteert, terwijl NULL-waarden zijn toegestaan ​​binnen Unieke sleutelbeperkingen.

Vergelijkingstabel

Basis voor vergelijkingHoofdsleutelUnieke sleutel
basis-Het wordt gebruikt om te dienen als een unieke identificatie voor elke rij in een tabel.Het bepaalt ook uniek een rij, die niet is gedefinieerd als een primaire sleutel.
NULL-waarde acceptatiePrimaire sleutel accepteert geen NULL-waarden.Unique accepteert een NULL-waarde.
Aantal sleutels dat in de tabel kan worden gedefinieerdSlechts één primaire sleutelMeerdere
InhoudsopgaveCreëert geclusterde indexMaakt niet-geclusterde index

Definitie van primaire sleutel

Een kolom kan als primaire sleutel van de tabel worden aangeroepen als deze uniek elke tupel (rij) in die tabel identificeert. Het dwingt integriteitsbeperkingen aan de tabel af. Slechts één primaire sleutel is toegestaan ​​in een tabel. De primaire sleutel accepteert de dubbele en NULL-waarden niet. De primaire sleutel is met zorg gekozen, waarbij de wijzigingen op een zeldzame manier kunnen voorkomen, wat betekent dat een primaire sleutel in een tabel zeer zelden verandert.

Laten we het begrip primaire sleutel begrijpen met behulp van een tabel. Hier maken we een tabel met de naam Studententabel, die attributen heeft zoals Roll_number, Name, Batch, Phone_number, Citizen_ID.

In het gegeven voorbeeld kan het kenmerkrollenummer nooit identieke en NULL-waarden hebben, omdat elke student zich inschrijft voor een universiteit met een uniek Roll_number. Geen twee studenten kunnen hetzelfde Roll_number hebben en elke rij in een tabel is uniek geïdentificeerd met het rolnummer van de student. In dit specifieke geval kunnen we dus het attribuut Roll_number als primaire sleutel gebruiken.

Naar een primaire sleutel kan worden verwezen met een foreign key. Het creëert een unieke geclusterde index op de tafel. In een geclusterde index worden de gegevensrijen gesorteerd en opgeslagen in een tabel of aanzichten op basis van de sleutelwaarden. Er kan slechts één geclusterde index in een tabel zijn, de reden hierachter is dat gegevensrijen in een tabel in slechts één volgorde kunnen worden gesorteerd.

Definitie van Unieke sleutel

Net als bij een primaire sleutel, identificeert Unieke sleutelbeperkingen ook een individueel tuple uniek in een relatie. Maar er zijn bepaalde verschillen tussen hen. Een tabel kan meer dan één unieke sleutel bevatten. Unieke sleutelbeperkingen kunnen slechts één NULL-waarde voor een kolom accepteren.

Laten we dit begrijpen met het vergelijkbare voorbeeld, waar we een studententabel hadden met de kenmerken Roll_number, Name, Batch, Phone_number en Citizen_ID. Rolnummerkenmerk wordt toegewezen aan de primaire sleutel.

Citizen_ID kan hier worden toegewezen met unieke beperkingen, waarbij elk item in een Citizen ID uniek moet zijn, niet duplicaat omdat elke burger van een land zijn of haar unieke identificatienummer moet hebben. Maar als een student migreert vanuit een ander land, dan zou hij of zij de Citizen_ID niet hebben en zou de invoer een NULL-waarde kunnen hebben, aangezien één NULL is toegestaan ​​in de unieke beperking.

Unieke beperkingen worden ook door de externe sleutel gerefereerd. Het kan worden gebruikt wanneer iemand beperkingen wil afdwingen voor een kolom en een groep kolommen, wat geen primaire sleutel is. In tegenstelling tot de primaire sleutel genereert deze de niet-geclusterde index . Niet-geclusterde indexen hebben een verschillende structuur van de gegevensrijen. Elke sleutelwaarde-invoer erin verwijst naar de gegevensrij die de sleutelwaarde bevat en gebruikt daarom verwijzingen.

Belangrijkste verschillen tussen primaire sleutel en unieke sleutel

  1. Wanneer een kenmerk wordt gedeclareerd als primaire sleutel, accepteert het geen NULL-waarden. Aan de andere kant, wanneer een attribuut als Unique wordt verklaard, kan het één NULL-waarde accepteren.
  2. Een tabel kan alleen een primaire sleutel hebben, terwijl er meerdere unieke beperkingen voor een tabel kunnen zijn.
  3. Een geclusterde index die automatisch wordt gemaakt wanneer een primaire sleutel wordt gedefinieerd. De unieke sleutel genereert daarentegen de niet-geclusterde index.

Conclusie

Primaire sleutel en Unieke sleutel dienen beide het doel van een unieke identificatie voor de rijen van een tabel met de unieke waarden in een kolom of groep kolommen. Deze belangrijkste beperkingen zijn significant verschillend, waarbij elke tabel maximaal één primaire sleutel kan hebben, terwijl een tabel meerdere unieke sleutels kan hebben die niet primair zijn.

Top