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 af rækker i en database kaldes en nøgle. En unik nøgle er en nøgle, der entydigt kan identificere en række i en tabel i sammenhæng med relationsdatabaser. 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 betragtes som et specielt tilfælde af den unikke nøgle.
Hvad er unik nøgle?
Som nævnt tidligere er unik nøgle en enkelt kolonne eller et sæt kolonner, der entydigt kan identificere en række i en tabel. Så en unik nøgle er begrænset således, at ingen to værdier af den er ens. En vigtig egenskab er, at de unikke nøgler ikke håndhæver begrænsningen NOT NULL. 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 denne kolonne. Derefter kan det bruges til at identificere den pågældende række entydigt. For eksempel i en tabel, der indeholder elevoplysninger, kan elev-ID defineres som en unik nøgle. Da ingen to studerende kan have det samme ID, identificerer det entydigt en enkelt elev. Så kolonnen studerende-ID opfylder alle egenskaberne ved en unik nøgle. Afhængig af designet af en database,en tabel kan have mere end en unik nøgle.
Hvad er primær nøgle?
Primær nøgle er også en kolonne eller en kombination af kolonner, der entydigt definerer en række i en tabel i en relationsdatabase. En tabel kan højst have en primær nøgle. Primærnøgle håndhæver den implicitte IKKE NULL-begrænsning. Så en kolonne, der er defineret som den primære nøgle, kan ikke have NULL-værdier. Primær nøgle kan være en normal attribut i tabellen, der garanteret er unik, f.eks. Personnummer, eller det kan være en unik værdi genereret af databasestyringssystemet, såsom en globalt unik identifikator (GUID) i Microsoft SQL Server. Primære nøgler defineres gennem den PRIMÆRE NØGLE-begrænsning i ANSI SQL Standard. Primær nøgle kan også defineres, når du opretter 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 ikke at være NULL. Men nogle databasehåndteringssystemer kræver, at de primære nøglekolonner udtrykkeligt IKKE er NULL.
Forskellen mellem primærnøgle og unik nøgle
Selvom både den primære nøgle og den unikke nøgle er en eller flere kolonner, der entydigt 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ærnøgle, mens den kan have mere end en unik nøgle. Primærnøgle kan betragtes som et specielt tilfælde af den unikke nøgle. En anden forskel er, at primære nøgler har en implicit IKKE NULL-begrænsning, mens den unikke nøgle ikke har den begrænsning. Derfor kan unikke nøglekolonner muligvis ikke indeholde NULL-værdier, men primære nøglekolonner kan ikke indeholde NULL-værdier.