Dictionary

Kandidaatsleutel (candidate key)

Een kandidaatsleutel is een kolom of combinatie van kolommen die een rij uniek kan identificeren. Uit alle kandidaatsleutels kies je er meestal één als primaire sleutel.

Wat is een kandidaatsleutel?

Een kandidaatsleutel is een kolom, of combinatie van kolommen, die elke rij uniek kan identificeren. Het is een mogelijke identiteit voor een tabel.

Een klantentabel kan bijvoorbeeld meerdere kandidaten hebben: customer_id, e-mailadres, of een officieel klantnummer uit het ERP. Als elk van die waarden uniek en niet leeg is, kan elk daarvan de rij herkennen.

Uit die kandidaten kies je meestal één primaire sleutel. De andere kandidaten blijven nuttig als unieke regels of datakwaliteitschecks.

Hoe herken je een kandidaatsleutel?

Een goede kandidaatsleutel heeft twee eigenschappen. Ze is uniek, en ze bevat geen overbodige kolommen.

Stel dat email elke klant uniek maakt. Dan is email + postcode ook uniek, maar geen echte kandidaatsleutel: postcode voegt niets toe aan de identiteit. Een kandidaatsleutel is minimaal. Haal je een kolom weg, dan werkt ze niet meer.

CREATE TABLE customers (
  customer_id integer PRIMARY KEY,
  email text UNIQUE,
  vat_number text UNIQUE,
  name text NOT NULL
);

In dit voorbeeld is customer_id de primaire sleutel. email en vat_number zijn mogelijke kandidaatsleutels als de businessregels zeggen dat ze verplicht en uniek moeten zijn.

Wanneer denk je over kandidaatsleutels na?

  • Bij het ontwerpen van tabellen. Je wil weten welke kolommen de business zelf als identiteit ziet.

  • Bij deduplicatie. Een kandidaat zoals btw-nummer of e-mailadres helpt dubbele klanten vinden.

  • Bij master data management. Je vergelijkt systemen op de velden die een entiteit betrouwbaar herkennen.

  • Bij data contracts. Je legt vast welke velden uniek en verplicht moeten blijven.

Kandidaatsleutel versus primaire sleutel

Een tabel kan meerdere kandidaatsleutels hebben, maar maar één primaire sleutel. De primaire sleutel is de kandidaat die je kiest als officiële technische identiteit in de databank.

De keuze is praktisch. Een stabiel intern nummer werkt vaak beter als primaire sleutel dan een e-mailadres, omdat een e-mailadres kan wijzigen. Toch blijft het e-mailadres een businessregel die je mogelijk uniek wil houden.

Waar moet je op letten bij het gebruik van kandidaatsleutels

  • Controleer of uniek echt uniek betekent. Twee mensen kunnen één gedeeld e-mailadres gebruiken. Twee filialen kunnen tijdelijk hetzelfde klantnummer uit een oud systeem hebben.

  • Let op wijzigende waarden. Een kandidaatsleutel die vaak verandert, is zwak als primaire sleutel.

  • Documenteer de businessregel. De databank kan uniekheid afdwingen, maar ze weet niet waarom die regel bestaat.

FAQ over kandidaatsleutels

1. Is een unieke kolom altijd een kandidaatsleutel?
Alleen als ze ook verplicht is en de rij minimaal identificeert. Een technische unieke code die niemand gebruikt, kan wel uniek zijn maar weinig businesswaarde hebben.

2. Kan een kandidaatsleutel uit meerdere kolommen bestaan?
Ja. Dan is het een samengestelde kandidaatsleutel.

3. Waarom zou ik ze bewaren als ik al een primaire sleutel heb?
Omdat ze businessregels vastleggen en dubbels helpen opsporen. Dat is nuttig voor datakwaliteit.

Laatst Bijgewerkt: July 9, 2026 Terug naar Woordenboek
Trefwoorden
kandidaatsleutel candidate key primaire sleutel sql datakwaliteit normalisatie database data warehouse