Mis on esmane võti?

Primaarvõti on andmebaasi kirje, mis on ühe kirje jaoks ainulaadne. See võti tuletatakse üldiselt kahel viisil: kordumatu identifitseerimiskood väljastpoolt andmebaasi või genereeritud number andmebaasist. Kui andmebaas sisaldab teavet, mis on alati kirje jaoks kordumatu, näiteks sotsiaalkindlustuse number või osa identifitseerimisnumber, kasutatakse neid tavaliselt esmase võtmena. Kui andmetel sellist identifikaatorit pole, loob andmebaas sageli oma sisesüsteemide põhjal numbreid, et anda igale kirjele kordumatu kood.

Primaarvõtmel on kolm peamist piirangut: olemasolu, ainulaadsus ja muutumatus. Võti peab kirje tegemise ajal olemas olema – seda ei saa hiljem lisada. Iga võti peab olema kõigist teistest võtmetest täiesti erinev. See tähendab, et ühiseid tunnuseid, nagu nimi või sünnikuupäev, ei saa kasutada, kuna on võimalik, et kaks inimest on sündinud samal päeval sama nimega. Lõpuks ei saa primaarvõtit kunagi pärast loomist muuta.

Kuna andmebaasis võib potentsiaalselt olla lõpmatu arv kirjeid, peab ka primaarvõti olema lõpmatu. Tagamaks, et andmebaasis ei saaks kunagi võtmed otsa, kasutatakse enamikus kirjetes võtme jaoks numbrilist koodi. Kuna numbrid võivad alati suureneda ja arvutid saavad vanematele kirjetele lihtsalt kohahoidvaid nulle lisada, ei saa süsteemil võtmed kunagi tühjaks. Mõnikord põhinevad need numbrid mitteunikaalsel teabel, kuid võtme elujõulisuse tagamiseks lisatakse kordumatu identifikaator.

Andmebaasid kasutavad andmete korraldamiseks primaarvõtit. Kuna võtit ei korrata kunagi, võimaldab see teave andmebaasil hoida kõiki kirjeid teistest eraldi. Iga kirje teave on võtmega tagasi ühendatud; nii, olenemata sellest, mis süsteemiga juhtub, saab andmebaas kirjed lahtisest teabest uuesti üles ehitada.

Mõtteka primaarvõtme määramist peetakse sageli paremaks tavaks kui väärtuse automaatne genereerimine. See annab kirjele identifikaatori, mis töötab võtmena ja annab andmeid. Väikestes andmebaasides on see eristamine harva vajalik, kuid suurtes süsteemides võib genereeritud võtme kasutatav lisaruum põhjustada andmebaasi tõsist ülepaisumist. See aeglustab nii süsteemi tööd kui ka nõuab, et andmebaas nõuab oluliselt rohkem salvestusruumi.