Svarbiausias skirtumas tarp išorinio rakto ir pirminio rakto yra tas, kad išorinis raktas yra stulpelis arba stulpelių rinkinys, nurodantis kitos lentelės pirminį raktą arba galimą raktą, o pirminis raktas yra stulpelis arba stulpelių rinkinys kuriuos galima naudoti norint vienareikšmiškai identifikuoti lentelės eilutę.
Stulpelis arba stulpelių rinkinys, kurį galima naudoti norint identifikuoti arba pasiekti duomenų bazės eilutę arba eilučių rinkinį, vadinamas raktu. Pirminis raktas reliacinėje duomenų bazėje yra lentelės stulpelių derinys, unikaliai identifikuojantis lentelės eilutę. Svetimas raktas reliacinėje duomenų bazėje yra lentelės laukas, atitinkantis kitos lentelės pirminį raktą. Išorinis raktas naudojamas kryžminėms lentelėms nurodyti.
Kas yra užsienio raktas?
Užsienio raktas yra nuorodos apribojimas tarp dviejų lentelių. Jis identifikuoja stulpelį arba stulpelių rinkinį vienoje lentelėje, vadinamą nuorodų lentele, kuri nurodo stulpelių rinkinį kitoje lentelėje, vadinama nuoroda lentele. Išorinis raktas arba nuorodų lentelės stulpeliai turi būti pirminis raktas arba raktas kandidatas (raktas, kuris gali būti naudojamas kaip pirminis raktas) nurodytoje lentelėje. Be to, išoriniai raktai leidžia susieti duomenis keliose lentelėse. Todėl išoriniame rakte negali būti verčių, kurios nėra nurodytoje lentelėje. Tada užsienio rakto pateikta nuoroda padeda susieti informaciją keliose lentelėse ir tai būtų būtina normalizuojant duomenų bazes. Kelios nuorodų lentelės eilutės gali reikšti vieną nurodytos lentelės eilutę.
01 pav.: svetimo rakto atvaizdavimas
ANSI SQL standarte apribojimas FOREIGN KEY apibrėžia išorinius raktus. Be to, kuriant pačią lentelę galima apibrėžti išorinius raktus. Lentelėje gali būti keli pašaliniai raktai ir jie gali nurodyti skirtingas lenteles.
Kas yra pagrindinis raktas?
Pirminis raktas yra stulpelis arba stulpelių derinys, unikaliai apibrėžiantis eilutę reliacinės duomenų bazės lentelėje. Lentelėje gali būti daugiausia vienas pirminis raktas. Pirminis raktas įgyvendina numanomą NOT NULL apribojimą. Todėl stulpelyje su pirminiu raktu negali būti NULL reikšmių. Pirminis raktas gali būti įprastas atributas lentelėje, kuris garantuotai yra unikalus, pvz., socialinio draudimo numeris, arba tai gali būti unikali reikšmė, sugeneruota duomenų bazės valdymo sistemos, pvz., visuotinis unikalus identifikatorius (GUID) Microsoft SQL Server.
02 pav.: Pagrindinis raktas
Be to, ANSI SQL standarto PRIMARY KEY apribojimas apibrėžia pirminius raktus. Kuriant lentelę taip pat galima apibrėžti pirminį raktą. Be to, SQL leidžia pirminį raktą sudaryti iš vieno ar daugiau stulpelių, o kiekvienas stulpelis, įtrauktas į pirminį raktą, netiesiogiai apibrėžiamas kaip NE NULL. Tačiau kai kurios duomenų bazių valdymo sistemos reikalauja, kad pirminio rakto stulpeliai būtų aiškiai NOT NULL.
Kuo skiriasi išorinis raktas ir pirminis raktas?
Užsienio klavišas prieš pirminį raktą |
|
Svetimas raktas yra stulpelis arba stulpelių grupė reliacinės duomenų bazės lentelėje, kuri suteikia ryšį tarp dviejų lentelių duomenų. | Pirminis raktas yra specialus reliacinės duomenų bazės lentelės stulpelis arba kelių stulpelių derinys, leidžiantis unikaliai identifikuoti visus lentelės įrašus. |
NULL | |
Užsienio raktas priima NULL reikšmę. | Pirminio rakto reikšmė negali būti NULL. |
Raktų skaičius | |
Lentelėje gali būti keli išoriniai raktai. | Lentelėje gali būti tik vienas pirminis raktas. |
Dubliavimas | |
Kvaitės gali turėti pasikartojančią išorinio rakto atributo reikšmę. | Dvi santykio kortelės negali turėti pasikartojančių pirminio rakto atributo reikšmių. |
Santrauka – išorinis raktas prieš pirminį raktą
Skirtumas tarp išorinio rakto ir pirminio rakto yra tas, kad išorinis raktas yra stulpelis arba stulpelių rinkinys, nurodantis kitos lentelės pirminį raktą arba galimą raktą, o pirminis raktas yra stulpelis arba stulpelių rinkinys, galima naudoti norint vienareikšmiškai identifikuoti lentelės eilutę.