galvenā atšķirība starp svešu un primāro atslēgu ir tā svešā atslēga ir kolonna vai kolonnu kopa, kas attiecas uz citas tabulas primāro atslēgu vai kandidāta atslēgu, savukārt primārā atslēga ir kolonna vai kolonnu komplekts, ko var izmantot, lai unikāli identificētu rindu tabulā.
Kolonnu vai kolonnu komplektu, ko var izmantot, lai identificētu vai piekļūtu rindai vai rindu kopai datu bāzē, sauc par atslēgu. Primārā atslēga relāciju datu bāzē ir tabulas kolonnu kombinācija, kas unikāli identificē tabulas rindu. Ārzemju atslēga relāciju datu bāzē ir lauks tabulā, kas atbilst citas tabulas primārajai atslēgai. Ārzemju atslēga tiek izmantota, lai šķērsotu atsauces tabulas.
1. Pārskats un galvenās atšķirības
2. Kas ir ārzemju atslēga
3. Kas ir galvenā atslēga
4. Blakus salīdzinājums - svešā atslēga un primārā atslēga tabulas formā
5. Kopsavilkums
Ārējā atslēga ir nosacīts ierobežojums starp divām tabulām. Tas identificē kolonnu vai kolonnu kopu vienā tabulā, ko sauc par atsauces tabulu, kas attiecas uz kolonnu kopu citā tabulā, ko sauc par atsauces tabulu. Svešai atslēgai vai kolonnām atsauces tabulā jābūt galvenajai atslēgai vai kandidāta atslēgai (atslēgai, kuru var izmantot kā primāro atslēgu) atsauces tabulā. Turklāt svešas atslēgas ļauj saistīt datus vairākās tabulās. Tāpēc svešajā atslēgā nedrīkst būt vērtības, kas neparādās tabulā, uz kuru tā atsaucas. Tad svešas atslēgas sniegtā atsauce palīdz sasaistīt informāciju vairākās tabulās, un tas būtu svarīgi ar normalizētām datu bāzēm. Vairākas rindas atsauces tabulā var attiekties uz vienu rindu atsauces tabulā.
01. attēls. Ārvalstu atslēgu kartēšana
ANSI SQL standartā FOREIGN KEY ierobežojums definē svešas atslēgas. Turklāt, veidojot tabulu, ir iespējams definēt svešas atslēgas. Tabulai var būt vairākas svešas atslēgas, un tās var atsaukties uz dažādām tabulām.
Primārā atslēga ir 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āpēc kolonnā ar primāro atslēgu tajā nevar 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.
02 attēls: Primārā atslēga
Turklāt PRIMARY KEY ierobežojums ANSI SQL standartā definē primārās atslēgas. Veidojot tabulu, ir iespējams definēt arī galveno atslēgu. Papildus tam 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ā, ir 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.
Ārējā atslēga vs primārā atslēga | |
Ārējā atslēga ir kolonna vai kolonnu grupa relāciju datu bāzes tabulā, kas nodrošina asociāciju starp datiem divās tabulās. | Primārā atslēga ir īpaša relāciju datu bāzes tabulas kolonna vai vairāku kolonnu kombinācija, kas ļauj unikāli identificēt visus tabulas ierakstus. |
NULL | |
Ārzemju atslēga pieņem NULL vērtību. | Primārās atslēgas vērtība nevar būt NULL. |
Taustiņu skaits | |
Tabulā var būt vairākas svešas atslēgas. | Tabulā var būt tikai viena galvenā atslēga. |
Kopēšana | |
Tuples var būt svešas atslēgas atribūta vērtības dublikāts. | Divos sakaru veidos nevar būt primārās atslēgas atribūta dublējošu vērtību. |
Atšķirība starp svešo atslēgu un primāro atslēgu ir tāda, ka svešā atslēga ir kolonna vai kolonnu kopa, kas attiecas uz primāro atslēgu vai citas tabulas kandidāta atslēgu, savukārt primārā atslēga ir kolonna vai kolonnu komplekts, ko var izmantot, lai unikāli izmantotu noteikt rindu tabulā.
1. “Ārējā atslēga”. Wikipedia, Wikimedia Foundation, 2018. gada 12. maijs. Pieejams šeit
2. “Primārā atslēga”. Wikipedia, Wikimedia Foundation, 2018. gada 3. aprīlis. Pieejams šeit
1.'Foreign-Key-Mapping'By MovGP0 - Savs darbs, (CC BY-SA 3.0), izmantojot Commons Wikimedia
2.'Erd-id-as-basic-key'By UniCollab - Savs darbs, (CC BY-SA 3.0), izmantojot Commons Wikimedia