Primaire sleutel
Een primaire sleutel is een unieke identificatiewaarde voor een record in een tabel van een database. Dit is meestal een getal, dat vaak opeenvolgend wordt gegenereerd wanneer de database nieuwe records aanmaakt, maar tekstuele tekenreeksen kunnen ook als primaire sleutels worden gebruikt als gegarandeerd is dat ze uniek zijn. Relationele databases gebruiken primaire sleutels om koppelingen te maken tussen records in afzonderlijke tabellen.
Wanneer je een tabel maakt, heb je verschillende opties voor het toewijzen van primaire sleutels. Ten eerste kun je een primaire sleutel kiezen uit bestaande informatie in het record, zoals het telefoonnummer of Social Security Number van een klant; dit type primaire sleutel wordt een "natuurlijke sleutel" genoemd. Een "surrogaatsleutel" is daarentegen een waarde die uitsluitend wordt gegenereerd om als primaire sleutel te dienen. Een DBMS kan een surrogaatsleutel opeenvolgend genereren wanneer het nieuwe records toevoegt, of in plaats daarvan een willekeurig getal of een UUID genereren. Als een DMBS een record moet verwijderen, behoudt het meestal de primaire sleutel van dat record en gebruikt het deze niet opnieuw.
Relationele databases gebruiken primaire sleutels om ervoor te zorgen dat elk record in een tabel uniek is en om koppelingen te maken tussen records in verschillende tabellen. Een klantendatabase kan bijvoorbeeld een tabel met klantgegevens bevatten met namen en e-mailadressen, en een andere tabel met verzendadressen met straatadressen. De tabel met klantgegevens kan een gegenereerde UUID in het veld Customer ID als primaire sleutel gebruiken, zodat klanten hun naam kunnen wijzigen zonder dat de manier waarop het DBMS naar dat record verwijst verandert. De tabel met verzendadressen slaat ondertussen elk verzendadres in het systeem op als een afzonderlijk record met een opeenvolgend ID-nummer dat bij elk nieuw adres wordt verhoogd. Hierdoor kan een record in de tabel met klantgegevens elk klantrecord koppelen aan een of meer adressen, waarbij de primaire sleutel uit de adrestabel binnen een klantrecord als externe sleutel wordt gebruikt.
Test je kennis