Databases zijn afhankelijk van sleutels voor het opslaan, sorteren en vergelijken of maken van relaties tussen records. Als u al een tijdje in de buurt van databases bent, heeft u waarschijnlijk gehoord van 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 elke record die in die tabel is opgeslagen, uniek 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 door andere tabellen die ernaar verwijzen in een relationele database. In dit aspect werkt een primaire sleutel als het doelwit van een aanwijzer. Vanwege deze afhankelijkheden moet een primaire sleutel bestaan wanneer een record wordt gemaakt en deze kan nooit worden gewijzigd.
Slechte keuzes voor primaire sleutels
Wat sommige mensen als een voor de hand liggende keuze voor een primaire sleutel zouden kunnen beschouwen, kan in plaats daarvan een slechte keuze zijn. Hier zijn een paar voorbeelden:
- postcodes maak geen goede primaire sleutels voor een tafel van steden. Als u een eenvoudige opzoektabel van steden maakt, lijkt de postcode een logische primaire sleutel te zijn. Bij verder onderzoek kunt u zich echter realiseren dat meer dan één stad een postcode heeft. De New Jersey-steden Neptune, Neptune City, Tinton Falls en Wall Township delen bijvoorbeeld allemaal de 07753-postcode.
- Sociale zekerheid nummers maak om vele redenen geen goede primaire sleutels. De meeste mensen beschouwen hun SSN als privé en willen niet dat het duidelijk zichtbaar is voor databasegebruikers. Sommige mensen hebben geen SSN's - buitenlanders of immigranten die nooit een socialezekerheidskaart hebben ontvangen. SSN's kunnen ook opnieuw worden gebruikt na het overlijden van een persoon. Een persoon kan tijdens zijn leven meer dan één SSN hebben wanneer de socialezekerheidsadministratie een nieuw nummer afgeeft in geval van fraude of identiteitsdiefstal.
- 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.
Een effectieve primaire sleutel kiezen
Dus, wat maakt een goede primaire sleutel? In de meeste gevallen kunt u hulp inschakelen bij uw databasesysteem.
Een beste methode voor databaseontwerp is om een intern gegenereerde primaire sleutel te gebruiken. Uw databasebeheersysteem kan normaliter een unieke identifier genereren die geen betekenis heeft buiten het databasesysteem. U kunt bijvoorbeeld het gegevenstype Microsoft Access AutoNumber gebruiken om een veld met de naam RecordID te maken. Het gegevenstype Autonummer verhoogt het veld automatisch telkens wanneer u een record aanmaakt. Hoewel het getal zelf geen betekenis heeft, biedt het een betrouwbare manier om naar individuele records in query's te verwijzen.
Een goede primaire sleutel is meestal kort, gebruikt getallen en vermijdt speciale tekens of een combinatie van hoofdletters en kleine letters om snelle opzoekingen en vergelijkingen van databases mogelijk te maken.