Definování relací mezi tabulkami v databázi aplikace Access

Překlady článku Překlady článku
ID článku: 304466 - Produkty, které se vztahují k tomuto článku.
Začínajícího: Vyžaduje znalost uživatelského rozhraní v počítačích pro jednoho uživatele.

Tento článek se týká pouze databáze aplikace Microsoft Access (MDB nebo ACCDB).
Aplikace Microsoft Access 2000 verzi tohoto článku naleznete v tématu 304467.
Aplikace Microsoft Access 97 verzi tohoto článku naleznete v tématu 304468.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje, jak definovat relace v databázi aplikace Microsoft Access. Tento článek obsahuje následující témata:
  • Jaké jsou mezi tabulkami?
  • Druhy relace mezi tabulkami
    • Vztahy 1: n
    • Relace n: n
    • Relace 1: 1
  • Definování relací mezi tabulkami
    • Jak definovat relaci 1: n nebo 1: 1
    • Jak definovat vztah n: n
  • Referenční integrita
  • Kaskádové aktualizace a odstranění
  • Typy spojení

Další informace

Jaké jsou mezi tabulkami?

Zmenšit tento obrázekZvětšit tento obrázek
assets folding start collapsed
V relační databázi vztahy umožňují zabránit redundantní data. Například při návrhu databáze, která bude sledovat informace o knihách, může mít tabulku s názvem "Tituly" informacemi o každé knize, jako je například název knihy, datum publikace a aplikace publisher. Je také informace, že můžete chtít ukládat o vydavatele, například telefonní číslo vydavatele, adresa, andZIP kód PSČ. Kdyby všechny tyto informace uloženy v tabulce "Tituly" by pro každý titul, který vytiskne vydavatele zkopírovat telefonní číslo vydavatele.

Lepším řešením je ukládat informace vydavatele pouze jednou, do samostatné tabulky, že nazýváme "Vydavatel". Pak umístíte ukazatel v tabulce "Tituly", odkaz na položku v tabulce "Vydavatel".

Chcete-li mít jistotu, že jste data synchronizována, můžete vynutit referenční integritu mezi tabulkami. Referenční integrita pomáhá, ujistěte se, že informace z jedné tabulky odpovídají informacím v jiném. Například každý název v tabulce "Tituly" musí být spojeny s konkrétní aplikace publisher v tabulce "Vydavatel". Název nelze přidat do databáze pro vydavatele, který neexistuje v databázi.

Logické vztahy v youto databázi povolit efektivní zadávat dotazy na data a vytvářet sestavy.
Zmenšit tento obrázekZvětšit tento obrázek
assets folding end collapsed

Druhy relace mezi tabulkami

Zmenšit tento obrázekZvětšit tento obrázek
assets folding start collapsed
Relace pracují na základě porovnání dat v klíčových sloupců, obvykle sloupců (nebo pole), které se stejným názvem v obou tabulkách. Ve většině případů se připojí vztahu primární klíč nebo jedinečný identifikátor sloupce pro každý řádek z jedné tabulky do pole v druhé tabulce. Sloupec ve druhé tabulce je označován jako "cizí klíč." Například pokud chcete sledovat prodej každý název knihy, můžete vytvořit vztah mezi sloupci primárního klíče (můžeme jej nazvattitle_ID) v tabulce "Tituly" a "Prodejní" tabulky s názvem title_IDsloupec. Title_ID sloupec v tabulce "Prodej" je cizí klíč.

Existují tři typy relací mezi tabulkami. Druh vytvořené relace závisí na definici souvisejících sloupců.

Vztahy 1: n

Vztah 1: je nejběžnější typ relace. V tento druh vztahu mají řádek v tabulce A odpovídat více řádků v tabulce B. Ale řádek v tabulce B může mít pouze jeden odpovídající řádek v tabulce A. Například tabulky "Vydavatelé" a "Tituly" mít vztah 1:. To znamená, že každý vydavatelem mnoha titulů. Ale každý titul pochází od vydavatele pouze jeden.

Vztah 1: n je vytvořena-li pouze jeden související sloupce primárního klíče nebo jedinečnosti.

V okně vztah v aplikaci Access stranu primárního klíče relace na více je označen číslem 1. Na straně cizího klíče relace je označen symbol nekonečna.

Zmenšit tento obrázekZvětšit tento obrázek
2878329


Relace n: n

V relaci n: mají řádek v tabulce A odpovídat více řádků tabulky B a naopak. Vytvoření relace pomocí definice třetí tabulky, která se nazývá spojená tabulka. Primární klíč spojovací tabulky se skládá z cizích klíčů z obou tabulek A a B. Například tabulky "Autorům" a "Tituly" mají vztah n n, který je definován vztah 1: z každé z těchto tabulek do tabulky "Titleauthor". Primární klíč tabulky "Titleauthor" je kombinaceau_ID sloupec (primární klíč tabulky "Autorům") a title_ID sloupec (primární klíč tabulka "Tituly").

Zmenšit tento obrázekZvětšit tento obrázek
2878330


Relace 1: 1

V relaci 1: 1 na řádek v tabulce A může mít více než jeden řádek odpovídající tabulky B a naopak. Vztah 1: 1 je vytvořena, je-li obě související sloupce primárního klíče nebo jedinečnosti.

Tento typ relace není obvyklý, protože většina informací, která souvisí s tímto způsobem by byla v jedné tabulce. Relaci lze provést následující akce:
  • Dělení tabulka s mnoho sloupců.
  • Oddělení části tabulky z důvodů zabezpečení.
  • Ukládání dat, který je krátkodobý a lze snadno odstranit odstraněním tabulky.
  • Ukládání informací, které se vztahuje pouze k části hlavní tabulky.
V aplikaci Access je strana primárního klíče v relaci označen symbolem klíče. Na straně cizího klíče je také označen symbolem klíče.
Zmenšit tento obrázekZvětšit tento obrázek
assets folding end collapsed

Definování relací mezi tabulkami

Zmenšit tento obrázekZvětšit tento obrázek
assets folding start collapsed
Při vytváření relace mezi tabulkami není nutné mít stejné názvy souvisejících polí. Související pole však musí mít stejný datový typ. Pokud je pole s primárním klíčem pole typu Automatické číslo. Můžete porovnat pole Automatické číslo s polem Číslo, pouze pokud je vlastnost Velikost pole obou polí odpovídající stejné. Může například odpovídat pole typu Automatické číslo a polem typu číslo, pokud je vlastnost Velikost pole obou polí Dlouhé celé číslo. I když jsou oba odpovídající pole typu číslo, musí mít stejné nastavení vlastnosti Velikost pole .

Jak definovat relaci 1: n nebo 1: 1

Vytvoření 1 n nebo vztah 1: 1, postupujte takto:
  1. Zavřete všechny tabulky. Nelze vytvořit nebo změnit relace mezi otevřenými tabulkami.
  2. V aplikaci Access 2002 nebo Access 2003 postupujte takto:
    1. Stisknutím klávesy F11 přejděte do okna databáze.
    2. V nabídce Nástroje klepněte na příkaz relace.

    V aplikaci Access 2007 klepněte Access 2010 nebo 2013 přístupvztahy ve skupině Zobrazit či skrýt na kartě Databázové nástroje .
  3. Pokud jste dosud nedefinovali žádné relace v databázi, zobrazí se automaticky dialogové okno Zobrazit tabulku . Pokud chcete přidat tabulky, které chcete spojit, ale nezobrazuje se dialogové okno Zobrazit tabulku, klepněte na tlačítkoZobrazit tabulku v nabídce vztahy .
  4. Poklepejte na názvy požadovaných tabulek, které chcete vytvořit relaci a pak zavřete dialogové okno Zobrazit tabulku. Chcete-li vytvořit relaci tabulky se sebou samou, přidejte tuto tabulku dvakrát.
  5. Přetáhněte pole, které se týkají z jedné tabulky na související pole v druhé tabulce. Chcete-li přetáhnout více polí zároveň, stiskněte klávesu Ctrl, klepněte na každé pole a přetáhněte je.

    Ve většině případů přetáhnete pole primárního klíče (Toto pole je zobrazeno tučně) z jedné tabulky do podobného pole (Toto pole často má stejný název), které se nazývá cizí klíč v jiné tabulce.
  6. Zobrazí se dialogové okno Upravit relace. Ujistěte se, zda jsou správné názvy polí zobrazené v obou sloupcích. V případě potřeby můžete změnit názvy.

    V případě potřeby nastavte možnosti relace. Pokud máte k dispozici informace o určité položce v dialogovém okněUpravit relace , klepněte na tlačítko otazníkem a poté klepněte na položku. (Tyto možnosti budou vysvětleny podrobněji dále v tomto článku.)
  7. Klepněte na tlačítko vytvořit vytvořte relaci.
  8. Opakujte kroky 4 až 7 pro každou dvojici tabulek, které chcete spojit.

    Když zavřete dialogové okno Upravit relace, zobrazí aplikace Access dotaz, zda chcete uložit rozložení. Zda uložit rozložení nebo rozložení nejsou ukládány, vztahy, které vytvoříte jsou uložena v databázi.

    Poznámka:Vztahy můžete vytvořit pouze v tabulkách, ale také v dotazech. S dotazy však není zajištěna referenční integrita.

Jak definovat vztah n: n

Chcete-li vytvořit relaci n: n, postupujte takto:
  1. Vytvořte dvě tabulky, které mají vztah n: n.
  2. Vytvořte třetí tabulku. To je spojené tabulky. Spojovací tabulky přidejte nová pole, která mají stejné definice jako pole primárního klíče z každé tabulky, kterou jste vytvořili v kroku 1. Pole primárního klíče ve spojovací tabulce funkci cizích klíčů. Spojovací tabulce můžete přidat další pole, stejně jako ostatní tabulky.
  3. Spojovací tabulky nastavte primární klíč zahrnout pole primárních klíčů spojovaných tabulek. Například v "Titleauthor" spojená tabulka primárního klíče by být tvořen pole ČísloObjednávky a ČísloVýrobku .

    Poznámka: Pokud chcete vytvořit primární klíč, postupujte takto:
    1. Otevřete tabulku v návrhovém zobrazení.
    2. Vyberte jedno nebo více polí, které chcete definovat jako primární klíč. Chcete-li vybrat jedno pole, klepněte na volič řádku požadované pole. Chcete-li vybrat více polí, stiskněte a podržte klávesu Ctrl a klepněte na volič řádku každého pole.
    3. V aplikaci Access 2002 nebo Access 2003 na panelu nástrojů klepněte na tlačítko Primární klíč .

      V aplikaci Access 2007 klepněte na kartě Návrh ve skupině NástrojePrimární klíč .

      Poznámka:Pokud chcete, aby pořadí polí v primárním klíči tvořeném více poli se liší od pořadí těchto polí v tabulce, klepněte na panelu nástrojů zobrazte dialogové okno indexy a potom uspořádat názvy polí pro tvořeném indexy.
  4. Definujte vztah 1: mezi jednotlivými tabulkami primární a spojovací tabulka.
Zmenšit tento obrázekZvětšit tento obrázek
assets folding end collapsed

Referenční integrita

Zmenšit tento obrázekZvětšit tento obrázek
assets folding start collapsed
Pojem referenční integrita označuje soustavu pravidel k Přesvědčte se, zda platí vztahy mezi záznamy v souvisejících tabulkách a brání náhodnému odstranění nebo změně dat relace. Referenční integritu lze nastavit, pokud jsou splněny následující podmínky allthe:
  • Odpovídající pole z primární tabulky je primárním klíčem nebo má jedinečný index.
  • Odpovídající pole jsou stejného datového typu. Existují dvě výjimky. Pole typu Automatické číslo může souviset s polem Číslo, které má vlastnost Velikost pole je nastavena na hodnotu Dlouhé celé číslo, a pole Automatické číslo s nastavením vlastnostiVelikost pole z Identifikátor replikacemůže souviset s polem Číslo nastavení vlastnostiVelikost poleIdentifikátor replikace.
  • Obě tabulky náleží do stejné databáze aplikace Access. Jsou-li tabulky propojené tabulky, musí jít o tabulky ve formátu aplikace Access, a je třeba otevřít databázi, ve kterém jsou uloženy, a nastavit referenční integritu. Nelze vynutit referenční integritu pro propojené tabulky z databáze v jiných formátech.
Při použití referenční integrity platí následující pravidla:
  • Nelze zadat hodnotu do pole cizího klíče související tabulky, která neexistuje v primárním klíči primární tabulky. Do pole cizího klíče však můžete zadat hodnotu Null. To určuje, že jde o nesouvisející záznamy. Například nelze mít objednávku, která je přiřazena k zákazníkovi, který již neexistuje. Můžete však mít objednávku, která je přiřazena k nikdo zadáním hodnoty Null v poli KódZákazníka .
  • Z primární tabulky nelze odstranit záznamy, odpovídající protějšky v tabulce související. Například nelze odstranit záznam z tabulky "Zaměstnanci", existují v tabulce "Objednávky".
  • Hodnoty primárního klíče primární tabulky nelze změnit, pokud danému záznamu existují související záznamy. Nelze například změnit ID zaměstnance v tabulce "Zaměstnanci", existují přiřazené tomuto zaměstnanci v tabulce "Objednávky".
Zmenšit tento obrázekZvětšit tento obrázek
assets folding end collapsed

Kaskádové aktualizace a odstranění

Zmenšit tento obrázekZvětšit tento obrázek
assets folding start collapsed
Pro vztahy, ve kterých je nastavena referenční integrita lze určit, zda má aplikace Access automaticky aktualizovat související pole v kaskádě nebo kaskádové odstranění souvisejících záznamů. Nastavíte-li tyto možnosti operace odstranění a aktualizace, které by obvykle byly odepřeny podle referenční integrity, které jsou pravidla zapnuta. Při odstranění záznamů nebo změně hodnot primárního klíče primární tabulky, aplikace Access provedeny všechny nezbytné změny do souvisejících tabulek k zachování referenční integrity.

Jestliže při definování relace, zaškrtněte políčko Aktualizace souvisejících polí v kaskádě, dojde při každé změně primárního klíče v záznamu primární tabulky aplikace Microsoft Access automaticky aktualizuje primárního klíče ve všech souvisejících záznamech. Například pokud změníte identifikační číslo zákazníka v tabulce "Zákazníci", pole ČísloZákazníkai v tabulce "Objednávky" dojde k automatické aktualizaci každé jedné objednávky tohoto zákazníka tak, aby vztah není přerušeno. Přístup uspořádá sebe aktualizace bez zobrazení zprávy.

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

Pokud zaškrtnete políčko Odstranění souvisejících polí v kaskáděpři definování vztahů, při každém odstranění záznamu primární tabulky, aplikace Access automaticky odstraní související záznamy v související tabulce. Například odstraníte záznam zákazníka z tabulky "Zákazníci", všech objednávkách jsou automaticky odstraněny z tabulky "Objednávky". (To zahrnuje záznamy v tabulce "Rozpis objednávek", které se vztahují k záznamům "Objednávky"). Je-li odstranit záznamy z formuláře nebo datového listu, je-li zaškrtnuto políčkoOdstranění souvisejících polí v kaskádě, zobrazí se upozornění, že související záznamy budou odstraněny i. Však při odstraňování záznamů pomocí odstraňovacího dotazu, aplikace Access automaticky odstraní záznamy v souvisejících tabulkách bez zobrazení upozornění.
Zmenšit tento obrázekZvětšit tento obrázek
assets folding end collapsed

Typy spojení

Zmenšit tento obrázekZvětšit tento obrázek
assets folding start collapsed
Existují tři typy spojení. Můžete je vidět v následujícím snímku obrazovky:

Zmenšit tento obrázekZvětšit tento obrázek
2878331


Možnost 1 definuje vnitřní spojení. Spojení je vnitřní spojení v záznamy ze dvou tabulek, které jsou sloučeny ve výsledcích dotazu pouze pokud hodnoty ve spojených polích splní zadanou podmínku. V dotazu výchozí spojení je vnitřní spojení, který vybere záznamy, pouze pokud hodnoty ve spojených polích shodují.

Možnost 2 definuje levé vnější spojení. Levé vnější spojení je spojení kterého jsou všechny záznamy z levé strany operace LEFT JOIN v příkazu SQL dotazu přidány do výsledků dotazu i v případě, že neexistují žádné odpovídající hodnoty ve spojeném poli v tabulce na pravé straně.

Možnost 3 definuje pravé vnější spojení. Pravé vnější spojení je spojení v které všechny záznamy z pravé strany operace RIGHT JOIN v příkazu SQL dotazu přidány do výsledků dotazu i v případě, že neexistují žádné odpovídající hodnoty ve spojeném poli v tabulce na levé straně.
Zmenšit tento obrázekZvětšit tento obrázek
assets folding end collapsed

Vlastnosti

ID článku: 304466 - Poslední aktualizace: 10. října 2013 - Revize: 12.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Access 2013
  • Microsoft Access 2010
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Klíčová slova: 
kbdesign kbdatabase kbhowto kbmt KB304466 KbMtcs
Strojově přeložený článek
DŮLEŽITÉ: Tento článek je přeložen pomocí softwaru na strojový překlad Microsoft. Nepřesný či chybný překlad lze opravit prostřednictvím technologie Community Translation Framework (CTF). Microsoft nabízí strojově přeložené, komunitou dodatečně upravované články, a články přeložené lidmi s cílem zajistit přístup ke všem článkům v naší znalostní bázi ve více jazycích. Strojově přeložené a dodatečně upravované články mohou obsahovat chyby ve slovníku, syntaxi a gramatice. Společnost Microsoft není odpovědná za jakékoliv nepřesnosti, chyby nebo škody způsobené nesprávným překladem obsahu nebo jeho použitím našimi zákazníky. Více o CTF naleznete na http://support.microsoft.com/gp/machine-translation-corrections/cs.
Projděte si také anglickou verzi článku: 304466

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com