Primaire sleutel versus unieke sleutel
Een kolom of een reeks kolommen die kan worden gebruikt om een rij of een reeks rijen in een database te identificeren of te openen, wordt een sleutel genoemd. Een unieke sleutel is een sleutel die een rij in een tabel op unieke wijze kan identificeren in de context van relationele databases. Een unieke sleutel bestaat uit een enkele kolom of een reeks kolommen. Een primaire sleutel is ook een combinatie van kolommen in een tabel die een rij uniek identificeren. Maar het wordt beschouwd als een speciaal geval van de unieke sleutel.
Wat is een unieke sleutel?
Zoals eerder vermeld, is de unieke sleutel een enkele kolom of reeks kolommen die een rij in een tabel op unieke wijze kan identificeren. Een unieke sleutel is dus zo beperkt dat geen twee waarden ervan gelijk zijn. Een belangrijke eigenschap is dat de unieke sleutels de NOT NULL-beperking niet afdwingen. Omdat NULL het ontbreken van een waarde vertegenwoordigt, betekent dit niet dat als twee rijen NULL in een kolom hebben, de waarden gelijk zijn. Kolom gedefinieerd als een unieke sleutel staat slechts één enkele NULL-waarde in die kolom toe. Dan kan dat worden gebruikt om die specifieke rij uniek te identificeren. In een tabel die studentgegevens bevat, kan bijvoorbeeld student-ID worden gedefinieerd als een unieke sleutel. Aangezien geen twee studenten dezelfde ID kunnen hebben, identificeert het een unieke student. De kolom student-ID voldoet dus aan alle eigenschappen van een unieke sleutel. Afhankelijk van het ontwerp van een database kan een tabel meer dan één unieke sleutel hebben.
Wat is de primaire sleutel?
Primaire sleutel is ook een kolom of een combinatie van kolommen die op unieke wijze een rij definieert in een tabel van een relationele database. Een tabel kan maximaal één primaire sleutel hebben. Primaire sleutel dwingt de impliciete NOT NULL-beperking af. Een kolom die is gedefinieerd als de primaire sleutel, kan dus geen NULL-waarden bevatten. De primaire sleutel kan een normaal kenmerk in de tabel zijn dat gegarandeerd uniek is, zoals een burgerservicenummer, of het kan een unieke waarde zijn die wordt gegenereerd door het databasebeheersysteem, zoals een GUID (Globally Unique Identifier) in Microsoft SQL Server. Primaire sleutels worden gedefinieerd via de PRIMARY KEY-beperking in ANSI SQL Standard. Primaire sleutel kan ook worden gedefinieerd bij het maken van de tabel. Met SQL kan de primaire sleutel worden samengesteld uit een of meer kolommen en elke kolom die is opgenomen in de primaire sleutel is impliciet gedefinieerd als NOT NULL. Maar sommige databasebeheersystemen vereisen dat de primaire sleutelkolommen expliciet NIET NULL zijn.
Verschil tussen primaire sleutel en unieke sleutel
Hoewel zowel de primaire sleutel als de unieke sleutel een of meer kolommen zijn die een rij in een tabel op unieke wijze kunnen identificeren, hebben ze enkele belangrijke verschillen. Het belangrijkste is dat een tabel slechts één primaire sleutel kan hebben, terwijl deze meer dan één unieke sleutel kan hebben. Primaire sleutel kan worden beschouwd als een speciaal geval van de unieke sleutel. Een ander verschil is dat primaire sleutels een impliciete NOT NULL-beperking hebben, terwijl de unieke sleutel die beperking niet heeft. Daarom kunnen unieke sleutelkolommen al dan niet NULL-waarden bevatten, maar primaire-sleutelkolommen kunnen geen NULL-waarden bevatten.