Primær nøgle vs. unik nøgle
En kolonne eller et sæt kolonner, som kan bruges til at identificere eller få adgang til en række eller et sæt rækker i en database, kaldes en nøgle. En unik nøgle er en nøgle, der unikt kan identificere en række i en tabel i sammenhæng med relationelle databaser. En unik nøgle består af en enkelt kolonne eller et sæt kolonner. En primær nøgle er også en kombination af kolonner i en tabel, der entydigt identificerer en række. Men det anses for at være et særligt tilfælde af den unikke nøgle.
Hvad er Unique Key?
Som tidligere nævnt er unik nøgle en enkelt kolonne eller et sæt af kolonner, der unikt kan identificere en række i en tabel. Så en unik nøgle er begrænset, så ikke to værdier af den er ens. En vigtig egenskab er, at de unikke nøgler ikke håndhæver NOT NULL-begrænsningen. Da NULL repræsenterer manglen på en værdi, hvis to rækker har NULL i en kolonne, betyder det ikke, at værdierne er ens. Kolonne defineret som en unik nøgle tillader kun en enkelt NULL-værdi i den kolonne. Så kan det bruges til at identificere den pågældende række unikt. For eksempel, i en tabel, der indeholder elevoplysninger, kan elev-id defineres som en unik nøgle. Da ikke to studerende kan have det samme ID, identificerer det entydigt en enkelt elev. Så elev-id-kolonnen opfylder alle egenskaberne for en unik nøgle. Afhængigt af designet af en database kan en tabel have mere end én unik nøgle.
Hvad er primærnøgle?
Primær nøgle er også en kolonne eller en kombination af kolonner, der unikt definerer en række i en tabel i en relationsdatabase. En tabel kan højst have én primær nøgle. Primær nøgle håndhæver den implicitte NOT NULL-begrænsning. Så en kolonne, der er defineret som den primære nøgle, kan ikke have NULL-værdier i sig. Primær nøgle kan være en normal attribut i tabellen, der garanteres at være unik, såsom cpr-nummer, eller det kan være en unik værdi genereret af databasestyringssystemet, såsom en Globally Unique Identifier (GUID) i Microsoft SQL Server. Primære nøgler er defineret gennem PRIMARY KEY-begrænsningen i ANSI SQL Standard. Primær nøgle kan også defineres ved oprettelse af tabellen. SQL tillader, at den primære nøgle består af en eller flere kolonner, og hver kolonne, der er inkluderet i den primære nøgle, er implicit defineret til at være IKKE NULL. Men nogle databasestyringssystemer kræver, at de primære nøglekolonner udtrykkeligt IKKE er NULL.
Forskellen mellem primær nøgle og unik nøgle
Selv om både den primære nøgle og den unikke nøgle er en eller flere kolonner, der unikt kan identificere en række i en tabel, har de nogle vigtige forskelle. Vigtigst er det, at en tabel kun kan have en enkelt primær nøgle, mens den kan have mere end én unik nøgle. Primær nøgle kan betragtes som et speci altilfælde af den unikke nøgle. En anden forskel er, at primærnøgler har en implicit NOT NULL-begrænsning, mens den unikke nøgle ikke har denne begrænsning. Derfor kan unikke nøglekolonner muligvis indeholde NULL-værdier, men primærnøglekolonner kan ikke indeholde NULL-værdier.