Pirminis raktas yra laukas arba laukų rinkinys, kuriame pateikiamos unikalios visoje lentelėje vertės. Rakto vertes galima nurodyti visiems įrašams, nes kiekvienas įrašas turi skirtingą rakto vertę. Kiekvienoje lentelėje gali būti tik vienas pirminis raktas. „Access“ gali automatiškai sukurti pirminio rakto lauką, kai kuriate lentelę, arba galite nurodyti laukus, kuriuos norite naudoti kaip pirminį raktą. Šiame straipsnyje aiškinama, kaip ir kodėl naudojami pirminiai raktai.
Norėdami nustatyti lentelės pirminį raktą, atidarykite lentelę dizaino rodinyje. Pažymėkite norimą naudoti lauką (arba laukus), tada juostelėje spustelėkite Pirminis raktas.
Pastaba: Šis straipsnis skirtas naudoti tik su „Access“ kompiuterio duomenų bazėmis. „Access“ automatiškai tvarko pirminius naujų lentelių raktus „Access“ žiniatinklio programose ir žiniatinklio duomenų bazėse. Nors galima perrašyti šiuos automatinius pirminius raktus, to daryti nerekomenduojame.
Šiame straipsnyje
„Access“ pirminių raktų apžvalga
„Access“ naudoja pirminio rakto laukus, kad greitai susietų kelių lentelių duomenis ir prasmingai juos sujungtų. Galite įtraukti pirminio rakto laukus į kitas lenteles, kad galėtumėte grąžinti nuorodą į lentelę, kuri yra pirminio rakto šaltinis. Šiose kitose lentelėse laukai vadinami išoriniais raktais. Pavyzdžiui, lentelės Klientai laukas Kliento ID taip pat gali būti rodomas lentelėje Užsakymai. Lentelėje Klientai tai yra pirminis raktas. Lentelėje Užsakymai jis vadinamas išoriniu raktu. Tiesiog nurodytas išorinis raktas yra kitos lentelės pirminis raktas. Daugiau informacijos žr. Duomenų bazės kūrimo pagrindai.
1. Pirminis raktas
2. Išorinis raktas
Jei perkeliate esamus duomenis į duomenų bazę, galbūt jau turite lauką, kurį galite naudoti kaip pirminį raktą. Dažnai unikalus identifikatorius, pvz., ID numeris arba serijos numeris ar kodas, yra naudojamas kaip lentelės pirminis raktas. Pavyzdžiui, turite lentelę Klientai, kurioje kiekvienas klientas turi unikalų kliento ID numerį. Kliento ID laukas yra pirminis raktas.
„Access“ automatiškai sukuria pirminio rakto rodyklę, kuri padeda pagreitinti užklausas ir kitas operacijas. „Access“ taip pat užtikrina, kad kiekvienas įrašas pirminio rakto lauke turėtų reikšmę ir kad jis visada būtų unikalus.
Kai duomenų lapo rodinyje sukuriate naują lentelę, „Access“ automatiškai sukuria pirminį raktą ir priskiria jam ID lauko pavadinimą bei duomenų tipą Automatinis numeravimas.
Kaip sukurti gerą pirminį raktą?
Geras pirminis raktas pasižymi keliomis savybėmis:
-
Jis unikaliai identifikuoja kiekvieną eilutę
-
Jis niekada nebūna tuščias ar neapibrėžtas – jame visada yra vertė
-
Jame esanti vertė retai (idealiu atveju – niekada) keičiasi
Jei negalite nustatyti tinkamo rakto, sukurkite lauką Automatinis numeravimas, kurį naudosite kaip raktą. „AutoNumber“ automatiškai sugeneruoja savo reikšmę, kai pirmą kartą įrašomas įrašas. Taigi „AutoNumber“ laukas atitinka visas tris gero pirminio rakto charakteristikas. Daugiau informacijos apie „AutoNumber“ lauko įtraukimą žr. straipsnį „AutoNumber“ lauko kaip pirminio rakto įtraukimas.
„AutoNumber“ laukas būna geras pirminis raktas.
Blogų pirminių raktų pavyzdžiai
Bet koks laukas, kuriame nėra vienos ar kelių gero rakto savybių, yra blogas pirminio rakto pasirinkimas. Štai keli laukų pavyzdžiai, kurie būtų prasti pirminiai lentelės Kontaktai raktai, ir priežastys, dėl kurių jie netinka.
|
Prastas pirminio rakto |
Priežastis |
|---|---|
|
Asmens vardas |
Gali nebūti patikimai unikalus, be to, gali keistis |
|
Telefono numeris |
Gali keistis. |
|
El. pašto adresas |
Gali keistis. |
|
Pašto indeksas |
Daugiau nei vienas asmuo gali naudoti tą patį pašto kodą |
|
Faktų ir skaičių derinys |
Faktų dalis gali keistis, todėl iškiltų priežiūros problemų. Jie gali sukelti sumaištį, jei faktų dalis kartojama kaip atskiras laukas. Pavyzdžiui, derinys, apimantis miestą ir numerį (pvz., VILNIUS0579), yra blogas pasirinkimas, jei miestas taip pat yra išsaugotas kaip laukas. |
|
Socialinio draudimo numeriai |
|
Raktų kūrimas: kelių laukų naudojimas kaip pirminio rakto
Kai kuriais atvejais kaip pirminį raktą galite naudoti vieną arba daugiau lentelės laukų. Pavyzdžiui, lentelėje Užsakymų išsami informacija, kurioje saugomi užsakymų eilučių elementai, pirminis raktas gali būti sudarytas iš dviejų laukų: Užsakymo ID ir Produkto ID. Raktas, kuris sudaromas iš daugiau nei vieno lauko, vadinamas sudėtiniu raktu.
Pirminio rakto nustatymas naudojant laukus, kuriuos jau turite „Access“
Kad pirminis raktas gerai veiktų, laukas turi unikaliai identifikuoti kiekvieną eilutę, jame niekada negali būti tuščios ar neapibrėžtos (null) reikšmės ir retai kada (geriausia – niekada) keistųsi. Norėdami nustatyti pirminį raktą:
-
Atidarykite duomenų bazę, kurią norite keisti.
-
Naršymo srityje dešiniuoju pelės mygtuku spustelėkite lentelę, kurioje norite nustatyti pirminį raktą, tada laikinajame meniu spustelėkite Dizaino rodinys.
Patarimas: Jei nematote naršymo srities, paspauskite klavišą F11, ir ji atsidarys.
-
Pažymėkite lauką ar laukus, kuriuos naudosite kaip pirminį raktą.
Norėdami pažymėti vieną lauką, spustelėkite norimo lauko eilutės parinkiklį.
Norėdami pažymėti kelis laukus, kad sukurtumėte sudėtinį raktą, laikykite nuspaudę klavišą CTRL ir spustelėkite kiekvieno lauko eilutės parinkiklį.
-
Skirtuko Lentelės dizainas grupėje Įrankiai spustelėkite Pirminis raktas.
Rakto indikatorius pridedamas lauko ar laukų, kuriuos nurodėte kaip pirminį raktą, kairėje pusėje.
Pirminio rakto šalinimas programoje „Access“
Pašalinus pirminį raktą, laukas ar laukai, kurie anksčiau buvo pirminiai raktai, nebeteiks pirminės įrašų identifikavimo funkcijos.
Pašalinus pirminį raktą, lentelės laukai nepanaikinami, bet pašalinamas pirminiam raktui sukurtas indeksas.
-
Prieš šalindami pirminį raktą, turite įsitikinti, kad jis nėra jokių lentelės ryšių dalis. Jei bandysite pašalinti pirminį raktą, kuris yra vieno ar kelių ryšių dalis, „Access“ įspėja, kad pirmiausia turite panaikinti ryšius.Norėdami panaikinti lentelės ryšius, atlikite šiuos veiksmus:
-
Jei lentelių ryšyje dalyvaujančios lentelės atidarytos – uždarykite jas. Lentelių ryšio negalėsite panaikinti atidarytose lentelėse.
-
Skirtuko Duomenų bazės įrankiai grupėje Ryšiai spustelėkite Ryšiai.
-
Pasirinkite Įtraukti lentelių.
-
Spustelėkite norimo naikinti lentelės ryšio eilutę (pažymėjus eilutę, ji tampa paryškinta), tada paspauskite klavišą DELETE.
-
Skirtuko Ryšių dizainas grupėje Ryšiai spustelėkite Uždaryti.
-
-
Panaikinę ryšius, naršymo srityje dešiniuoju pelės mygtuku spustelėkite lentelę, iš kurios norite šalinti pirminį raktą, tada spustelėkite Dizaino rodinys.
Patarimas: Jei nematote naršymo juostos, paspauskite klavišą F11, ir ji atsidarys.
-
Spustelėkite dabartinio pirminio rakto eilutės parinkiklį.
Jeigu pirminį raktą sudaro vienas laukas, spustelėkite to lauko eilutės parinkiklį.
Jeigu pirminis raktas sudarytas iš kelių laukų, spustelėkite bet kurio lauko, esančio pirminiame rakte, eilutės parinkiklį.
-
Skirtuko Lentelės dizainas grupėje Įrankiai spustelėkite Pirminis raktas.
Rakto indikatorius pašalinamas iš lauko arba laukų, kuriuos anksčiau nurodėte kaip pirminį raktą.
Pastaba: Kai naują lentelę įrašote nenustatydami pirminio rakto, „Access“ paragins jį sukurti. Jei pasirinksite Taip, „Access“ sukurs ID lauką, kuris naudoja duomenų tipą Automatinis numeravimas, kad pateiktų unikalią kiekvieno įrašo reikšmę. Jei jūsų lentelėje jau yra laukas Automatinis numeravimas, „Access“ naudoja tą lauką kaip pirminį raktą.
Pirminio rakto keitimas programoje „Access“
Jei nuspręstumėte keisti lentelės pirminį raktą, galite tai padaryti atlikdami šiuos veiksmus:
-
Naudodamiesi skyriuje Pirminio rakto šalinimas pateiktomis instrukcijomis, pašalinkite esamą pirminį raktą.
-
Naudodamiesi skyriuje Pirminio rakto nustatymas pateiktomis instrukcijomis, nustatykite pirminį raktą.
Papildoma informacija
Daugiau informacijos apie duomenų bazės kūrimą ir atitinkamo pirminio rakto pasirinkimą, žr. straipsnius: