Video: Začíname pracovať so vzťahmi tabuliek
Applies To
Access pre Microsoft 365 Access 2021 Access 2019 Access 2016Vyskúšajte si to!
Sila relačnej databázy spočíva v kombinovaní údajov medzi tabuľkami. Najskôr je potrebné vytvoriť vzťahy medzi tabuľkami. Potom v Accesse pracujte a skombinujte údaje v dotazoch, formulároch a zostavách.
Ak chcete zobraziť všetky existujúce vzťahy definované pre databázu, otvorte šablónu Accessu, prejdite na kartu Databázové nástroje a vyberte položku Vzťahy.
: Ak otvoríte prázdnu databázu alebo ste definovaní žiadnych vzťahov tabuliek, Access zobrazí výzvu na pridanie tabuľky alebo dotazu. Na pridanie vzťahu potrebujete aspoň dve tabuľky. V ideálnom prípade najprv zostavte všetky tabuľky. Ďalšie informácie nájdete v téme Vytvorenie vzťahov pomocou Sprievodcu vyhľadávaním a Vytvorenie vzťahov s tablou Vzťahy.
Informácie o zobrazení Vzťahy
Čiary v zobrazení Vzťahy označujú prepojenia medzi tabuľkami. Na nasledujúcom obrázku je tabuľka vľavo nadradenou tabuľkou. Tabuľka na pravej strane je podriadená tabuľka. Čiara medzi nimi spája polia (v tomto prípade ID objednávky a ID produktu), ktoré sa používajú na zhodu s údajmi.
Čiary a symboly vám ukážu, ako tabuľky súvisia:
-
Hrubá spojaca čiara znamená, že vynútene referenčnú integritu údajov. to je dobré, to je dobre. Údaje v nej sú synchronizované.
-
Na našom obrázku číslo 1 znamená, že v tejto tabuľke môže existuje iba jeden zodpovedajúci záznam. V tabuľke Objednávky zobrazenej na tomto obrázku zodpovedá každá objednávka len jeden záznam.
-
Symbol ∞ označuje, že veľa záznamov môže obsahovať rovnaké ID. V tabuľke Podrobnosti objednávok zobrazenej na tomto mieste sa objednávka (uvedená ako ID objednávky) môže zobraziť viac než raz, pretože rovnaká objednávka môže zahŕňať viacero produktov.
Typy vzťahov medzi tabuľkami
Medzi tabuľkami existujú tri typy vzťahov:
-
One-to-one. Keď sa každá položka v každej tabuľke zobrazí len raz. Každý zamestnanec môže napríklad používať len jedno firemné auto. Ďalšie informácie nájdete v téme Vytvorenie vzťahov "one-to-one".
-
One-to-many. Ak jedna položka v jednej tabuľke môže mať vzťah k viacerým položkám v inej tabuľke. Každá objednávka môže napríklad obsahovať viacero produktov.
-
many-to-many. Ak jedna alebo viacero položiek v jednej tabuľke môže mať vzťah k jednej alebo viacerých položkám v inej tabuľke. Každá objednávka môže mať napríklad viacero produktov a každý produkt sa môže objaviť v mnohých objednávkach. Ďalšie informácie nájdete v téme Vytvorenie vzťahov "many-to-many".
Vzťahy "one-to-many"
Jedným z najbežnejších vzťahov medzi tabuľkami v dobre navrhnutých databázach je vzťah "one-to-many".
Vzťahy medzi tabuľkami sa zvyčajne spoliehajú na hlavný kľúč v jednej z tabuliek. Odvolanie sa, že primárny kľúč je jedinečný identifikátor (často numerický) pre každý záznam. Na zobrazenie vzťahu medzi informáciami v dvoch rôznych tabuľkách zvyčajne vytvárate vzťah pomocou primárneho kľúča z jednej z tabuliek.
Vo vzťahu zobrazenom na tomto príklade má napríklad každá osoba v tabuľke Kontakty identifikáciu, ktorá je hlavným kľúčom (označený symbolom kľúča vedľa neho). Toto ID sa zobrazí aj v poli Vlastník v tabuľke Aktíva. Ak chcete odoslať e-mail osobe priradenej k položke, získajte hodnotu z poľa E-mailová adresa. Ak to chcete urobiť, vyhľadajte hodnotu v poli Vlastník tabuľky Aktíva a potom toto ID vyhľadajte v tabuľke Kontakty. Číslo 1 na konci spoj používanej čiary a symbol ∞ na druhom konci označujú, že ide o vzťah "one-to-many", takže jeden kontakt môže byť priradený k mnohým aktívam.
Úprava vzťahu
Ak upravujete existujúcu databázu alebo ste vytvorili databázu zo šablóny, môžete upraviť existujúce vzťahy tak, aby vyhovovali vašim potrebám.
: Ak sa tabuľky, s ktoré chcete pracovať, používajú, musíte ich najprv zavrieť spolu s otvorenými objektmi, ktoré ich používajú.
-
Vyberte položku Databázové nástroje > Vzťahy.
-
Vyberte čiaru, ktorá spája dve súvisiace tabuľky.
: Ak sa vám nepáči želaný vzťah, na karte Návrh v skupine Vzťahy vyberte položku Všetky vzťahy.
-
Na karte Návrh vyberte položku Upraviť vzťahy.
Tabuľka alebo dotaz je nadradená tabuľka na ľavej strane (v tomto príklade tabuľka Zákazníci).
Súvisiaca tabuľka alebo dotaz je podriadená tabuľka (v tomto príklade tabuľka Objednávky).
Aj keď sa tabuľky v zobrazení Vzťahy nezobrazujú v tomto poradí, ich umiestnenie v dialógovom okne označuje smer čiary, v ktorom sa spájajú, a vzťah. Je to dôležité napríklad vtedy, keď ide o vzťah "one-to-many", pretože označuje, že tabuľka na ľavej strane je ten (nadradená tabuľka) a tabuľka na pravej strane je many (podriadená tabuľka).
-
Ak chcete zmeniť polia, ktoré spájajú tabuľky, vyberte iné pole pod každou zobrazenou tabuľkou. V tomto príklade sa pole identifikácie v tabuľke Zákazníci pripojí k poľu Identifikácia zákazníka v tabuľke Objednávky.
-
Zmeňte spôsob, akým Access synchronizuje údaje medzi tabuľkami.
Zabezpečenie referenčnej integrity
Ak chcete zabrániť vzniku neplatných údajov a zachovať synchronizáciu odkazov vo vzťahoch tabuliek, vyberte túto možnosť.
Predpokladajme napríklad, že máte vzťah "one-to-one" medzi tabuľkami Zamestnanci a Výhody zamestnancov. Ak zamestnanec odíde zo spoločnosti a odstránite ho z tabuľky Zamestnanci, odstráni sa aj súvisiaci záznam zamestnanca v tabuľke Výhody pre zamestnancov.
Niekedy vynútenie referenčnej integrity nemá zmysel. Predpokladajme napríklad, že máte vzťah "one-to-many" medzi špedermi a objednávkami. Odstránite špedera a tento špeder sa mapuje k objednávkam v tabuľke Objednávky. Tieto objednávky sa stanú pármi, čo znamená, že stále obsahujú id špedera, ale identifikácia už nie je platná, pretože záznam, na ktorý odkazuje, už neexistuje.
Kaskádovou aktualizáciou súvisiacich polí
Vyberte túto možnosť, ak chcete zabezpečiť, aby sa údaje v súvisiacich poliach aktualizovali vo všetkých súvisiacich tabuľkách.
Predpokladajme napríklad, že chcete jednoducho zmeniť identifikáciu špedičera. Nastavením tejto možnosti sa zabezpečí, že sa aktualizuje identifikácia špedičera – nielen v tabuľke Špeder, ale aj v iných tabuľkách, ktoré sú k nej pripojené a obsahujú aj toto ID špedičera, ako je napríklad tabuľka Objednávky.
Kaskádové odstránenie súvisiacich záznamov
Rozhodnutie o výbere závisí od toho, či je potrebné uchovať záznamy v niektorých tabuľkách napriek tomu, že sa môžu odstrániť z iných tabuliek.
Predpokladajme napríklad, že odstránite špederku. Ak je vybratá táto možnosť, Access odstráni všetky záznamy vo všetkých tabuľkách, ktoré odkazovať na toto ID špederátora vrátane všetkých objednávok (v tabuľke Objednávky), ktoré dodal tento špederník. Túto možnosť vyberiete len vtedy, ak ste si istí, že chcete históriu objednávok odstrániť.
-
Ak chcete zmeniť vzťah medzi tabuľkami z vnútorného spojenia na vonkajšie spojenie, vyberte tlačidlo Typ spojenia. Ďalšie informácie nájdete v téme Vytváranie dotazov pomocou vonkajších spojenia.
Odstránenie vzťahu tabuliek
: Ak sa tabuľky, s ktoré chcete pracovať, používajú, musíte ich najprv zavrieť spolu s otvorenými objektmi, ktoré ich používajú.
Odstránenie vzťahu tabuliek:
-
Vyberte položku Databázové nástroje > Vzťahy.
-
Vyberte čiaru, ktorá spája dve súvisiace tabuľky.
: Ak sa vám nepáči želaný vzťah, na karte Návrh v skupine Vzťahy vyberte položku Všetky vzťahy.
-
Vyberte kláves Delete. Ak sa zobrazí výzva na potvrdenie odstránenia vzťahu, vyberte položku Áno.
: Keď odstránite vzťah, odstránite tiež podporu referenčnej integrity pre tento vzťah (ak sa v vzťahu nachádza). V dôsledku toho už Access nebude brániť zmenám, ktoré majú za následok osamotené záznamy bez párov v rámci vzťahu "one-to-many".