Video: Začínáme s relacemi mezi tabulkami
Applies To
Access pro Microsoft 365 Access 2021 Access 2019 Access 2016Vyzkoušejte to!
Výkon relační databáze spočívá v kombinování dat mezi tabulkami. Abyste to měli udělat, musíte nejdřív vytvořit relace mezi tabulkami. Pak dejte Accessu do práce a zkombinujte data v dotazech, formulářích a sestavách.
Pokud chcete zobrazit všechny existující relace definované pro databázi, otevřete šablonu Accessu, přejděte na kartu Databázové nástroje a vyberte Relace.
Poznámka: Pokud otevřete prázdnou databázi nebo jste nedefinovali žádné relace mezi tabulkami, Access vás vyzve k přidání tabulky nebo dotazu. Abyste mohli přidat relaci, potřebujete aspoň dvě tabulky. V ideálním případě nejdřív sestavíte všechny tabulky. Další informace najdete v tématu Vytvoření relací pomocí Průvodce vyhledáváním a Vytvoření relací pomocí podokna Relace.
Princip zobrazení Relace
Čáry v zobrazení Relace označují propojení mezi tabulkami. Na následujícím obrázku je tabulka vlevo nadřazená tabulka. Tabulka vpravo je podřízené tabulky. Čára mezi nimi spojuje pole (v tomto případě ID objednávky a ID výrobku), která slouží k spárování dat.
Čáry a symboly ukazují, jak souvisí vaše tabulky:
-
Silná spojovací čára znamená, že prosazujete integritu referenčních dat. To je dobré. Udržuje vaše data synchronizovaná.
-
Na našem obrázku číslo 1 označuje, že v tabulce může být jenom jeden odpovídající záznam. V tabulce Objednávky, která je tady zobrazená, odpovídá každé objednávce jenom jeden záznam.
-
Symbol ∞ označuje, že mnoho záznamů může obsahovat stejné ID. V tabulce Podrobnosti objednávky zobrazené tady se může objednávka (označená ID objednávky) zobrazit víckrát, protože stejná objednávka může zahrnovat více produktů.
Typy relací mezi tabulkami
Mezi tabulkami existují tři typy relací:
-
1:1. Když se každá položka v každé tabulce zobrazí jenom jednou. Každý zaměstnanec může například používat jenom jedno firemní auto. Další informace najdete v tématu Vytvoření relací 1:1.
-
1:M. Pokud jedna položka v jedné tabulce může mít relaci s více položkami v jiné tabulce. Každá nákupní objednávka může například zahrnovat více produktů.
-
M:M. Pokud jedna nebo více položek v jedné tabulce může mít relaci s jednou nebo více položkami v jiné tabulce. Každá objednávka může mít například více produktů a každý produkt se může zobrazit na mnoha objednávkách. Další informace najdete v tématu Vytvoření relací M:N.
Relace 1:N
Jednou z nejběžnějších relací mezi tabulkami v dobře navržených databázích je relace 1:N.
Relace mezi tabulkami obvykle spoléhají na primární klíč v jedné z tabulek. Připomeňte si, že primární klíč je jedinečný identifikátor (často číselný) pro každý záznam. Pokud chcete zobrazit, že informace ve dvou různých tabulkách souvisí, obvykle vytvoříte relaci pomocí primárního klíče z jedné z tabulek.
V relaci zobrazené tady má například každý člověk v tabulce Kontakty ID, což je primární klíč (označený symbolem klíče vedle něj). Toto ID se také zobrazí v poli Vlastník v tabulce Prostředky. Pokud chcete osobě přidružené k majetku poslat e-mail, napište hodnotu z pole E-mailová adresa. Pokud to chcete udělat, vyhledejte hodnotu v poli Vlastník v tabulce Majetek a vyhledejte toto ID v tabulce Kontakty. Číslo 1 na jednom konci spojovací čáry a symbol ∞ na druhém konci označují, že jde o relaci 1:N, takže jeden kontakt může být přidružený k mnoha prostředkům.
Úprava relace
Pokud upravujete existující databázi nebo jste databázi vytvořili ze šablony, můžete stávající relace upravit tak, aby splňovaly vaše potřeby.
Poznámka: Pokud se tabulky, se kterou chcete pracovat, používají, musíte je nejdřív zavřít spolu s otevřenými objekty, které je používají.
-
Vyberte Databázové nástroje > relace.
-
Vyberte čáru spojující dvě související tabulky.
Tip: Pokud požadovanou relaci nevidíte, vyberte na kartě Návrh ve skupině Relace možnost Všechny relace.
-
Na kartě Návrh vyberte Upravit relace.
Tabulka nebo dotaz je nadřazená tabulka vlevo (v tomto příkladu Zákazníci).
Související tabulka nebo dotaz je podřízené tabulky (v tomto příkladu Objednávky).
I když se tabulky v zobrazení Relace nezobrazují v tomto pořadí, jejich umístění v dialogovém okně označuje směr čáry, která je spojuje, a relace. To je důležité, pokud je to třeba relace 1:N, protože označuje, že tabulka vlevo je tabulka (nadřazená tabulka) a tabulka vpravo je N (podřízené tabulky).
-
Pokud chcete změnit pole, která spojují tabulky, vyberte pod každou zobrazenou tabulkou jiné pole. V tomto příkladu se pole ID v tabulce Zákazníci připojuje k poli ID zákazníka v tabulce Objednávky.
-
Změňte způsob, jakým Access synchronizuje data mezi tabulkami.
Vynucení referenční integrity
Pokud chcete zabránit neplatným datům a udržovat odkazy synchronizované mezi relacemi mezi tabulkami, vyberte tuto možnost.
Předpokládejme například, že máte relaci 1:1 mezi tabulkami Zaměstnanci a Zaměstnanecké výhody. Pokud zaměstnanec opustí společnost a vy je odeberete z tabulky Zaměstnanci, odebere se taky záznam souvisejícího zaměstnance v tabulce Zaměstnanecké výhody.
Někdy vynucování referenční integrity nedává smysl. Předpokládejme například, že máte vztah 1:N mezi odesílateli a objednávkami. Odstraníte odesílatele a tento odesílatel se mapuje na objednávky v tabulce Objednávky. Tyto objednávky se stanou osamocené, což znamená, že stále obsahují ID odesílatele, ale ID už není platné, protože záznam, na který odkazuje, už neexistuje.
Kaskádová aktualizace souvisejících polí
Pokud chcete zajistit, aby se data v souvisejících polích aktualizovala ve všech souvisejících tabulkách, vyberte toto.
Předpokládejme například, že chcete jednoduše změnit ID odesílatele. Nastavením této možnosti zajistíte aktualizaci ID odesílatele , a to nejen v tabulce Odesílatel, ale také v dalších tabulkách, které jsou k ní připojené, které obsahují také TOTO ID odesílatele, například tabulku Objednávky.
Kaskádové odstranění souvisejících záznamů
Rozhodnutí o výběru závisí na tom, jestli potřebujete záznamy v některých tabulkách zachovat, i když je možné je odstranit z jiných tabulek.
Předpokládejme například, že odstraníte odesílatele. Pokud je tato možnost vybraná, Access odstraní všechny záznamy ve všech tabulkách, které odkazují na TOTO ID odesílatele, včetně všech objednávek (v tabulce Objednávky), které odeslal tento odesílatel. Tuto možnost vyberete jenom v případě, že jste si jistí, že chcete historii objednávek odstranit.
-
Pokud chcete změnit relaci mezi tabulkami z vnitřního spojení na vnější spojení, vyberte tlačítko Typ spojení. Další informace najdete v tématu Vytvoření dotazů s vnějšími spoji.
Odstranění relace mezi tabulkami
Poznámka: Pokud se tabulky, se kterou chcete pracovat, používají, musíte je nejdřív zavřít spolu s otevřenými objekty, které je používají.
Odebrání relace mezi tabulkami:
-
Vyberte Databázové nástroje > relace.
-
Vyberte čáru spojující obě související tabulky.
Tip: Pokud požadovanou relaci nevidíte, vyberte na kartě Návrh ve skupině Relace možnost Všechny relace.
-
Vyberte klávesu Delete.Select the Delete key. Pokud se zobrazí výzva k ověření, že chcete relaci odstranit, vyberte Ano.
Poznámka: Když odeberete relaci, odeberete také podporu referenční integrity pro tuto relaci, pokud ji máte. V důsledku toho už Access nebude bránit změnám, které mají za následek osiřelé záznamy na straně N relace 1:N.