Primārā atslēga vs unikālā atslēga
Kolonnu vai kolonnu komplektu, 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 komplekts. Primārā atslēga ir arī tabulas kolonnu kombinācija, kas unikāli identificē rindu. Bet tas tiek uzskatīts par unikālas atslēgas īpašu gadījumu.
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 rindu tabulā. Unikālā atslēga ir ierobežota tā, ka neviena no tās vērtībām nav vienāda. Svarīgs īpašums ir tas, ka unikālās atslēgas neizpilda 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, šajā kolonnā atļauj tikai vienu NULL vērtību. Tad to var izmantot, lai unikāli identificētu šo konkrēto rindu. Piemēram, tabulā, kurā ir informācija par studentiem, 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ālās atslēgas īpašībām. Atkarībā no datu bāzes dizaina tabulā var būt vairāk nekā viena unikāla atslēga.
Kas ir galvenā atslēga?
Primārā atslēga ir arī kolonna vai kolonnu kombinācija, kas unikāli nosaka rindu relāciju datu bāzes tabulā. Tabulā var būt ne vairāk kā viena galvenā atslēga. Primārā atslēga nodrošina netiešo NAV NULL ierobežojumu. Tātad kolonnā, kas tiek definēta kā galvenā atslēga, tajā nedrīkst būt NULL vērtības. Primārā atslēga var būt parasts atribūts tabulā, kas garantēti ir unikāls, piemēram, sociālās apdrošināšanas numurs, vai arī tā var būt 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 noteiktas, izmantojot PRIMARY KEY ierobežojumu ANSI SQL standartā. Primāro atslēgu var definēt arī, veidojot tabulu. SQL ļauj primāro atslēgu veidot no vienas vai vairākām kolonnām, un katra kolonna, kas ir iekļauta primārajā atslēgā, tiek netieši definēta kā NAV NULL. Bet dažām datu bāzu pārvaldības sistēmām primāro atslēgu kolonnas ir skaidri jānorāda NULL.
Atšķirība starp primāro atslēgu un unikālo atslēgu
Pat ja primārā atslēga un unikālā atslēga ir viena vai vairākas kolonnas, kas var unikāli identificēt rindu tabulā, tām ir dažas būtiskas atšķirības. Vissvarīgākais ir tas, ka tabulā var būt tikai viena galvenā atslēga, savukārt tajā var būt vairāk nekā viena unikāla atslēga. Primāro atslēgu var uzskatīt par unikālas atslēgas īpašu gadījumu. Vēl viena atšķirība ir tā, ka primārajām atslēgām ir netiešs NAV NULL ierobežojums, savukārt unikālajai atslēgai nav šo ierobežojumu. Tāpēc unikālo atslēgu kolonnas var saturēt vai nesatur NULL vērtības, bet primāro atslēgu kolonnas nedrīkst saturēt NULL vērtības.