Pirminis raktas yra įrašas duomenų bazėje, kuris yra unikalus vienam įrašui. Šis raktas paprastai gaunamas vienu iš dviejų būdų: unikalus identifikavimo kodas iš išorės arba sugeneruotas skaičius iš duomenų bazės. Kai duomenų bazėje bus informacija, kuri visada yra unikali įrašui, pvz., socialinio draudimo numeris arba dalies identifikavimo numeris, jie paprastai naudojami kaip pirminis raktas. Kai duomenys neturės tokio identifikatoriaus, duomenų bazė dažnai sukurs numerius pagal savo vidines sistemas, kad kiekvienam įrašui būtų suteiktas unikalus kodas.
Yra trys pagrindiniai pirminio rakto apribojimai: egzistavimas, unikalumas ir nekintamumas. Raktas turi egzistuoti tuo metu, kai daromas įrašas – jo negalima pridėti vėliau. Kiekvienas raktas turi visiškai skirtis nuo bet kurio kito rakto. Tai reiškia, kad bendrų identifikatorių, pvz., vardo ar gimimo datos, naudoti negalima, nes gali būti, kad tą pačią dieną du žmonės gimsta tuo pačiu vardu. Galiausiai, sukūrus pirminį raktą niekada negalima pakeisti.
Kadangi duomenų bazėje gali būti begalinis įrašų skaičius, pirminis raktas taip pat turi būti begalinis. Siekiant užtikrinti, kad duomenų bazėje niekada nepritrūks raktų, dauguma įrašų naudoja skaitinį rakto kodą. Kadangi skaičiai visada gali padidėti, o kompiuteriai prie senesnių įrašų gali tiesiog pridėti vietos nulius, sistemai niekada nepritrūks raktų. Kartais šie skaičiai pagrįsti neunikalia informacija, tačiau pridedamas unikalus identifikatorius, užtikrinantis, kad raktas yra gyvybingas.
Duomenų bazės naudos pirminį raktą kaip duomenų tvarkymo būdą. Kadangi raktas niekada nesikartoja, ta informacija leis duomenų bazei laikyti kiekvieną įrašą atskirai nuo visų kitų. Kiekviena įrašo informacija yra prijungta prie rakto; Tokiu būdu, kad ir kas atsitiktų su sistema, duomenų bazė gali atkurti įrašus iš laisvos informacijos.
Prasmingo pirminio rakto priskyrimas dažnai laikomas geresne praktika nei automatinis vertės generavimas. Taip įrašui bus suteiktas identifikatorius, kuris veikia kaip raktas ir teikia duomenis. Mažose duomenų bazėse šis atskyrimas retai reikalingas, tačiau didelėse sistemose sugeneruoto rakto naudojama papildoma erdvė gali sukelti rimtą duomenų bazės išsipūtimą. Tai sulėtins sistemos veikimą ir duomenų bazei reikės žymiai daugiau vietos.