Primārā atslēga pret unikālo atslēgu
Sleju vai kolonnu kopu, ko var izmantot, lai identificētu vai piekļūtu rindai vai rindu kopai datu bāzē, sauc par atslēgu. Unikālā atslēga ir atslēga, kas var unikāli identificēt rindu tabulā relāciju datu bāzu kontekstā. Unikālo atslēgu veido viena kolonna vai kolonnu kopa. Primārā atslēga ir arī tabulas kolonnu kombinācija, kas unikāli identificē rindu. Taču tiek uzskatīts, ka tas ir īpašs unikālās atslēgas gadījums.
Kas ir unikālā atslēga?
Kā minēts iepriekš, unikālā atslēga ir viena kolonna vai kolonnu kopa, kas var unikāli identificēt tabulas rindu. Tātad unikālā atslēga ir ierobežota tā, ka divas tās vērtības nav vienādas. Viena svarīga īpašība ir tāda, ka unikālās atslēgas neveicina ierobežojumu NOT NULL. Tā kā NULL apzīmē vērtības trūkumu, ja divās rindās kolonnā ir NULL, tas nenozīmē, ka vērtības ir vienādas. Kolonna, kas definēta kā unikāla atslēga, pieļauj tikai vienu NULL vērtību šajā kolonnā. Pēc tam to var izmantot, lai unikāli identificētu konkrēto rindu. Piemēram, tabulā, kurā ir informācija par studentu, studenta ID var definēt kā unikālu atslēgu. Tā kā diviem studentiem nevar būt vienāds ID, tas unikāli identificē vienu studentu. Tātad studenta ID kolonna atbilst visām unikālas atslēgas īpašībām. Atkarībā no datu bāzes dizaina tabulai var būt vairāk nekā viena unikāla atslēga.
Kas ir primārā atslēga?
Primārā atslēga ir arī kolonna vai kolonnu kombinācija, kas unikāli definē rindu relāciju datu bāzes tabulā. Tabulā var būt ne vairāk kā viena primārā atslēga. Primārā atslēga ievieš netiešo NOT NULL ierobežojumu. Tātad kolonnā, kas ir definēta kā primārā atslēga, nevar būt NULL vērtības. Primārā atslēga var būt parasts atribūts tabulā, kas garantēti unikāls, piemēram, sociālās apdrošināšanas numurs, vai arī unikāla vērtība, ko ģenerē datu bāzes pārvaldības sistēma, piemēram, globāli unikālais identifikators (GUID) Microsoft SQL Server. Primārās atslēgas tiek definētas, izmantojot ANSI SQL standarta ierobežojumu PRIMARY KEY. Veidojot tabulu, var definēt arī primāro atslēgu. SQL ļauj primārajai atslēgai veidot vienu vai vairākas kolonnas, un katra kolonna, kas ir iekļauta primārajā atslēgā, ir netieši definēta kā NOT NULL. Taču dažām datu bāzu pārvaldības sistēmām primārās atslēgas kolonnas ir skaidri jānorāda NOT NULL.
Atšķirība starp primāro atslēgu un unikālo atslēgu
Lai gan primārā atslēga un unikālā atslēga ir viena vai vairākas kolonnas, kas var unikāli identificēt tabulas rindu, tām ir dažas būtiskas atšķirības. Vissvarīgākais ir tas, ka tabulai var būt tikai viena primārā atslēga, savukārt tai var būt vairāk nekā viena unikāla atslēga. Primāro atslēgu var uzskatīt par unikālās atslēgas īpašo gadījumu. Vēl viena atšķirība ir tā, ka primārajām atslēgām ir netiešs NOT NULL ierobežojums, savukārt unikālajai atslēgai šī ierobežojuma nav. Tāpēc unikālās atslēgas kolonnas var saturēt vai nevar saturēt NULL vērtības, bet primārās atslēgas kolonnas nevar saturēt NULL vērtības.