Jaké jsou mezi tabulkami
Vztahy v relační databáze 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 jen nadpisy tabulku, která obsahuje
informace o každé knize, jako je například název knihy, publikace, datum a
aplikace Publisher. Je také informace, které chcete ukládat o
aplikace Publisher, například telefonní číslo vydavatele, adresu a PSČ. Pokud jste
byly všechny tyto informace uložit do v tabulce tituly, vydavatel
telefonní číslo by duplicitní, pro každý titul, který vydavatele
vytiskne.
Lepším řešením je ukládat pouze informace o vydavateli
jednou v samostatné tabulce vydavatelů. Pak byste umístili ukazatel na
Tabulka Tituly, které odkazuje na položku v tabulce vydavatelů.
Chcete-li
Ujistěte se, že vaše data nejsou synchronizována, můžete vynutit referenční
integrity mezi tabulkami nadpisy a vydavatelů. Referenční integrita
vztahy pomáhají zajistit, že informace v jedné tabulce odpovídají informace v
jiný. Například, musí každý název v tabulce tituly přidružené
konkrétní aplikace publisher v tabulce vydavatelů. Název nelze přidat
databáze pro vydavatele, který neexistuje v databázi.
Typy relací mezi tabulkami
Relace pracují na základě porovnání dat v klíčových sloupců obvykle
sloupce se stejným názvem v obou tabulkách. Ve většině případů vztah
odpovídá primární klíč z jedné tabulky, které poskytuje jedinečný identifikátor pro
Každý řádek s položkou, do pole cizího klíče v druhé tabulce. Například,
prodeje mohou být přidruženy k určité názvy prodávaných vytvořením
vztah mezi title_id sloupec v tabulce Tituly (primární klíč)
a title_id sloupec v Sales tabulka (cizí klíč).
Zde
jsou tři typy relací mezi tabulkami. Typ vztahu,
je vytvořen závisí na definici souvisejících sloupců.
Vztahy 1: N
Vztah 1: je nejběžnější typ
vztah. V tomto typu relace může řádku tabulky A může mít mnoho
odpovídající řádky v tabulce B, ale řádek v tabulce B může mít pouze jeden odpovídající řádek
v tabulce A. Například vydavatelů a nadpisy tabulek mají 1 n
vztah: Každá aplikace publisher vytváří mnoho titulů, ale každý titul pochází z
pouze jeden vydavatel.
Vztah 1: n je vytvořena v případě pouze jeden
souvisejících sloupců primárního klíče nebo jedinečnosti.
V aplikaci Access je označen stranu primárního klíče vztah 1:
symbol klíče. Na straně cizího klíče v relaci se označuje symbolem nekonečna
symbol.
Relace n: N
V relaci n: n může řádku tabulky A může mít mnoho
odpovídající řádky v tabulce B a naopak. Vytvořit vztah podle
definice třetí tabulky nazývané spojená tabulka, jejíž primární klíč se skládá ze
cizích klíčů z obou tabulek A a B. tabulky Například v tabulce Autoři
a n n vztahu, který je definován v tabulce tituly
1 n vztahu z každé z těchto tabulek tabulky Enemy.
Primární klíč tabulky Enemy je kombinací au_id
sloupec (primární klíč v tabulce Autoři) a title_id sloupec (názvy
primární klíč tabulky).
Relace typu 1: 1
V relaci 1: 1 na řádek v tabulce A může mít více
než jeden odpovídající řádek v tabulce B a naopak. Je vztah 1: 1
vytvořena-li obě související sloupce primárního klíče nebo jedinečné
omezení.
Tento typ relace není obvyklý protože většina
informace související s tímto způsobem by bylo vše v jedné tabulce. Můžete použít
relace:
- 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
prostým odstraněním tabulky.
- Ukládání informací, které se vztahuje pouze k části hlavní
Tabulka.
V aplikaci Access je strana primárního klíče v relaci
označena symbolem klíče. Na straně cizího klíče je také označen symbolem klíče.
Definování relací mezi tabulkami
Při vytváření relace mezi tabulkami, souvisejících polí
není nutné mít stejné názvy. Související pole však musí mít stejný
typ dat, pokud je pole s primárním klíčem pole typu Automatické číslo. Můžete porovnat
Pole typu Automatické číslo s polem číslo pouze tehdy, pokud je vlastnost
Velikost pole obou odpovídajících polí je stejný. Například,
Pokud je vlastnost
Velikost pole obou polí dlouhé celé číslo, můžete porovnat pole Automatické číslo a číslo. I když obě odpovídající
jsou pole typu číslo, musí mít stejné nastavení vlastnosti
Velikost pole .
Jak definovat relace 1:N nebo 1:1
Vytvořit 1 n nebo vztah 1: 1, postupujte podle
Tyto kroky:
- Zavřete všechny tabulky, které jste otevřeli. Nelze vytvořit nebo
Upravte relaci mezi otevřenými tabulkami.
- V aplikaci Access 2002 nebo Access 2003 postupujte takto:
- Stisknutím klávesy F11 přejděte do okna databáze.
- Na Nástroje nabídky, klepněte na tlačítko Vztahy.
V aplikaci Access 2007 klepněte na tlačítko Vztahy v Zobrazit/skrýt skupina na Databázové nástroje na kartě. - Pokud jste dosud nedefinovali žádné relace ve vašem
Zobrazí se automaticky databáze dialogové okno Zobrazit tabulku . Pokud chcete přidat
tabulky, které chcete vytvořit relaci, ale není zobrazeno dialogové okno Zobrazit tabulku , klepněte na tlačítko Zobrazit tabulku v nabídce vztahy .
- Poklepejte na názvy požadovaných tabulek, které chcete
se týkají a pak zavřete dialogové okno Zobrazit tabulku . Chcete-li vytvořit relaci tabulky se sebou samou,
Přidejte tuto tabulku dvakrát.
- Přetáhněte pole, které chcete z jedné tabulky do
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ů je přetáhnout
pole primárního klíče (který je zobrazen tučným písmem) z jedné tabulky podobných
pole (často se stejným názvem) nazývá cizí klíč v jiné tabulce. - Zobrazí se dialogové okno Upravit relace . Zajistit, že názvy polí zobrazeny
dva sloupce jsou správné. V případě potřeby je můžete změnit.
Sada
možnosti relace, pokud je to nutné. Pokud potřebujete informace o konkrétní
položka v dialogovém okně Upravit relace , klepněte na tlačítko Nápověda a potom klepněte na tlačítko
položka. Tyto možnosti budou vysvětleny podrobněji dále v
článek. - Klepněte na tlačítko vytvořit vytvořte vztah.
- Opakujte kroky 5 až 8 pro každou dvojici tabulek, které
Chcete vytvořit vztah.
Po zavření dialogového okna Upravit relace aplikace Microsoft Access zobrazí dotaz, pokud chcete uložit rozložení.
Rozložení, bez ohledu vztahy, které vytvoříte, jsou uloženy
v databázi.
Poznámka: Můžete vytvářet vztahy v dotazy jako tabulky.
S dotazy však není zajištěna referenční integrita.
Jak definovat vztahy n: N
Chcete-li vytvořit relaci n: n, postupujte takto:
- Vytvořte dvě tabulky, které budou mít n n
vztah.
- Vytvořte třetí tabulky nazývané spojená tabulka a pak přidejte
Chcete-li spojovací tabulky nové pole se stejnými definicemi jako primární klíč
pole ze všech spojovaných tabulek. Ve spojovací tabulce primární
Funkce polí klíčů jako cizí klíče. Můžete přidat další pole pro spojení
Tabulka, stejně jako můžete s jinou tabulkou.
- Ve spojovací tabulce primární klíč nastavit zahrnout
pole primárního klíče z dalších dvou tabulek. Například v Enemy
spojená tabulka primárního klíče by být tvořen ČísloObjednávky a ČísloVýrobku
pole.
Poznámka: Chcete-li vytvořit primární klíč, postupujte takto:- Otevřete tabulku v návrhovém zobrazení.
- Vyberte jedno nebo více polí, které chcete definovat jako
primární klíč. Chcete-li vybrat jedno pole, klepněte na volič řádku pro požadovanou
pole.
Chcete-li vybrat více polí, stiskněte a podržte klávesu CTRL a poté
Klepněte na volič řádku každého pole. - V aplikaci Access 2002 nebo Access 2003 klepněte na tlačítko Primární klíč na panelu nástrojů.
V aplikaci Access 2007 klepněte na tlačítko Primární klíč v Nástroje skupina na Návrh na kartě.
Poznámka: Pokud chcete, aby pořadí polí v vícepoložkového primárního
PrimaryKeypojmenované názvy polí indexu klíče se liší od pořadí těchto polí v tabulce, klepněte na panelu nástrojů zobrazte dialogové okno indexy a potom změnit pořadí indexů .
- Definovat vztah mezi těmito dvěma 1 n
primární tabulky a spojovací tabulka.
Referenční integrita
Referenční integrity je systém pravidel, které aplikace Microsoft Access
používá k zajištění toho, že vztahy mezi záznamy v souvisejících tabulkách jsou platné,
a brání náhodnému odstranění nebo změně souvisejících informací. Můžete nastavit
referenční integrita při jsou splněny následující podmínky:
- Odpovídající pole z primární tabulky je primární klíč
nebo má jedinečný index.
- Odpovídající pole jsou stejného datového typu. Existují dva
výjimky. Pole typu Automatické číslo může být pro pole typu číslo s vlastností Velikost pole je nastavena na hodnotu Dlouhé celé číslo, a pole Automatické číslo s nastavením vlastnosti Velikost pole identifikátor replikace může souviset s několika
pole vlastnosti Velikost pole na hodnotu Replikační identifikátor.
- Obě tabulky náleží do stejné databáze aplikace Microsoft Access.
Jsou-li tabulky propojené tabulky, musí jít o tabulky v aplikaci Microsoft Access
Formát a je třeba otevřít databázi, v níž jsou uloženy, a nastavit
referenční integritu. Referenční integritu nelze vynutit pro Spojené
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í tabulku, která neexistuje v primárním klíči primární tabulky.
Však můžete zadat hodnotu Null hodnota cizího klíče v určení, že
jde o nesouvisející záznamy. Například nelze mít objednávku, která je přiřazena
zákazníkovi, který neexistuje, ale máte také objednávku, která je přiřazena
Chcete-li nikdo zadáním hodnoty Null v poli KódZákazníka.
- Z primární tabulky nelze odstranit záznam, pokud odpovídající
existují záznamy v související tabulce. Nelze například odstranit zaměstnance
záznam v tabulce Zaměstnanci existují v
v tabulce objednávky.
- Hodnoty primárního klíče primární tabulky nelze změnit
Pokud to záznamu existují související záznamy. Nelze například změnit
ID zaměstnance v tabulce Zaměstnanci, pokud existují
zaměstnance v tabulce objednávky.
Kaskádové aktualizace a odstranění
Pro vztahy, ve kterých je nastavena referenční integrita je
můžete určit, zda má aplikace Microsoft Access automaticky aktualizovat související pole v kaskádě
nebo kaskádové odstranění souvisejících záznamů. Při nastavení těchto voleb, odstranění a aktualizace
jsou operace, které by jinak byly odepřeny pravidla referenční integrity
povoleno. Při odstranění záznamů nebo změně hodnot primárního klíče primární
tabulky, aplikace Microsoft Access provede nezbytné změny souvisejících tabulkách
zachování referenční integrity.
Pokud zaškrtnete políčko
Aktualizace souvisejících polí v kaskádě při definování vztahu, který jste kdykoli
Změna primárního klíče v záznamu primární tabulky aplikace Microsoft Access
automaticky aktualizaci primárního klíče ve všech souvisejících záznamech na novou hodnotu.
Například pokud změníte identifikační číslo zákazníka v tabulce Zákazníci
Pro každou jednotlivou automaticky aktualizaci pole ČísloZákazníka i v tabulce objednávky
Tento zákazník objednává, aby vztah není přerušeno. Aplikace Microsoft Access
Uspořádá sebe aktualizace bez zobrazení zprávy.
Poznámka: Jestliže 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ě nebude mít žádný vliv, protože nelze změnit
Hodnota v poli typu Automatické číslo.
Jestliže při definici relace zaškrtnete políčko
Odstranění souvisejících polí v kaskádě , který jste kdykoli
odstranit záznamy z primární tabulky aplikace Microsoft Access automaticky odstraní.
související záznamy v související tabulce. Například pokud odstranit zákazníka
záznam z tabulky Zákazníci, objednávky pro všechny zákazníky jsou automaticky
odstranit z tabulky objednávky (i záznamy v tabulce Rozpis objednávek
souvisí s tabulkou objednávky). Při odstranění záznamů z formuláře nebo
list s zaškrtnuto políčko
Odstranění souvisejících polí v kaskádě , aplikace Microsoft Access upozorňuje, že související
záznamy mohou být také odstraněny. Jestliže však odstraníte záznamy pomocí odstranění
dotaz, aplikace Microsoft Access automaticky odstraní záznamy v souvisejících tabulkách
aniž by bylo zobrazeno upozornění.
Typy spojení
Existují tři typy spojení, takto:
Možnost 1 definuje vnitřní spojení. Vnitřní spojení je spojení kde záznamy z
dvě tabulky jsou zkombinovány v dotazu výsledky pouze tehdy, pokud hodnoty ve Spojených
pole 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í, u něhož
všechny záznamy z levé strany operace LEVÉ spojení v dotazu
Příkaz SQL se do výsledků dotazu i v případě, že neexistují žádné odpovídající
hodnoty pole z tabulky vpravo.
Možnost 3 definuje pravé vnější spojení. Pravé vnější spojení je spojení, u něhož
všechny záznamy z pravé strany operace PRAVÉHO spojení v dotazu
Příkaz SQL se do výsledků dotazu i v případě, že neexistují žádné odpovídající
hodnoty pole z tabulky vlevo.