Een primaire sleutel identificeert elk record in een tabel uniek. Geen twee rijen hebben dezelfde primaire sleutelwaarde. De sleutel mag niet null zijn. Hij moet uniek en stabiel zijn. In een klantentabel kan de primaire sleutel bijvoorbeeld een klant-ID zijn. In een ordertabel kan het een ordernummer zijn. De primaire sleutel is het anker voor het record. Andere tabellen verwijzen ernaar via externe sleutels. Zonder een primaire sleutel zijn records moeilijk betrouwbaar te identificeren, bij te werken of te verwijderen.
Primaire sleutels bestaan in twee vormen. Natuurlijke sleutels worden afgeleid van de gegevens zelf. Een burgerservicenummer, een e-mailadres of een product-SKU. Ze zijn betekenisvol, maar kunnen veranderen. Mensen veranderen hun e-mailadres. Bedrijven veranderen productcodes. Surrogaatsleutels worden door het systeem gegenereerd. Automatisch oplopende gehele getallen of UUID's. Ze hebben geen betekenis buiten de database. Ze veranderen nooit. Surrogaatsleutels hebben over het algemeen de voorkeur omdat stabiliteit belangrijker is dan betekenis. Een natuurlijke sleutel die verandert, vereist updates in elke tabel die ernaar verwijst. Een surrogaatsleutel blijft voor altijd hetzelfde. Sommige tabellen gebruiken samengestelde primaire sleutels die bestaan uit twee of meer kolommen. Een orderregel kan worden geïdentificeerd door de combinatie van order-ID en regelnummer. Samengestelde sleutels werken, maar compliceren joins en verwijzingen naar externe sleutels. Een enkele surrogaatsleutel is eenvoudiger.
Belangrijkste eigenschappen
- Uniek — geen duplicaten
- Niet null — heeft altijd een waarde
- Stabiel — verandert niet in de loop van de tijd.
- Enkelvoudig of samengesteld — één kolom of meerdere
- Geïndexeerd — automatisch voor snelle zoekopdrachten
Een primaire sleutel is een identiteit. Deze geeft aan dat dit record dit record is en geen ander. Zonder primaire sleutel hebben de gegevens geen houvast.
Comments
No comments yet. Be the first to share a thought.
Leave a comment