En kandidatnøgle er en kombination af attributter, der unikt identificerer en databasepost uden at henvise til andre data. Hvert bord kan have en eller flere kandidater. En af disse kandidatnøgler er valgt som tabellens primærnøgle. En tabel indeholder kun én primær nøgle, men den kan indeholde flere kandidatnøgler. Hvis en kandidatnøgle er sammensat af to eller flere kolonner, kaldes den en sammensat nøgle.
Properties of a Candidate Key
Alle kandidatnøgler har nogle fælles egenskaber. En af egenskaberne er, at i kandidatnøglens levetid skal den attribut, der bruges til identifikation, forblive den samme. En anden er, at værdien ikke kan være nul. Endelig skal kandidatnøglen være unik.
For eksempel, for specifikt og unikt at identificere hver enkelt medarbejder, kan en virksomhed bruge medarbejderens CPR-nummer. Nogle mennesker deler de samme fornavne, efternavne og stilling, men ikke to personer bruger det samme CPR-nummer.
cpr-nummer | Fornavn | Efternavn | Position |
---|---|---|---|
123-45-6780 | Craig | Jones | Manager |
234-56-7890 | Craig | Beal | Associate |
345-67-8900 | Sandra | Beal | Manager |
456-78-9010 | Trina | Jones | Associate |
567-89-0120 | Sandra | Smith | Associate |
Eksempler på kandidatnøgler
Nogle typer data egner sig let som kandidater:
- Internationale standardbognumre: ISBN'er identificerer entydigt bøger og relaterede medier. Udstedelsen af ISBN'er er strengt reguleret af industriens gatekeepere, og ISBN'er genbruges aldrig af udgivere.
- Bankkontonumre: De fleste banker genbruger ikke kontonumre.
- Serienumre: Selvom serienumre ikke er reguleret på tværs af brancher, skal et serienummer altid være unikt i forbindelse med en enkelt leverandør.
- Kørekortnumre: Norm alt er disse numre ikke duplikeret. En person, der flytter fra stat til stat, kan dog have mere end ét DL-nummer.
- National udbyder-id: Læger og andre licenserede medicinske udbydere har hver mindst én NPI, der er unik for dem, udstedt af US Department of He alth and Human Services.
Nogle typer information, der kan virke som gode kandidater, viser sig faktisk at være problematiske:
- Telefonnumre: De fleste udbydere genbruger telefonnumre, og individuelle abonnenter kan bruge flere telefonnumre samtidigt.
- Universelle priskoder: UPC'er er unikke, men ejeren af en UPC-blok kan genbruge produkter efter behag.
- Lægejournalnumre: MRN'er udstedes generelt på hospitalsniveau uden nogen form for national vejledning om strukturen og formatet af disse identifikatorer.
- Socialnumre: Selvom de teoretisk set er unikke, bliver SSN'er genbrugt, og SSN-svindel er almindelig nok til at gøre denne identifikator problematisk på tværs af store datasæt. (I forbindelse med en arbejdsgiver, der verificerer SSN'er, er denne udfordring ikke et problem.)