Pagrindinis raktas vs unikalus raktas
Stulpelis arba stulpelių rinkinys, kuris gali būti naudojamas duomenų bazės eilutėms ar eilučių identifikavimui arba prieigai prie jų, vadinamas raktu. Unikalus raktas yra raktas, galintis unikaliai identifikuoti lentelės eilutę reliacinių duomenų bazių kontekste. Unikalus raktas yra sudarytas iš vieno stulpelio arba stulpelių rinkinio. Pagrindinis raktas taip pat yra lentelės stulpelių, kurie unikaliai identifikuoja eilutę, derinys. Bet jis laikomas ypatingu unikalaus rakto atveju.
Kas yra unikalus raktas?
Kaip minėta anksčiau, unikalus raktas yra vienas stulpelis arba stulpelių rinkinys, galintis unikaliai identifikuoti lentelės eilutę. Taigi, unikalus raktas yra suvaržytas taip, kad nė viena jo vertė nėra lygi. Viena svarbi savybė yra ta, kad unikalūs raktai neįtvirtina apribojimo NOT NULL. Kadangi NULL reiškia vertės trūkumą, jei dviejų eilučių stulpelyje yra NULL, tai dar nereiškia, kad vertės yra lygios. Stulpelis, apibrėžtas kaip unikalus raktas, leidžia tik vieną NULL reikšmę tame stulpelyje. Tada tai gali būti panaudota tam tikrai eilutei unikaliai identifikuoti. Pvz., Lentelėje, kurioje yra studentų informacija, studento ID gali būti apibrėžtas kaip unikalus raktas. Kadangi du studentai negali turėti to paties asmens tapatybės pažymėjimo, jis vienareikšmiškai identifikuoja vieną mokinį. Taigi studento ID stulpelis tenkina visas unikalaus rakto savybes. Atsižvelgiant į duomenų bazės dizainą, lentelėje gali būti daugiau nei vienas unikalus raktas.
Kas yra pagrindinis raktas?
Pagrindinis raktas taip pat yra stulpelis arba stulpelių derinys, kuris unikaliai nusako eilutę reliacinės duomenų bazės lentelės lentelėje. Lentelėje gali būti ne daugiau kaip vienas pagrindinis raktas. Pagrindinis raktas vykdo numanomą NE NULL apribojimą. Taigi stulpelyje, kuris apibrėžiamas kaip pagrindinis raktas, jame negali būti NULL reikšmių. Pagrindinis raktas gali būti normalus lentelės atributas, garantuojamas kaip unikalus, pavyzdžiui, socialinio draudimo numeris, arba tai gali būti unikali vertė, kurią sukuria duomenų bazės valdymo sistema, pvz., Globalus unikalus identifikatorius (GUID) „Microsoft SQL Server“. Pirminiai raktai yra apibrėžti per PRIMARY KEY apribojimą ANSI SQL standarte. Pirminis raktas taip pat gali būti apibrėžtas kuriant lentelę. SQL leidžia pirminį raktą sudaryti iš vieno ar daugiau stulpelių, o kiekvienas stulpelis, kuris yra įtrauktas į pirminį raktą, yra netiesiogiai apibrėžtas kaip NE NULL. Tačiau kai kurios duomenų bazių valdymo sistemos reikalauja, kad pirminio rakto stulpeliai būtų aiškiai NULL.
Skirtumas tarp pirminio ir unikalaus rakto
Nors ir pagrindinis, ir unikalus raktas yra vienas ar keli stulpeliai, galintys unikaliai identifikuoti lentelės eilutes, jie turi keletą svarbių skirtumų. Svarbiausia, kad lentelė gali turėti tik vieną pirminį raktą, tuo tarpu joje gali būti daugiau nei vienas unikalus raktas. Pirminis raktas gali būti laikomas ypatingu unikalaus rakto atveju. Kitas skirtumas yra tas, kad pirminiai raktai turi netiesioginį apribojimą NE NULL, o unikalus raktas neturi tokio suvaržymo. Todėl unikaliuose raktų stulpeliuose gali būti NULL reikšmių, bet jų negali būti, tačiau pirminių raktų stulpeliuose negali būti NULL verčių.