Pirminis raktas yra laukas arba laukų rinkinys, kuriame pateikiamos unikalios visoje lentelėje vertės. Galite nurodyti visus įrašus naudodami rakto reikšmes, nes kiekvienas įrašas turi skirtingą rakto reikšmę. 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. Pasirinkite norimą naudoti lauką (arba laukus), tada juostelėje pasirinkite Pirminis raktas.
Š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:
-
Ji unikaliai identifikuoja kiekvieną eilutę.
-
Jis niekada nėra tuščias arba neapibrėžtas – jame visada yra reikšmė.
-
Jame esančios reikšmės retai (geriausia – 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 automatinio numeravimo lauko įtraukimą žr. Automatinio numeravimo lauko įtraukimas kaip pirminio rakto.
„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ą, ir kontekstiniame meniu pasirinkite 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 pasirinkti vieną lauką, pasirinkite norimo lauko eilučių parinkiklį.
Norėdami pasirinkti kelis laukus, kad sukurtumėte sudėtinį raktą, laikykite nuspaudę klavišą CTRL ir pažymėkite kiekvieno lauko eilučių parinkiklį.
-
Skirtuko Lentelės dizainas grupėje Įrankiai pasirinkite 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 pasirinkite Ryšiai.
-
Pasirinkite Įtraukti lentelių.
-
Pažymėkite norimo naikinti lentelės ryšio liniją (pažymėta eilutė 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 pašalinti pirminį raktą, tada pasirinkite Dizaino rodinys.
Patarimas: Jei nematote naršymo srities, paspauskite klavišą F11, ir ji atsidarys.
-
Pasirinkti dabartinio pirminio rakto eilučių parinkiklį.
Jei pirminį raktą sudaro vienas laukas, pasirinkite to lauko eilutės parinkiklį.
Jei pirminį raktą sudaro keli laukai, pasirinkite bet kurio pirminio rakto lauko eilučių parinkiklį.
-
Skirtuko Lentelės dizainas grupėje Įrankiai pasirinkite 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: