Lentelių ryšių vadovas
Applies To„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Vienas iš gero duomenų bazės dizaino tikslų yra pašalinti duomenų perteklumą (duomenų dublikatus). Šiam tikslui pasiekti, padalykite duomenis į daugelį tema pagrįstų lentelių, kad kiekvienas faktas būtų nurodomas tik vieną kartą. Tada suteikite Access būdą vėl sujungti padalytą informaciją – tai daroma naudojant bendruosius laukus susijusiose lentelėse. Jei norite atlikti šį veiksmą teisingai, būtina suprasti ryšius tarp lentelių, tada nurodyti tuos ryšius duomenų bazėje.

Šiame straipsnyje

Įžanga

Sukūrę kiekvienai savo duomenų bazės temai skirtą lentelę, turite pateikti programai Access būdą, kaip prireikus informaciją vėl sujungti. Norėdami tai atlikti, į susijusias lenteles turite įtraukti bendrųjų laukų ir nurodyti lenteles siejančius ryšius. Tada galėsite kurti užklausas, formas ir ataskaitas, kuriose bus iš karto rodoma keliose lentelėse pateikta informacija. Pvz., į čia pateiktą formą įtraukta iš kelių lentelių nuskaityta informacija.

Forma Užsakymai, kurioje iškart rodoma susijusi informacija, pateikta penkiose lentelėse

1. Informacija į šią formą perkelta iš lentelės Klientai...

2. ...lentelės Užsakymai...

3. ...lentelės Produktai...

4. ...ir lentelės Užsakymo išsami informacija.

Lauke Išrašyti sąskaitą pateiktas kliento pavadinimas nuskaitytas iš lentelės Klientai, Užsakymo ID ir Užsakymo data reikšmės perkeltos iš lentelės Užsakymai, Produktas reikšmė perkelta iš lentelės Produktai, o Vieneto kaina ir Kiekis reikšmės perkeltos iš lentelės Užsakymo išsami informacija. Siekiant, kad iš kiekvienos lentelės į formą būtų perkelta informacija, šios lentelės yra įvairiausiais būdais viena su kita susietos.

Pateiktas pavyzdys, kai lentelių laukai turi būti suderinti taip, kad juose būtų rodoma to paties užsakymo informacija. Taip suderinti pavyksta naudojant lentelių ryšius. Lentelių ryšys sugretina rakto laukuose  (dažnai tuose, kuriems abiejose lentelėse suteiktas toks pat pavadinimas) pateiktus duomenis. Dažniausiai šie atitinkantys laukai yra vienos lentelės pirminis raktas, pateikiantis kiekvieno įrašo unikalų identifikatorių, ir kitos lentelės išorinis raktas. Pvz., jei darbuotojus reikia susieti su užsakymais, už kuriuos jie yra atsakingi, galima sukurti ryšį tarp lentelių Darbuotojai ir Užsakymai laukių Darbuotojo ID.

Darbuotojo ID, kuris lentelėje Darbuotojai naudojamas kaip pirminis raktas, o lentelėje Užsakymai – kaip išorinis.

1. Darbuotojo ID rodomas abiejose lentelėse – kaip pirminis raktas...

2. ...kaip išorinis raktas.

Puslapio viršus

Lentelių ryšių tipai

„Access“ galimi trys lentelių ryšių tipai.

  • Ryšys „vienas su daugeliu“

    Kaip pavyzdžiu pasinaudokime užsakymo sekimo duomenų baze, kurioje yra lentelės Klientai ir Užsakymai. Klientas gali pateikti bet kokį skaičių užsakymų. Vadinasi, lentelėje Užsakymai gali būti pateikta po keletą kiekvieno lentelėje Klientai nurodyto kliento užsakymų. Ryšys tarp lentelių Klientai ir Užsakymai yra „vienas su daugeliu“.

    Norėdami, kad ryšys „vienas su daugeliu“ būtų įtrauktas į duomenų bazės struktūrą, pirminį raktą, esantį ryšio pusėje „vienas“, įtraukite į lentelės ryšio pusę „daugelis“ kaip papildomą lauką arba laukus. Šiuo atveju įtraukiamas naujas laukas – ID laukas iš lentelės Klientai – į lentelę Užsakymai, ir pavadinamas Kliento ID. Access tada gali naudoti Kliento ID lentelėje Užsakymai, kad rastų tinkamą klientą kiekvienam užsakymui.

  • Ryšys „daugelis su daugeliu“

    Dabar pažvelkime į lentelių Produktai ir Užsakymai ryšį. Į vieną užsakymą gali būti įtrauktas daugiau nei vienas produktas. Kita vertus, vienas produktas gali būti nurodytas keliuose užsakymuose. Todėl lentelėje Produktai gali būti pateikta po kelis kiekvieną lentelės Užsakymai įrašą atitinkančius įrašus. Be to, lentelėje Užsakymai gali būti pateikta po kelis kiekvieną lentelės Produktai įrašą atitinkančius įrašus. Toks ryšys vadinamas „daugelis su daugeliu“. Nepamirškite, kad nustatant lentelių ryšį „daugelis su daugeliu“, svarbu atsižvelgti į abi ryšiu siejamas puses.

    Norėdami perteikti ryšį „daugelis su daugeliu“ turite sukurti trečią lentelę (dažnai vadinamą jungiamąja lentele), kurioje ryšys „daugelis su daugeliu“ būtų padalytas į du ryšius „vienas su daugeliu“. Į trečią lentelę turite įterpti pirminį raktą iš abiejų lentelių. Tada trečioje lentelėje bus užfiksuotas kiekvienas kartas arba atvejis, kai nustatomas ryšys. Pvz., lentelių Užsakymai ir Produktai ryšys yra „daugelis su daugeliu“, apibrėžiamas sukuriant du ryšius „vienas su daugeliu“ su lentele Užsakymo išsami informacija. Viename užsakyme gali būti nurodyti keli produktai, o kiekvienas produktas gali būti nurodytas keliuose užsakymuose.

  • Ryšys „vienas su vienu“

    Jei ryšio tipas yra „vienas su vienu“, vadinasi, kiekvieną pirmosios lentelės įrašą gali atitikti tik vienas antrosios lentelės įrašas, o kiekvieną antrosios lentelės įrašą gali atitikti tik vienas pirmosios lentelės įrašas. Šis ryšys nėra įprastas, nes dažniausiai tokiu būdu susijusi informacija saugoma toje pačioje lentelėje. Ryšį „vienas su vienu“ galite naudoti norėdami padalyti iš daug laukų sudarytą lentelę, atskirti norimą apsaugoti lentelės dalį arba saugoti informaciją, kuri taikoma tik antriniam pagrindinės lentelės rinkiniui. Nustatant šį ryšį, būtina užtikrinti, kad abiejose lentelėse bus bendrinami tie patys laukai.

Puslapio viršus

Kodėl reikia kurti lentelių ryšius

Lentelių ryšius galite kurti naudodami langą Ryšiai (detalusis būdas) arba vilkdami laukus iš srities Laukų sąrašas. Access naudoja lentelių ryšius, kad nuspręstų, kaip jungti lenteles, kai jas reikia naudoti duomenų bazės objekte. Yra keletas priežasčių, kodėl prieš kuriant kitus duomenų basės objektus, pvz., formas, užklausas ir ataskaitas, reikia sukurti lentelių ryšius.

  • Lentelių ryšiai nurodo užklausų dizainą

    Norint naudoti daugiau nei vienos lentelės įrašus, dažnai tenka sukurti lenteles sujungiančią užklausą. Pirmosios lentelės pirminio rakto laukų reikšmes užklausa sugretina su antrosios lentelės išorinių raktų laukais. Pvz., norėdami gauti eilutes, kuriose išvardyti visi kiekvieno kliento užsakymai, turite sukurti užklausą, jungiančią lenteles Klientai ir Užsakymai pagal lauką Kliento ID. Lange Ryšiai galite rankiniu būdu nurodyti norimus jungti laukus. Tačiau jei lentelių ryšys jau apibrėžtas, Access jungs numatytuoju būdu, pagal esamą lentelių ryšį. Be to, jei naudosite vieną iš užklausos vediklių, Access surinks informaciją, kurią pateikėte apibrėždami lentelių ryšius, ir nurodys žinomus pasirinkimus bei iš anksto automatiškai įves atitinkamas numatytąsias ypatybių parametrų reikšmes.

  • Lentelių ryšiai nurodo formų ir ataskaitų dizainą

    Projektuojant formą arba ataskaitą, Access surinks informaciją, kurią pateikėte apibrėždami lentelių ryšius, ir nurodys informacija pagrįstus pasirinkimus bei iš anksto automatiškai įves atitinkamas numatytąsias ypatybių parametrų reikšmes.

  • Ryšiai yra platforma, kurią galėsite naudoti kaip pagrindą įgalindami nuorodų vientisumą, padedantį išvengti vienišųjų narių įrašų duomenų bazėje. Vienišojo nario įrašas nurodo kitą įrašą, kurio nėra, pvz., užsakymo įrašas, nurodantis nesamą kliento įrašą.

    Kurdami duomenų bazę, informaciją suskirstote į lenteles, kurių kiekviena turi pirminį raktą. Tada į susijusias lenteles įtraukiate išorinių raktų, nurodančių tuos pirminius raktus. Šios išorinių ir pirminių raktų poros yra lentelių ryšių ir kelių lentelių užklausų pagrindas. Svarbu, kad šios išorinių ir pirminių raktų poros išliktų sinchronizuotos. Nuorodų vientisumas, priklausomas nuo lentelių ryšių, padeda užtikrinti nuorodų sinchronizaciją.

Puslapio viršus

Supratimas, kas yra nuorodų vientisumas

Kurdami duomenų bazę, jos informaciją dalijate į daugelį temomis pagrįstų lentelių, kad būtų sumažintas duomenų perteklumas. Tada įtraukdami bendruosius laukus į susijusias lenteles, pateikiate programai Access būdą, kuriuo ji vėl galėtų sujungti informaciją. Pvz., norėdami nurodyti ryšį „vienas su daugeliu“, lentelės, kurioje yra „vienas“ elementas, pirminį raktą kaip papildomą lauką įtraukiate į lentelę, kurioje yra „daugelis“ elementų. Vėl jungdama duomenis, Access ieškos lentelės, kurioje yra „daugelis“ elementų, reikšmės atitikmens lentelėje, kurioje yra „vienas“ elementas. Taip lentelės, kurioje yra „daugelis“ elementų, reikšmės nurodo atitinkamas lentelės, kurioje yra „vienas“ elementas, reikšmes.

Tarkim, tarp lentelių Siuntėjai ir Užsakymai yra ryšys „vienas su daugeliu“ ir jūs norite panaikinti elementą Siuntėjas. Jei lentelėje Užsakymai nurodyta norimo naikinti siuntėjo užsakymų, panaikinus elemento Siuntėjas įrašą tie užsakymai taps vienišaisiais nariais. Lentelėje Užsakymai siuntėjo ID išliks, bet šis ID nebegalios, nes nebebus jo nurodomo įrašo.

Nuorodų vientisumo tikslas yra panaikinti vienišųjų narių sukūrimo galimybę ir užtikrinti nuorodų sinchronizaciją, kad pavyktų išvengti tokių hipotetinių situacijų.

Nuorodų vientisumas įgalinamas kuriant lentelių ryšį. Jį įgalinus, Access atmes visas operacijas, galinčias pažeisti tuo lentelių ryšiu pagrįstą nuorodų vientisumą. Tai reiškia, kad Access atmes abu naujinimo veiksmus, galinčius pakeisti tikslinę nuorodą, ir naikinimo veiksmus, galinčius pašalinti tikslinę nuorodą. Gali būti, kad susidarys visiškai tinkamas poreikis pakeisti pirminį siuntėjo raktą, kuris turi užsakymų lentelėje Užsakymai. Tokiu atveju reikia, būtina, kad Access automatiškai atnaujintų visas eilutes, kurioms gali būti padaryta įtakos. Taip Access atliks visišką naujinimą, kad duomenų bazė nelinktų negalutinės būsenos, kai kurios eilutės atnaujintos, o kai kurios ne. Dėl šios priežasties Access palaiko parinktį Susijusius laukus naujinti pakopomis . Jei pirminį raktą naujinsite įgalinę nuorodų vientisumą ir pasirinkę parinktį Susijusius laukus naujinti pakopomis, Access automatiškai atnaujins visus pirminį raktą nurodančius laukus.

Taip pat gali būti, kad teks panaikinti eilutę ir visus susijusius įrašus, pvz., įrašą Siuntėjas ir visus su tuo siuntėju susijusius įrašus. Todėl Access palaiko parinktį Susijusius įrašus naikinti pakopomis. Jei įgalinę nuorodų vientisumą ir pasirinkę Susijusius įrašus naikinti pakopomis panaikinsite įrašą ryšio siejamoje lentelėje, kurioje yra pirminis raktas, Access automatiškai panaikins pirminį raktą nurodančius įrašus.

Puslapio viršus

Lentelių ryšių peržiūra

Norėdami peržiūrėti lentelių ryšius, skirtuke Duomenų bazės įrankiai spustelėkite Ryšiai. Atidaromas langas Ryšiai, kuriame rodomi visi esami ryšiai. Jei jokie lentelės ryšiai nebuvo apibrėžti ir langą Ryšiai atidarysite pirmą kartą, Access paragins į langą įtraukti lentelę arba užklausą.

Lango Ryšiai atidarymas

  1. Spustelėkite Failas, atidaryti, tada pažymėkite ir atidarykite duomenų bazę.

  2. Skirtuko Duomenų bazės įrankiai grupėje Ryšiai spustelėkite Ryšiai.

  3. Skirtuko Ryšių dizainas grupėje Ryšiai spustelėkite Visi ryšiai.Rodomi visi apibrėžti duomenų bazės ryšiai. Nepamirškite, kad paslėptos lentelės (lentelės, kurių dialogo lange Ypatybės pažymėtas žymės langelis Paslėptas) ir jų ryšiai nerodomi, jei dialogo lange Naršymo parinktys nepažymėtas žymės langelis Rodyti paslėptus objektus.

Lentelių ryšį nurodo ryšio linija, nubrėžta tarp lentelių lange Ryšiai. Jei ryšys nuorodų vientisumo neįgalina, jis rodomas kaip plona linija tarp bendrųjų ryšio siejamų laukų. Jei norėdami pažymėti ryšį spustelėsite jį nurodančią liniją, linija pastorės, nurodydama, kad ji pažymėta. Jei įgalinsite šio ryšio nuorodų vientisumą, abu linijos galai pastorės. Be to, viename ryšio linijos gale virš storosios jos dalies bus rodomas skaičius 1, o kitame ryšio linijos gale virš storosios jos dalies bus rodomas begalybės simbolis ().

Suaktyvintame lange Ryšiai galite rinktis iš toliau nurodytų juostelėje esančių komandų.

Skirtuko Ryšių dizainas grupėje Įrankiai :

  • Ryšių redagavimas atidaro dialogo langą Ryšių redagavimas. Pažymėję ryšio liniją galite spustelėti Ryšių redagavimas, kad galėtumėte pakeisti lentelių ryšius. Taip pat galite dukart spustelėti ryšio liniją.

  • Valyti maketą pašalina visas lenteles ir ryšius, kad jie nebūtų rodomi lange Ryšiai. Įsidėmėkite, kad ši komanda tik paslepia lenteles ir ryšius, bet jų nepanaikina.

  • Ryšių ataskaita sukuria ataskaitą, kurioje rodomos duomenų bazės lentelės ir ryšiai. Ataskaitoje rodomos tik tos lentelės ir ryšiai, kurie nėra paslėpti lange Ryšiai.

Skirtuko Ryšių dizainas grupėje Ryšiai :

  • Įtraukti lentelių    Leidžia pasirinkti lenteles, kurios bus rodomos lange Ryšiai.

  • Slėpti lentelę paslepia pažymėtą lentelę lange Ryšiai.

  • Tiesioginiai ryšiai lange Ryšiai rodo visus pažymėtos lentelės ryšius ir su ja susijusias lenteles, jei ši informacija dar nėra rodoma.

  • Visi ryšiai lange Ryšiai rodo visus duomenų bazės ryšius ir susijusias lenteles. Nepamirškite, kad paslėptos lentelės (lentelės, kurių dialogo lange Ypatybės pažymėtas žymės langelis Paslėpta) ir jų ryšiai nerodomi, jei dialogo lange Naršymo parinktys nepažymėta Rodyti paslėptus objektus.

  • Uždaryti uždaro langą Ryšiai. Jei atliksite kokių nors lango Ryšiai maketo keitimų, būsite klausiami, ar norite juos įrašyti.

Puslapio viršus

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.