Příručka k relacím mezi tabulkami

Důležité informace:  Tento článek je strojově přeložený – přečtěte si toto upozornění. Anglickou verzi tohoto článku pro referenci najdete tady.

Jedním z cílů kvalitního návrhu databáze je odstranit redundanci dat (duplicitní data). Dosáhnete toho tak, že data rozdělíte do mnoha tabulek s různými předměty, aby byl každý fakt reprezentován pouze jednou. Potom musíte aplikaci Microsoft Office Access 2007 poskytnout prostředek, jak rozdělené informace opět spojit — a to umístěním společných polí do souvisejících tabulek. Nicméně abyste tento krok udělali správně, musíte pochopit vztahy mezi tabulkami a tyto vztahy potom určit v databázi aplikace Office Access 2007.

V tomto článku:

Úvod

Typy relací mezi tabulkami

Proč vytvářet relace mezi tabulkami?

Význam referenční integrity

Zobrazení relací mezi tabulkami

Vytvoření relace mezi tabulkami

Odstranění relace mezi tabulkami

Změna relace mezi tabulkami

Vynucení referenční integrity

Úvod

Po vytvoření tabulky pro jednotlivé předměty databáze je třeba aplikaci Office Access 2007 poskytnout prostředky k opětovnému seskupení těchto informací. To lze provést vložením společných polí do příbuzných tabulek a definováním vzájemných relací tabulek. Pak můžete vytvářet dotazy, formuláře a sestavy zobrazující informace z několika tabulek současně. Například znázorněný formulář obsahuje informace získané z několika tabulek:

Formulář Objednávky zobrazující související informace z pěti tabulek najednou

1. Informace v tomto formuláři pocházejí z tabulky Zákazníci...

2. ...z tabulky Objednávky...

3. ...z tabulky Produkty...

4. ...a z tabulky Podrobnosti objednávek.

Jméno zákazníka v poli Pro fakturaci je načteno z tabulky Zákazníci, kód a datum objednávky z tabulky Objednávky, název výrobku z tabulky Výrobky a jednotková cena a množství z tabulky Rozpis objednávek. Tyto tabulky jsou různými způsoby vzájemně propojeny, aby z nich bylo možné načítat informace do formuláře.

V předchozím příkladu musí být pole v jednotlivých tabulkách koordinována, aby zobrazovala informace o téže objednávce. Této koordinace se dosahuje pomocí relací mezi tabulkami. Relace mezi tabulkami pracují na základě porovnání dat v klíčových polích (často v polích se stejným názvem v obou tabulkách). Ve většině případů se jedná o pole primárního klíče jedné tabulky, které poskytuje jedinečný identifikátor každého záznamu, a pole cizího klíče druhé tabulky. Tak mohou být například vytvořením relace mezi poli ČísloZaměstnance v tabulkách Zaměstnanci a Objednávky spojeni zaměstnanci s objednávkami, za které odpovídají.

Číslo zaměstnance použité jako primární klíč v tabulce Zaměstnanci a jako cizí klíč v tabulce Objednávky

1. Pole ČísloZaměstnance je obsaženo v obou tabulkách – jako primární klíč...

2. ...a jako cizí klíč.

Začátek stránky

Typy relací mezi tabulkami

Existují tři typy relací mezi tabulkami.

  • Relace typu 1:N

    Vezměme si jako příklad databázi pro sledování objednávek, jež obsahuje tabulky Zákazníci a Objednávky. Zákazník může vytvořit libovolný počet objednávek. To znamená, že pro každého zákazníka uvedeného v tabulce Zákazníci, může existovat celá řada objednávek zaznamenaných v tabulce Objednávky. Typ relace mezi tabulkami Zákazníci a Objednávky je proto 1:N.

    Chcete-li znázornit relaci 1:N v návrhu databáze, vezměte primární klíč na straně „1“ vztahu a přidejte jej jako další pole do tabulky na straně „N“ relace. V tomto případě například přidáte nové pole — pole ID z tabulky Zákazníci — do tabulky Objednávky a nazvete je ID zákazníka. Aplikace Access může potom pomocí čísla ID zákazníka v tabulce Objednávky vyhledat u každé objednávky správného zákazníka.

  • Relace typu N:N

    Vezměme si jako příklad relaci mezi tabulkami Produkty a Objednávky. Jedna objednávka může obsahovat více produktů. Na druhou stranu se jeden produkt může objevit v mnoha objednávkách. Z tohoto důvodu může pro každý záznam v tabulce Objednávky existovat mnoho záznamů v tabulce Produkty. Navíc pro každý záznam v tabulce Produkty může existovat celá řada záznamů v tabulce Objednávky. Tento typ relace se nazývá N:N, protože pro každý produkt může existovat mnoho objednávek a pro každou objednávku mnoho produktů. Všimněte si, že ke zjištění existující relace typu N:N mezi tabulkami je důležité vzít v úvahu obě strany relace.

    Chcete-li vyjádřit relaci typu N:N, musíte vytvořit třetí tabulku, která se často nazývá spojená tabulka, jež rozdělí relaci typu N:N na dvě relace typu 1:N. Primární klíč z těchto dvou tabulek vložíte do třetí tabulky. Výsledkem je, že třetí tabulka zaznamená každý výskyt nebo instanci relace. V relaci N:N jsou například tabulky Objednávky a Produkty a tato relace je definována vytvořením dvou relací 1:N s tabulkou Rozpis objednávek. V každé objednávce může být uvedeno více produktů a každý produkt může být uveden ve více objednávkách.

  • Relace typu 1:1

    V relaci 1:1 odpovídá jednomu záznamu v první tabulce maximálně jeden záznam v druhé tabulce a naopak jednomu záznamu v druhé tabulce maximálně jeden záznam v první tabulce. Tento typ relace není obvyklý, protože většina takto souvisejících informací by byla obvykle uložena ve stejné tabulce. Relaci 1:1 můžete použít k rozdělení rozsáhlé tabulky, k oddělení části tabulky z důvodů zabezpečení nebo k uložení informací, které mají vztah pouze k části hlavní tabulky. Při určování relace musí obě tabulky sdílet společné pole.

Začátek stránky

Proč vytvářet relace mezi tabulkami?

Relace mezi tabulkami můžete vytvořit explicitně pomocí okna relace, nebo když přetáhnete nějaké pole z podokna Seznam polí. Office Access 2007 používá relací mezi tabulkami na téma Jak se spojit tabulky, když potřebujete je použít v databázového objektu. Existuje několik důvodů, proč byste měli před vytvořením jiných databázových objektů, jako jsou formuláře, dotazy, makra a sestavy vytvořit relace mezi tabulkami.

  • Relace mezi tabulkami informují návrhy dotazů.

    Chcete-li pracovat se záznamy z více než jedné tabulky, často musíte vytvořit dotaz, který tabulky spojí. Dotaz funguje tak, že porovnává hodnoty v poli primárního klíče první tabulky s polem cizího klíče ve druhé tabulce. Například pokud chcete vrátit řádky, jež uvádějí všechny objednávky každého zákazníka, vytvoříte dotaz, který spojí tabulku Zákazníci s tabulkou Objednávky na základě pole ID zákazníka. V okně Relace můžete ručně určit pole, jež mají být spojena. Pokud však už jsou definovány relace mezi tabulkami, aplikace Office Access 2007 doplní výchozí spojení na základě existující relace mezi tabulkami. Navíc pokud použijete jeden z průvodců dotazem, aplikace Access vám na základě informací získaných z relací mezi tabulkami, které jste už nadefinovali, nabídne informované možnosti volby a předem vyplní nastavení vlastností příslušnými výchozími hodnotami.

  • Relace mezi tabulkami informují návrhy formulářů a sestav.

    Aplikace Office Access 2007 vám při navrhování formuláře nebo sestavy na základě informací získaných z relací mezi tabulkami, které jste už nadefinovali, nabídne informované možnosti volby a předem vyplní nastavení vlastností příslušnými výchozími hodnotami.

  • Relace mezi tabulkami jsou základnou, na které můžete vynucovat referenční integritu a zabránit tak vytváření osiřelých záznamů v databázi. Osiřelým záznamem se rozumí záznam s referencí na neexistující záznam — například záznam objednávky, který odkazuje na neexistující záznam zákazníka.

    Při navrhování databáze rozdělíte informace do tabulek, z nichž každá má primární klíč. Potom do souvisejících tabulek přidáte cizí klíče, které na primární klíče odkazují. Tyto páry cizích a primárních klíčů jsou základem relací mezi tabulkami a dotazů napříč několika tabulkami. Proto je důležité, aby byly tyto reference cizího a primárního klíče udržovány synchronní. Referenční integrita pomáhá zajistit, aby byly reference synchronní, a závisí na relacích mezi tabulkami.

Začátek stránky

Význam referenční integrity

Při navrhování databáze minimalizujete redundanci dat rozdělením informací do mnoha tabulek s různými předměty. Potom musíte aplikaci Office Access 2007 poskytnout prostředek, jak rozdělená data opět spojit, a to umístěním společných polí do souvisejících tabulek. Například relaci typu 1:N vyjádříte tak, že primární klíč z tabulky „1“ přidáte jako další pole do tabulky „N“. Aplikace Access data opět spojí tak, že vezme hodnotu z tabulky „N“ a vyhledá odpovídající hodnotu v tabulce „1“. Tímto způsobem hodnoty v tabulce „N“ odkazují na odpovídající hodnoty v tabulce „1“.

Řekněme, že mezi tabulkami Přepravci a Objednávky máte relaci typu 1:N a chcete odstranit jednoho přepravce. Pokud pro tohoto přepravce existují objednávky v tabulce Objednávky, z těchto objednávek se po odstranění záznamu přepravce stanou osiřelé záznamy. Budou nadále obsahovat kód přepravce, ale ten nebude platný, protože záznam, na který odkazuje, už nebude existovat.

Účelem referenční integrity je zabránit vzniku osiřelých záznamů a udržovat reference synchronní, aby k této hypotetické situaci nikdy nedošlo.

Vynucení referenční integrity povolením pro relace mezi tabulkami (viz vynucení referenční integrity podrobné pokyny). Po vynucení aplikace Access odmítne jakoukoli operaci, která by porušovat referenční integritu pro tuto relaci tabulky. To znamená, že aplikace Access odmítne aktualizace, které mění cíl odkazu a odstranění umožňující odebrání cíl odkazu. Je však možné, že dokonale platné potřeba změnit primární klíč pro přepravce, který má objednávek v tabulce objednávky. Pro tento případ skutečně důležité je určený pro přístup k automatické aktualizaci všechny ovlivněné řádky v rámci jedné operaci. Tak, Access zaručuje, že aktualizace zcela dokončena tak, aby databázi není doleva ve stavu nekonzistentní s některými řádky aktualizovanými a některé není. Z tohoto důvodu Access podporuje možnost kaskádová aktualizace souvisejících polí. Po vynucení referenční integrity a vyberte možnost kaskádová aktualizace souvisejících polí a pak aktualizujte primární klíč, Access automaticky aktualizovat všechna pole, které odkazují na primární klíč.

Také je možné, že budete opodstatněně potřebovat odstranit řádek a všechny související záznamy – například u záznamu Přepravce a všech souvisejících objednávek tohoto přepravce. Z tohoto důvodu aplikace Access podporuje možnost Odstranění souvisejících polí v kaskádě. Pokud aktivujete vynucování referenční integrity, zaškrtnete políčko Odstranění souvisejících polí v kaskádě a odstraníte záznam s primárním klíčem, aplikace Access automaticky odstraní všechny záznamy, které na primární klíč odkazují.

Začátek stránky

Zobrazení relací mezi tabulkami

Chcete-li zobrazit relace mezi tabulkami, klepněte na tlačítko Relace na kartě Databázové nástroje. Otevře se okno Relace se zobrazením všech existujících relací. Pokud zatím nebyly definovány žádné relace mezi tabulkami a otevíráte okno Relace poprvé, aplikace Access vás vyzve k přidání tabulky nebo dotazu do tohoto okna.

Otevření okna Relace.

  1. Klepněte na Tlačítko Microsoft Office Obrázek tlačítka Office a potom na Otevřít.

  2. V dialogovém okně Otevřít vyberte a otevřete databázi.

  3. Na kartě Databázové nástroje klikněte ve skupině Zobrazit či skrýt na Relace.

  4. Pokud databáze obsahuje relace, zobrazí se okno Relace. Pokud databáze neobsahuje žádné relace a otevíráte okno Relace poprvé, otevře se dialogové okno Zobrazit tabulku. Zavřete dialogové okno klepnutím na tlačítko Zavřít.

  5. Na kartě Návrh klepněte ve skupině Vztahy na tlačítko Všechny relace.

    Zobrazí se všechny definované relace v databázi. Skryté tabulky (tabulky, u nichž je zaškrtnuto políčko Skryté v dialogovém okně Vlastnosti tabulky) a jejich relace se nezobrazí, pokud nebude zaškrtnuto políčko Zobrazit skryté objekty v dialogovém okně Možnosti navigace.

    Další informace o možnosti Zobrazit skryté objekty naleznete v článku Průvodce do navigačního podokna.

Okno Relace

1. Primární klíč

2. Tato čára reprezentuje relaci

3. Cizí klíč

Relaci mezi tabulkami vyjadřuje čára relace mezi tabulkami v okně Relace. Relace, ve které není vynucována referenční integrita, je zobrazena jako tenká čára mezi obvyklými poli podporujícími relaci. Vyberete-li relaci klepnutím na její čáru, zvětší se tloušťka čáry. Pokud pro tuto relaci vynucujete referenční integritu, bude čára na obou koncích silnější. Navíc se nad silnou částí čáry na jedné straně relace zobrazí číslo 1 a nad silnou částí čáry na druhé straně se zobrazí symbol nekonečna ().

V aktivním okně Relace můžete vybrat z následujících příkazů na pásu karet, který je součástí rozhraní Fluent systému Microsoft Office:

Na kartě Návrh ve skupině Nástroje:

  • Upravit relace:    Otevře dialogové okno Upravit relace. Po výběru čáry relace můžete klepnutím na tlačítko Upravit relace změnit relaci tabulky. Na čáru relace můžete také poklepat.

  • Vymazat rozložení:    Odebere všechny tabulky a relace ze zobrazení v okně Relace. Tento příkaz tabulky a relace pouze skryje — neodstraní je.

  • Sestava relací:    Vytvoří sestavu zobrazující tabulky a relace v databázi. V sestavě budou zobrazeny pouze ty tabulky a relace, které nejsou v okně Relace skryty.

Na kartě Návrh ve skupině Relace:

  • Zobrazit tabulku:    Otevře dialogové okno Zobrazit tabulku, ve kterém můžete vybrat tabulky a dotazy pro zobrazení v okně Relace.

  • Skrýt tabulku:    Skryje vybranou tabulku v okně Relace.

  • Přímé relace:    Zobrazí všechny relace a související tabulky pro vybranou tabulku v okně Relace, pokud už nejsou zobrazeny.

  • Všechny relace    Zobrazí všechny relace a související tabulky v databázi v okně relace. Poznámka: skrytými tabulkami (tabulky, pro které skryté zaškrtávací políčko v dialogových oknech vlastností v tabulce je vybraná) a jejich vztahů se nezobrazí, pokud není vybrána zobrazit skryté tabulky v dialogovém okně Možnosti navigace.

    Další informace o možnosti Zobrazit skryté tabulky naleznete v článku Průvodce do navigačního podokna.

  • Zavřít:    Zavře okno Sestavy. Pokud jste provedli jakékoli změny v rozložení okna Relace, budete dotázáni, zda chcete tyto změny uložit.

Začátek stránky

Vytvoření relace mezi tabulkami

Relaci mezi tabulkami můžete vytvořit v okně Relace nebo přetažením pole či datového listu z podokna Seznam polí. Při vytvoření relace mezi tabulkami nemusí mít společná pole stejné názvy, i když se často stává, že je mají. Tato pole však musí mít stejný datový typ. Pokud je pole primárního klíče polem Automatické číslo, může být pole cizího klíče také číselným polem v případě, že je vlastnost .Velikostpole v obou polích stejná. Můžete například porovnat pole Automatické číslo a Číslo v případě, že je vlastnost .Velikostpole obou polí Dlouhé celé číslo. Když jsou obě společná pole číselnými poli, musí mít stejné nastavení vlastnosti .Velikost pole.

Vytvoření relace tabulky pomocí okna Relace

  1. Klepněte na Tlačítko Microsoft Office Obrázek tlačítka Office a potom na Otevřít.

  2. V dialogovém okně Otevřít vyberte a otevřete databázi.

  3. Na kartě Databázové nástroje klikněte ve skupině Zobrazit či skrýt na Relace.

  4. Pokud jste dosud nedefinovali žádnou relaci, automaticky se zobrazí dialogové okno Zobrazit tabulku. Jestliže se toto okno nezobrazí, klepněte na kartě Návrh ve skupině Vztahy na tlačítko Zobrazit tabulku.

    Dialogové okno Zobrazit tabulku zobrazuje všechny tabulky a dotazy v databázi. Chcete-li zobrazit pouze tabulky, klepněte na kartu Tabulky. Chcete-li zobrazit pouze dotazy, klepněte na kartu Dotazy. Chcete-li zobrazit tabulky i dotazy, klepněte na kartu Oboje.

  5. Vyberte jednu nebo více tabulek či dotazů a klepněte na tlačítko Přidat. Po přidání tabulek a dotazů do okna Relace klepněte na tlačítko Zavřít.

  6. Přetáhněte pole (zpravidla primární klíč) z jedné tabulky do společného pole (cizí klíč) v druhé tabulce. Chcete-li přetáhnout více polí zároveň, stiskněte a podržte klávesu CTRL a postupně klepněte na všechna požadovaná pole. Poté je přetáhněte.

    Zobrazí se dialogové okno Upravit relace.

  7. Ověřte, zda jsou zobrazenými názvy polí společná pole relace. Pokud není název pole správný, klepněte na něj a ze seznamu vyberte nové pole.

    Pokud chcete vynutit referenční integritu pro tuto relaci, zaškrtněte políčko Zajistit referenční integritu. Další informace o referenční integritu najdete v článku Význam referenční Integrity a oddíly Zajistit referenční integritu .

  8. Klepněte na tlačítko Vytvořit.

    Čára relace je zakreslena mezi dvěma tabulkami. Pokud jste zaškrtli políčko Zajistit referenční integritu, bude čára na obou koncích silnější. Navíc, pokud zaškrtnete pouze políčko Zajistit referenční integritu, zobrazí se nad silnější částí na jedné straně čáry relace hodnota 1 a nad silnější částí na druhé straně znak nekonečna ().

Přetažení pole z tabulky do odpovídajícího pole v jiné tabulce

Poznámky: 

  • Vytvoření relace 1:1:    Obě společná pole (zpravidla pole primárního a cizího klíče) musí mít jedinečný index. To znamená, že by vlastnost Indexováno těchto polí měla být nastavena na hodnotu Ano (bez duplicity). Mají-li obě pole jedinečný index, aplikace Access vytvoří relaci 1:1.

  • Vytvoření relace 1:N:    Pole na jedné straně (zpravidla primární klíč) relace musí mít jedinečný index. To znamená, že by vlastnost Indexováno pro toto pole měla být nastavena na hodnotu Ano (bez duplicity). Pole na straně N by nemělo mít jedinečný index. Může mít index, ale musí umožňovat duplicity. To znamená, že vlastnost Indexováno tohoto pole by měla být nastavena na hodnotu Ne nebo Ano (duplicita povolena). Jakmile má jedno pole jedinečný index a druhé nikoli, aplikace Access vytvoří relaci 1:N.

Vytvoření relace tabulky pomocí podokna Seznam polí

V Office Access 2007 můžete přidat pole do existující tabulky, který je otevřen v zobrazení Datový list přetažením z podokna Seznam polí. Podokno Seznam polí se zobrazenými poli k dispozici v souvisejících tabulkách spolu s poli k dispozici v jiných tabulkách. Při přetažení pole z "jiné" (bez relace) tabulku a pak ukončete Průvodce vyhledáváním, se automaticky vytvoří nový-n relace mezi tabulkami v podokně Seznam polí a tabulky, do kterého můžete přetáhnout pole. Tento vztah vytvořené v aplikaci Access, není vynucení referenční integrity ve výchozím nastavení. Pokud chcete vynutit referenční integritu, musíte upravit relaci. Viz část Změna relace mezi tabulkami Další informace.

Otevření tabulky v zobrazení Datový list

  1. Klepněte na Tlačítko Microsoft Office Obrázek tlačítka Office a potom na Otevřít.

  2. V dialogovém okně Otevřít vyberte a otevřete databázi.

  3. V navigačním podokně klepněte pravým tlačítkem myši na tabulku, do které chcete pole přidat a v níž chcete vytvořit relaci, a pak klepněte v místní nabídce na příkaz Zobrazení datového listu.

Otevření podokna Seznam polí

  • Klepněte na kartě Datový list ve skupině Pole a sloupce na možnost Přidat existující pole.

    Obrázek pásu karet

    Zobrazí se podokno Seznam polí.

Podokno Seznam polí obsahuje seznam všech ostatních tabulek v databázi seskupených do kategorií. Pracujete-li s tabulkou v zobrazení datového listu, zobrazí se v podokně Seznam polí dvě kategorie: Pole dostupná v souvisejících tabulkách a Pole dostupná v jiných tabulkách. První kategorie obsahuje všechny tabulky, které mají relaci s tabulkou, v níž aktuálně pracujete. Druhá kategorie obsahuje všechny tabulky, se kterými nemá otevřená tabulka definovanou relaci.

Klepnete-li v podokně úloh Seznam polí na znaménko plus (+) vedle názvu tabulky, zobrazí se seznam všech polí dostupných v této tabulce. Chcete-li pole připojit k tabulce, přetáhněte požadované pole z podokna úloh Seznam polí do tabulky v zobrazení datového listu.

Přidání pole a vytvoření relace v podokně Seznam polí

  1. Klepněte na kartě Datový list ve skupině Pole a sloupce na možnost Přidat existující pole.

    Obrázek pásu karet

    Zobrazí se podokno Seznam polí.

  2. V kategorii Pole dostupná v jiných tabulkách klepněte na znaménko plus (+) vedle názvu tabulky. Zobrazí se seznam polí.

  3. Přetáhněte požadované pole z podokna Seznam polí do tabulky otevřené v zobrazení datového listu.

  4. Jakmile se objeví čára označující místo pro vložení, uvolněte tlačítko myši, a vložte tak pole na příslušnou pozici.

    Spustí se Průvodce vyhledáváním.

  5. Postupujte podle pokynů Průvodce vyhledáváním.

    Pole se zobrazí v tabulce v zobrazení datového listu.

Při přetažení pole z "jiné" (bez relace) tabulku a pak ukončete Průvodce vyhledáváním, se automaticky vytvoří nový-n relace mezi tabulkami v Seznamu polí a tabulky, do kterého můžete přetáhnout pole. Tento vztah vytvořené v aplikaci Access, není vynucení referenční integrity ve výchozím nastavení. Pokud chcete vynutit referenční integritu, musíte upravit relaci. Viz část Změna relace mezi tabulkami Další informace.

Začátek stránky

Odstranění relace mezi tabulkami

Chcete-li odebrat relaci z tabulky, je třeba odstranit čáru relace v okně Relace. Opatrně umístěte kurzor tak, aby ukazoval na čáru relace, a pak čáru klepnutím vyberte. Čára relace se při výběru zobrazuje silněji. Nechte čáru relace vybranou a stiskněte klávesu DELETE. Při odebrání vztahu odebíráte také podporu referenční integrity daného vztahu, je-li povolena. Aplikace Access v důsledku toho již nebude automaticky bránit vytváření osiřelých záznamů na straně N vztahu.

  1. Klepněte na Tlačítko Microsoft Office Obrázek tlačítka Office a potom na Otevřít.

  2. V dialogovém okně Otevřít vyberte a otevřete databázi.

  3. Na kartě Databázové nástroje klikněte ve skupině Zobrazit či skrýt na Relace.

Otevře se okno Relace.

Pokud jste dosud nedefinovali žádné relace a otevíráte okno Relace poprvé, otevře se dialogové okno Zobrazit tabulku. Pokud se otevře, klepněte na tlačítko Zavřít.

  1. Na kartě Návrh ve skupině Relace klikněte na položku Všechny relace.

Zobrazí se všechny tabulky s relacemi a znázorněnými čarami relace.

  1. Klepněte na čáru relace, kterou chcete odstranit. Čára relace se při výběru zobrazuje silněji.

  2. Stiskněte klávesu DELETE.

    – nebo –

    Klepněte na relaci pravým tlačítkem myši a poté klepněte na příkaz Odstranit.

  3. Aplikace Access může zobrazit zprávu Opravdu chcete trvale odstranit vybraný vztah z databáze?. Pokud se zobrazí tato zpráva s potvrzením, klepněte na tlačítko Ano.

Poznámka: Pokud některou z tabulek použitých v relaci tabulky využívá například jiná osoba nebo proces nebo se používá v otevřeném databázovém objektu (například formuláři), nebudete tuto relaci moci odstranit. Před odebráním relace je třeba nejprve zavřít všechny otevřené objekty, které tyto tabulky využívají.

Začátek stránky

Změna relace mezi tabulkami

Relaci tabulky můžete změnit výběrem tabulky v okně Relace a její následnou úpravou. Opatrně umístěte kurzor tak, aby ukazoval na čáru relace, a pak čáru klepnutím vyberte. Čára relace se při výběru zobrazuje silněji. Poklepejte na vybranou čáru relace nebo klepněte na tlačítko Upravit relace ve skupině Nástroje na kartě Návrh. Zobrazí se dialogové okno Upravit relace.

Proveďte požadované změny v dialogovém okně Upravit relace.

  1. Klepněte na Tlačítko Microsoft Office Obrázek tlačítka Office a potom na Otevřít.

  2. V dialogovém okně Otevřít vyberte a otevřete databázi.

  3. Na kartě Databázové nástroje klikněte ve skupině Zobrazit či skrýt na Relace.

Otevře se okno Relace.

Pokud jste dosud nedefinovali žádné relace a otevíráte okno Relace poprvé, otevře se dialogové okno Zobrazit tabulku. Pokud se otevře, klepněte na tlačítko Zavřít.

  1. Na kartě Návrh ve skupině Relace klikněte na položku Všechny relace.

Zobrazí se všechny tabulky s relacemi a znázorněnými čarami relace. Skryté tabulky (tabulky, u nichž je zaškrtnuto políčko Skryté v dialogovém okně Vlastnosti tabulky) a jejich relace se nezobrazí, dokud nebude zaškrtnuto políčko Zobrazit skryté objekty v dialogovém okně Možnosti navigace.

Další informace o možnosti Zobrazit skryté objekty naleznete v článku Průvodce do navigačního podokna.

  1. Klepněte na čáru relace, kterou chcete změnit. Čára relace se při výběru zobrazuje silněji.

  2. Poklepejte na čáru relace.

    – nebo –

    Na kartě Návrh klepněte ve skupině Nástroje na tlačítko Upravit relace.

    Zobrazí se dialogové okno Upravit relace.

    Dialog Upravit relace

  3. Proveďte požadované změny a klepněte na tlačítko OK.

    Dialogové okno Upravit relace umožňuje změnit relace mezi tabulkami. Konkrétně můžete změnit tabulky nebo dotazy na obou stranách relace nebo pole na obou stranách. Můžete také nastavit typ spojení nebo vynucení referenční integrity a vyberte možnost kaskádové. Další informace o typu spojení a jak ji nastavit naleznete v části Nastavení typu spojení. Další informace o tom, jak vynutit referenční integritu a vyberte možnost kaskádové naleznete v části vynucení referenční integrity.

Nastavení typu spojení

Při definování relace tabulky informují skutečnosti týkající se relace návrháře dotazu. Pokud například definujete vztah mezi dvěma tabulkami a následně vytvoříte dotaz, který s těmito tabulkami pracuje, aplikace Access automaticky vybere výchozí odpovídající pole na základě polí zadaných v relaci. Tyto počáteční výchozí hodnoty v dotazu můžete změnit, ale hodnoty získané z relace budou často správné. Protože porovnání a seskupení dat z více než jedné tabulky představuje často prováděnou akci ve všech kromě těch nejjednodušších databází, může vám nastavení výchozích hodnot vytvořením vztahů ušetřit čas a ukázat se jako přínosné.

Dotaz s více tabulkami kombinuje informace z několika tabulek porovnáním hodnot ve společných polích. Operace, při které porovnání a kombinování probíhá, se označuje jako spojení. Předpokládejme například, že chcete zobrazit objednávky zákazníka. Vytvoříte dotaz, který spojuje tabulku Zákazníci s tabulkou Objednávky v poli ID zákazníka. Výsledek dotazu obsahuje informace o zákazníkovi a objednávce pouze pro ty řádky, v nichž byla nalezena odpovídající položka.

Jednou z hodnot, které můžete v každém vztahu zadat, je typ spojení. Ten sděluje aplikaci Access, které záznamy mají být ve výsledku dotazu zahrnuty. Vezměte například znovu v úvahu dotaz, který spojuje tabulku Zákazníci s tabulkou Objednávky ve společných polích, která představují ID zákazníka. Pomocí výchozího typu spojení (nazvaného vnitřní spojení) vrátí dotaz pouze řádky zákazníka a objednávky, v nichž jsou společná pole (označovaná také jako propojená pole) stejná.

Předpokládejme však, že chcete zahrnout všechny zákazníky - i takové, kteří dosud nezadali objednávky. K tomu je třeba změnit typ spojení z vnitřního na takzvané levé vnější. Levé vnější spojení vrátí všechny řádky v tabulce vlevo relace a pouze odpovídající řádky z tabulky vpravo. Pravé vnější spojení vrátí všechny řádky vpravo a pouze odpovídající řádky vlevo.

Poznámka: V tomto případě vypovídají hodnoty vlevo a vpravo o pozicích tabulek v dialogovém okně Upravit relace, nikoli v okně Relace.

Měli byste vždy popřemýšlet o tom, jaký výsledek od dotazu, který propojuje tabulky v této relaci, očekáváte a podle toho nastavit typ spojení.

Nastavení typu spojení

  1. V dialogovém okně Upravit relace klepněte na tlačítko Typ spojení.

    Zobrazí se dialogové okno Vlastnosti spojení.

  2. Klepněte na přepínač a potom na tlačítko OK.

Následující tabulka (pomocí tabulky Zákazníci a objednávky) znázorňuje tři možnosti, které se zobrazují v dialogovém okně Vlastnosti spojení, typ spojení, který používají, a informaci, zda jsou pro každou tabulku zahrnuty všechny řádky nebo pouze odpovídající.

Přepínač

Relační spojení

Levá tabulka

Pravá tabulka

1. Zahrnout pouze řádky, v nichž jsou spojená pole z obou tabulek shodná.

Vnitřní spojení

Odpovídající řádky

Odpovídající řádky

2. Zahrnout všechny záznamy z tabulky Zákazníci a z tabulky Objednávky pouze ty záznamy, ve kterých jsou spojená pole shodná.

Levé vnější spojení

Všechny řádky

Odpovídající řádky

3. Zahrnout všechny záznamy z tabulky Objednávky a z tabulky Zákazníci pouze ty záznamy, ve kterých jsou spojená pole shodná.

Pravé vnější spojení

Odpovídající řádky

Všechny řádky

Pokud zvolíte možnost 2 nebo 3, v řádku relace se zobrazí šipka. Ta ukazuje na stranu relace, která znázorňuje pouze odpovídající řádky.

Změny v dialogovém okně Vlastnosti spojení

  1. Klepněte na Tlačítko Microsoft Office Obrázek tlačítka Office a potom na Otevřít.

  2. V dialogovém okně Otevřít vyberte a otevřete databázi.

  3. Na kartě Databázové nástroje klikněte ve skupině Zobrazit či skrýt na Relace.

Otevře se okno Relace.

Pokud jste dosud nedefinovali žádné relace a otevíráte okno Relace poprvé, otevře se dialogové okno Zobrazit tabulku. Pokud se otevře, klepněte na tlačítko Zavřít.

  1. Na kartě Návrh ve skupině Relace klikněte na položku Všechny relace.

Zobrazí se všechny tabulky s relacemi a znázorněnými čarami relace. Skryté tabulky (tabulky, u nichž je zaškrtnuto políčko Skryté v dialogovém okně Vlastnosti tabulky) a jejich relace se nezobrazí, dokud nebude zaškrtnuto políčko Zobrazit skryté objekty v dialogovém okně Možnosti navigace.

Další informace o možnosti Zobrazit skryté objekty naleznete v článku Průvodce do navigačního podokna.

  1. Klepněte na čáru relace, kterou chcete změnit. Čára relace se při výběru zobrazuje silněji.

  2. Poklepejte na čáru relace.

    – nebo –

    Na kartě Návrh klepněte ve skupině Nástroje na tlačítko Upravit relace.

    Zobrazí se dialogové okno Upravit relace.

  3. Klepněte na tlačítko Typ spojení.

  4. V dialogovém okně Vlastnosti spojení klepněte na přepínač a potom klepněte na tlačítko OK.

    Dialogové okno Vlastnosti spojení

  5. Proveďte další změny relace a klepněte na tlačítko OK.

Začátek stránky

Vynucení referenční integrity

Účelem referenční integrity je zabránit osiřelých záznamů a udržovat reference synchronizují a nemáte žádné záznamy, které odkazují na jiné záznamy, které už existuje. Vynucení referenční integrity povolením pro relace mezi tabulkami. Po vynucení aplikace Access odmítne jakoukoli operaci, která by porušovat referenční integritu pro tuto relaci tabulky. Aplikace Access odmítne aktualizace, které mění cíl odkazu a odstranění umožňující odebrání cíl odkazu. Mít taky přístup šířit referenční aktualizace a odstranění tak, aby všechny související řádky se změní podle toho, najdete v části Nastavení kaskádových možností.

Zapnutí nebo vypnutí referenční integrity

  1. Klepněte na Tlačítko Microsoft Office Obrázek tlačítka Office a potom na Otevřít.

  2. V dialogovém okně Otevřít vyberte a otevřete databázi.

  3. Na kartě Databázové nástroje klikněte ve skupině Zobrazit či skrýt na Relace.

Otevře se okno Relace.

Pokud jste dosud nedefinovali žádné relace a otevíráte okno Relace poprvé, otevře se dialogové okno Zobrazit tabulku. Pokud se otevře, klepněte na tlačítko Zavřít.

  1. Na kartě Návrh ve skupině Relace klikněte na položku Všechny relace.

Zobrazí se všechny tabulky s relacemi a znázorněnými čarami relace. Skryté tabulky (tabulky, u nichž je zaškrtnuto políčko Skryté v dialogovém okně Vlastnosti tabulky) a jejich relace se nezobrazí, dokud nebude zaškrtnuto políčko Zobrazit skryté objekty v dialogovém okně Možnosti navigace.

Další informace o možnosti Zobrazit skryté objekty naleznete v článku Průvodce do navigačního podokna.

  1. Klepněte na čáru relace, kterou chcete změnit. Čára relace se při výběru zobrazuje silněji.

  2. Poklepejte na čáru relace.

    – nebo –

    Na kartě Návrh klepněte ve skupině Nástroje na tlačítko Upravit relace.

    Zobrazí se dialogové okno Upravit relace.

  3. Zaškrtněte políčko Zajistit referenční integritu.

  4. Proveďte další změny relace a klepněte na tlačítko OK.

Po vynucení referenční integrity platí následující pravidla:

  • Do pole cizího klíče relační tabulky nelze zadat hodnotu, pokud tato hodnota neexistuje v poli primárního klíče primární tabulky – tím by došlo k vytvoření osiřelých záznamů. 

  • Z primární tabulky nelze odstranit záznamy, které mají odpovídající protějšky v tabulce související. V tabulce Zaměstnanci například nelze odstranit záznam, ke kterému existují odpovídající objednávky v tabulce Objednávky. Můžete však odstranit primární záznam a všechny odpovídající záznamy v jedné operaci zaškrtnutím políčka Odstranění souvisejících záznamů v kaskádě.

  • Hodnotu primárního klíče v primární tabulce nemůžete změnit, pokud by tím došlo k vytvoření osiřelých záznamů. Nelze například změnit číslo objednávky v tabulce Objednávky, pokud jsou této objednávce přiřazeny položky na čáře v tabulce Rozpis objednávek. Můžete však aktualizovat primární záznam a všechny odpovídající záznamy v jedné operaci zaškrtnutím políčka Aktualizace souvisejících polí v kaskádě.

    Poznámky: Pokud se vám nedaří povolit referenční integritu, jsou k jejímu vynucování vyžadovány následující podmínky.

    • Společné pole z primární tabulky musí být primárním klíčem nebo musí mít jedinečný index.

    • Společná pole musí mít stejný datový typ. Jedinou výjimkou je, že pole Automatické číslo může být spojeno s polem Číslo, jehož vlastnost .Velikostpole má nastavení Dlouhé celé číslo.

    • Obě tabulky musí existovat ve stejné databázi aplikace Access. Referenční integritu nelze vynucovat v propojených tabulkách. Pokud jsou však zdrojové tabulky ve formátu aplikace Access, můžete otevřít databázi, v níž jsou uloženy, a povolit v ní referenční integritu.

Nastavení kaskádových možností

Může nastat situace, kdy budete mít oprávněnou potřebu změnit hodnotu na straně 1 záznamu. V takovém případě je třeba, aby aplikace Access automaticky aktualizovala všechny ovlivněné řádky při jedné operaci. Tímto způsobem je aktualizace zcela dokončena, takže databáze nezůstane v nekonzistentním stavu — s některými řádky aktualizovanými a jinými ne. Aplikace Access vám pomůže se tomuto problému vyhnout tím, že podporuje možnost Aktualizace souvisejících polí v kaskádě. Pokud vynutíte referenční integritu a zvolíte možnost Aktualizace souvisejících polí v kaskádě a následně aktualizujete primární klíč, aplikace Access automaticky aktualizuje všechna pole, která na tento primární klíč odkazují.

Může být také nutné odstranit řádek a všechny související záznamy – například u záznamu dopravce a všech souvisejících objednávek tohoto dopravce. Z tohoto důvodu aplikace Access podporuje možnost Odstranění souvisejících polí v kaskádě. Pokud nastavíte vynucování referenční integrity a zaškrtnete možnost Odstranění souvisejících polí v kaskádě, aplikace Access při odstranění záznamu s primárním klíčem automaticky odstraní všechny záznamy, které primární klíč obsahují.

Vypnutí nebo zapnutí aktualizací či odstranění v kaskádě

  1. Klepněte na Tlačítko Microsoft Office Obrázek tlačítka Office a potom na Otevřít.

  2. V dialogovém okně Otevřít vyberte a otevřete databázi.

  3. Na kartě Databázové nástroje klikněte ve skupině Zobrazit či skrýt na Relace.

Otevře se okno Relace.

Pokud jste dosud nedefinovali žádné relace a otevíráte okno Relace poprvé, otevře se dialogové okno Zobrazit tabulku. Pokud se otevře, klepněte na tlačítko Zavřít.

  1. Na kartě Návrh ve skupině Relace klikněte na položku Všechny relace.

Zobrazí se všechny tabulky s relacemi a znázorněnými čarami relace. Skryté tabulky (tabulky, u nichž je zaškrtnuto políčko Skryté v dialogovém okně Vlastnosti tabulky) a jejich relace se nezobrazí, dokud nebude zaškrtnuto políčko Zobrazit skryté objekty v dialogovém okně Možnosti navigace.

Další informace o možnosti Zobrazit skryté objekty příručce do navigačního podokna.

  1. Klepněte na čáru relace, kterou chcete změnit. Čára relace se při výběru zobrazuje silněji.

  2. Poklepejte na čáru relace.

    – nebo –

    Na kartě Návrh klepněte ve skupině Nástroje na tlačítko Upravit relace.

    Zobrazí se dialogové okno Upravit relace.

  3. Zaškrtněte políčko Zajistit referenční integritu.

  4. Zaškrtněte políčko Aktualizace souvisejících polí v kaskádě, nebo Odstranění souvisejících záznamů v kaskádě, anebo obě tato políčka.

  5. Proveďte další změny relace a klepněte na tlačítko OK.

Poznámka: Jestliže je primárním klíčem pole typu Automatické číslo, nebude mít zaškrtnutí políčka Aktualizace souvisejících polí v kaskádě žádný vliv, protože hodnotu v poli typu Automatické číslo nelze změnit.

Začátek stránky

Poznámka: Upozornění ke strojovému překladu: Tento článek přeložil počítačový systém bez zásahu člověka. Společnost Microsoft nabízí tyto strojové překlady proto, aby umožnila uživatelům, kteří nemluví anglicky, získat informace o produktech, službách a technologiích této společnosti. Protože je tento článek strojově přeložený, může obsahovat slovní, syntaktické nebo gramatické chyby.

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×