Basissleutels die databasebeheer eenvoudig maken
Databases gebruiken tabellen om informatie te ordenen. Elke tabel bestaat uit een aantal rijen, die elk overeenkomen met een enkel databaserecord. Dus, hoe houden databases deze records recht? Het is door het gebruik van sleutels.
Primaire sleutels
Het eerste type sleutel dat we zullen bespreken, is de primaire sleutel. De hoofdsleutel identificeert op unieke wijze elk record in een tabel. Elke databasetabel moet een of meer kolommen hebben die zijn aangewezen als de primaire sleutel.
Voorbeeld primaire sleutel
Stel dat we een tabel hebben met de naam Werknemers die personeelsinformatie bevat voor elke werknemer in ons bedrijf. We moeten een geschikte primaire sleutel selecteren die elke werknemer op unieke wijze identificeert. Uw eerste gedachte zou kunnen zijn om de naam van de werknemer te gebruiken. Dit zou echter niet werken omdat het denkbaar is dat je twee medewerkers met dezelfde naam in dienst neemt. Een betere keuze zou kunnen zijn om het unieke werknemers-ID-nummer te gebruiken dat aan elke werknemer is toegewezen wanneer hij wordt aangenomen.
Sommige organisaties gebruiken burgerservicenummers (of vergelijkbare identificatiecodes van de overheid) als de primaire sleutel, omdat elke werknemer er al een heeft en ze gegarandeerd uniek zijn. Het gebruik van burgerservicenummers voor dit doel is echter controversieel vanwege privacyoverwegingen.
Als u voor een overheidsorganisatie werkt, is het gebruik van een sofinummer mogelijk niet legaal volgens de privacywet van 1974. Om deze reden zijn de meeste organisaties overgestapt op het gebruik van unieke identifiers zoals Employee ID of Student ID.
Nadat u een primaire sleutel hebt gekozen en de database hebt ingesteld, dwingt het databasebeheersysteem de uniciteit van de sleutel af. Als u bijvoorbeeld een record in een tabel invoegt met een primaire sleutel die een bestaande record dupliceert, mislukt het invoegen.
De meeste databases zijn ook in staat om primaire sleutels te genereren. Microsoft Access kan bijvoorbeeld worden geconfigureerd om het gegevenstype AutoNummering te gebruiken om een unieke ID toe te wijzen aan elk record in de tabel. Hoewel dit effectief is, is dit een slechte ontwerppraktijk omdat het je een betekenisloze waarde geeft in elk record in de tabel. Gebruik in plaats daarvan die ruimte om iets nuttigs op te slaan.
Buitenlandse sleutels
Een ander type sleutel is de vreemde sleutel. De externe sleutel creëert natuurlijke relaties tussen tabellen. In de meeste databasestructuren bestaan natuurlijke relaties tussen tabellen.
Voorbeeld buitenlandse sleutel
Terugkerend naar onze werknemersdatabase, stel u voor dat we een tabel met afdelingsinformatie aan de database willen toevoegen. Deze nieuwe tabel zou Afdelingen kunnen heten en zou een grote hoeveelheid informatie over de afdeling als geheel bevatten.
We zouden ook informatie willen opnemen over de medewerkers van de afdeling, maar het zou overbodig zijn om dezelfde informatie in twee tabellen te hebben (Medewerkers en Afdelingen). Dus in plaats daarvan zouden we een relatie tussen de twee tabellen maken.
Een relatie tussen tabellen maken
Laten we aannemen dat de tabel Afdelingen de kolom Afdelingsnaam als primaire sleutel gebruikt. Om een relatie tussen de twee tabellen te maken, zouden we een nieuwe kolom toevoegen aan de tabel Medewerkers met de naam Afdeling.
Vervolgens vullen we de naam in van de afdeling waartoe elke medewerker behoort. Dan zouden we de databasemanagementsysteem dat de kolom Afdeling in de tabel Medewerkers een externe sleutel is die verwijst naar de tabel Afdelingen.
Er is geen uniciteitsbeperking voor een externe sleutel, omdat we bijvoorbeeld meer dan één medewerker kunnen hebben die bij één afdeling hoort. Evenzo is er geen vereiste dat een item in de tabel Afdelingen een corresponderend item in de tabel Werknemers moet hebben, omdat we een afdeling zonder werknemers kunnen hebben.