Rekomenduojama, 2022

Redaktoriaus Pasirinkimas

Skirtumas tarp pirminio ir kandidato rakto

Raktai yra atributas, arba atributų rinkinys, naudojamas prieigai prie lentelės, arba jie taip pat naudojami santykiams tarp dviejų lentelių sukurti. Šiame straipsnyje aptarsime pirminį ir kandidatinį raktą ir jų skirtumus. Tiek pirminis, tiek kandidato raktas vienareikšmiškai identifikuoja ryšį ar lentelę. Tačiau svarbiausias dalykas, kuris juos išskiria, yra tas, kad santykyje gali būti tik vienas pirminis raktas . Tačiau santykiuose gali būti daugiau nei vienas kandidato raktas .

Yra daugiau skirtumų tarp pirminio ir kandidato rakto, kurį aptarsiu toliau pateiktoje palyginimo diagramoje.

Palyginimo diagrama

Palyginimo pagrindasPirminis raktasKandidato raktas
PagrindinisBet kokiame santykyje gali būti tik vienas pagrindinis raktas.Santykyje gali būti daugiau nei vienas kandidato raktas.
NULLNėra jokio pirminio rakto atributo NULL reikšmės.Kandidato rakto atributas gali turėti NULL reikšmę.
NurodykiteNeprivaloma nurodyti pirminį raktą bet kuriam ryšiui.Negali būti ryšio be nurodyto raktinio žodžio.
FunkcijaPirminis raktas apibūdina svarbiausią santykio atributą.Kandidatų raktai pateikia kandidatus, kurie gali gauti pirminį raktą.
PriešingaiPirminis raktas yra kandidato raktas.Tačiau nebūtina, kad kiekvienas raktas į kandidatą būtų pagrindinis raktas.

Pirminio rakto apibrėžimas

Pirminis raktas yra atributas arba atributų rinkinys, kuris išskirtinai identifikuos kiekvieną ryšį santykyje. Kiekvienam ryšiui gali būti tik vienas pagrindinis raktas. Turi būti pasirūpinta, kad pirminis raktas niekada neturėtų turėti NULL reikšmės, ir turi turėti unikalią kiekvieno santykio vertę. Pirminio rakto atributų / s reikšmės turi būti statinės, ty atributo reikšmė niekada neturėtų pasikeisti.

Vienas iš kandidatų raktų tampa kvalifikuotu tapti pirminiu raktu. Taisyklės, kurias turi atitikti kandidato raktas, turi tapti pagrindinėmis vertėmis, kad pagrindinė vertė niekada neturėtų būti NULL ir ji turi būti unikali visoms eilutėms.

Jei santykis turi atributą, kuris yra pirminio kito santykio raktas, tuomet šis atributas vadinamas užsienio raktu .

Prieš įvedant kitus santykio atributus, rekomenduojama išsiaiškinti pirminį ryšio santykį, nes pirminis raktas identifikuoja kiekvieną eilutę vienareikšmiškai. Geriau pasirinkti vieną atributą arba nedidelį atributų skaičių kaip pagrindinį raktą, kuris palengvina ryšių tvarkymą.

Dabar pažiūrėkime pirminio rakto pavyzdį.

 Studentas {ID, pirmasis vardas, pavardė, amžius, adresas} 

Čia pirmiausia išsiaiškinsime kandidatų raktus. Aš išsiaiškinau du kandidato raktus {ID} ir {First_name, Last_name}, nes jie kiekvienam studentui išskirtinai identifikuos studentų ryšį. Dabar aš pasirinksiu ID kaip savo pagrindinį raktą, nes kartais gali atsitikti, kad du mokiniai gali turėti tuos pačius vardą ir pavardę, todėl bus lengva atsekti studentą su savo ID .

Kandidato rakto apibrėžimas

Kandidato raktas yra atributas arba atributo rinkinys, vienareikšmiškai apibrėžiantis ryšį. Santykyje yra daugiau nei vienas kandidato raktas. Šie kandidatų raktai yra kandidatai, galintys tapti pagrindiniu raktu.

Nors kiekvienas raktinis žodis atitinka pagrindinį raktą, tik vienas gali būti pasirinktas kaip pagrindinis raktas. Taisyklės, kurių reikalauja raktas į kandidatą, yra pagrindinio rakto atributo reikšmė, kuri niekada negali būti NULL bet kuriame rakto domene, ji turi būti unikali ir statinė .

Jei visi kandidato raktai atitinka pagrindinį raktą, tuomet patyręs DBA turi priimti sprendimą išsiaiškinti pirminį raktą. Niekada negali būti ryšio be kandidato rakto.

Suprasime kandidato raktą su pavyzdžiu. Jei pridedame dar daugiau atributų Studentų santykiui, aš aptariau aukščiau.

 Studentas {ID, pirmasis vardas, pavardė, amžius, adresas, DOB, departamento pavadinimas} 

Čia galiu išsiaiškinti du kandidato raktus, kurie yra {ID}, {First_name, Last_name, DOB} . Taigi galite suprasti, kad kandidato raktai yra tokie, kurie vienareikšmiškai identifikuoja ryšį.

Pagrindiniai skirtumai tarp pirminio ir kandidato rakto

  1. Pagrindinis taškas, kuris išskiria pirminį raktą nuo kandidato rakto, yra tas, kad bet kuris schemos ryšys gali būti tik vienas. Tačiau gali būti keletas kandidatų raktų vienam santykiui.
  2. Atributas pagal pirminį raktą niekada negali turėti NULL reikšmės, nes pagrindinė pirminės rakto funkcija yra vienareikšmiškai identifikuoti įrašą. Netgi pirminis raktas gali būti naudojamas kaip svetimas raktas kituose santykiuose, taigi jis negali būti NULL, kad nuorodų ryšys galėtų surasti koreliacijas nuorodiniu santykiu. Kandidato raktas gali būti NULL, jei atributo suvaržymas nenurodytas.
  3. Neprivaloma nurodyti pirminį raktą, tačiau negali būti ryšio su kandidatų raktais.
  4. Pirminis raktas apibūdina unikalų ir svarbiausią santykio atributą, o kandidatų raktai suteikia kandidatams, iš kurių vienas gali būti pasirinktas kaip pagrindinis raktas.
  5. Kiekvienas pirminis raktas yra kandidato raktas, bet atvirkščiai nėra tiesa.

Išvada:

Tai yra neprivaloma ryšiui, nurodančiam pirminį raktą. Kita vertus, jei deklaruojate santykį, kandidato raktai turi būti šiame santykyje, kad būtų sukurtas geras santykis.

Top