Databases zijn afhankelijk van sleutels om records op te slaan, te sorteren en te vergelijken of om relaties tussen records te creëren. Als u al een tijdje in de buurt bent van databases, heeft u waarschijnlijk gehoord over verschillende soorten sleutels: primaire sleutels, kandidaatsleutels en externe sleutels. Wanneer u een nieuwe databasetabel maakt, wordt u gevraagd om één primaire sleutel te selecteren die elk record dat in die tabel is opgeslagen op unieke wijze identificeert.
Waarom een primaire sleutel belangrijk is
De selectie van een primaire sleutel is een van de meest cruciale beslissingen die u neemt bij het ontwerpen van een nieuwe database. De belangrijkste beperking is dat u ervoor moet zorgen dat de geselecteerde sleutel uniek is. Als het mogelijk is dat twee records (verleden, heden of toekomst) dezelfde waarde voor een kenmerk delen, is dit een slechte keuze voor een primaire sleutel. Een ander belangrijk aspect van een primaire sleutel is het gebruik ervan door andere tabellen die ernaar verwijzen in een relationele database. In dit aspect fungeert een primaire sleutel als het doelwit van een aanwijzer. Vanwege deze onderlinge afhankelijkheden moet er een primaire sleutel bestaan wanneer een record wordt gemaakt, en deze kan nooit veranderen.
Slechte keuzes voor primaire sleutels
Wat sommige mensen als een voor de hand liggende keuze voor een primaire sleutel zouden kunnen beschouwen, zou in plaats daarvan een slechte keuze kunnen zijn. Hier zijn een paar voorbeelden:
- postcodes maak geen goede primaire sleutels voor een tabel met steden. Als u een eenvoudige opzoektabel van steden maakt, lijkt de postcode een logische primaire sleutel. Bij nader onderzoek zou u zich echter kunnen realiseren dat meer dan één stad een postcode deelt. De steden Neptune, Neptune City, Tinton Falls en Wall Township in New Jersey delen bijvoorbeeld allemaal de postcode 07753.
- Burgerservicenummers maak om vele redenen geen goede primaire sleutels. De meeste mensen beschouwen hun SSN als privé en willen niet dat deze duidelijk zichtbaar is voor databasegebruikers. Bovendien hebben sommige mensen geen SSN’s.
- E-mailadressen zijn ook een slechte keuze voor een primaire sleutel. Hoewel ze uniek zijn, kunnen ze in de loop van de tijd veranderen. Bovendien heeft niet iedereen een e-mailadres.
Wat is een goede primaire sleutel
Dus, hoe kies je een effectieve primaire sleutel? In de meeste gevallen wendt u zich voor ondersteuning tot uw databasesysteem. Een best practice bij het ontwerpen van databases is het gebruik van een intern gegenereerde primaire sleutel. Uw databasebeheersysteem kan normaal gesproken een unieke identificatie genereren die buiten het databasesysteem geen betekenis heeft. U kunt bijvoorbeeld het gegevenstype Microsoft Access AutoNummering gebruiken om een veld met de naam RecordID te maken. Het gegevenstype AutoNummering verhoogt automatisch het veld elke keer dat u een record maakt. Hoewel het nummer zelf geen betekenis heeft, biedt het een betrouwbare manier om in query’s naar een afzonderlijk record te verwijzen. Een goede primaire sleutel is meestal kort, gebruikt cijfers en vermijdt speciale tekens of een combinatie van hoofdletters en kleine letters om snel opzoeken en vergelijken van databases te vergemakkelijken.