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 uniek 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 set kolommen die een unieke rij in een tabel kan identificeren. Een unieke sleutel is dus zo beperkt dat er geen twee waarden van gelijk zijn. Een belangrijke eigenschap is dat de unieke sleutels de NOT NULL-beperking niet afdwingen. Aangezien NULL het ontbreken van een waarde vertegenwoordigt, betekent dit niet dat de waarden gelijk zijn als twee rijen NULL in een kolom hebben. Kolom die is gedefinieerd als een unieke sleutel, staat slechts één NULL-waarde in die kolom toe. Vervolgens kan dat worden gebruikt om die specifieke rij uniek te identificeren. In een tabel met leerlinginformatie kan bijvoorbeeld de leerling-ID worden gedefinieerd als een unieke sleutel. Aangezien geen twee studenten dezelfde ID kunnen hebben, identificeert het op unieke wijze een enkele student. De kolom met studenten-ID voldoet dus aan alle eigenschappen van een unieke sleutel. Afhankelijk van het ontwerp van een database,een tabel kan 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 in een tabel van een relationele database definieert. 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. Primaire sleutel kan een normaal kenmerk in de tabel zijn dat gegarandeerd uniek is, zoals burgerservicenummer, of het kan een unieke waarde zijn die wordt gegenereerd door het databasebeheersysteem, zoals een Globally Unique Identifier (GUID) in Microsoft SQL Server. Primaire sleutels worden gedefinieerd via de PRIMARY KEY-beperking in ANSI SQL Standard. De primaire sleutel kan ook worden gedefinieerd bij het maken van de tabel. SQL maakt het mogelijk dat de primaire sleutel uit een of meer kolommen bestaat en dat elke kolom die in de primaire sleutel is opgenomen, impliciet is 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 uniek 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. De 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.