Některé relace mezi tabulkami je vhodné vytvářet tak, aby se při vkládání nových záznamů automaticky kontrolovala určitá pravidla. To zajistí nastavení referenční integrity.
Pro příklad k této kapitole potřebujete databázi access_referencni_integrita.accdb.
NahoruVytvoření relace s referenční integritou
Relace mezi tabulkami typu 1:N, vytvářené nástrojem Relace, je zpravidla vhodné vytvořit tak, aby se mezi vkládanými záznamy prováděla automatická kontrola. To provedete tak, že relaci vytvoříte s referenční integritou:
- Zobrazte okno relací (tlačítkem Relace na kartě DATABÁZOVÉ NÁSTROJE ve skupině Relace) a zařaďte do něj potřebné tabulky.
- Pomocí myši přetáhněte spojovací pole z jedné tabulky do druhé. Nezáleží na tom, jestli přetáhnete pole z hlavní tabulky (strana 1) do podřízené tabulky (strana N) nebo naopak.
- V zobrazeném okně označte volbu Zajistit referenční integritu.
- Potvrďte tlačítkem Vytvořit.
Relace s vytvořenou referenční integritou má zobrazen symbol jedničky u hlavní a symbol nekonečna (∞) u podřízené tabulky.
Referenční integritu můžete u relace vytvořit i dodatečně: otevřete okno relací, poklepejte na spojnici obou tabulek a v okně pro nastavení relace proveďte potřebnou úpravu.
Vytvoření relace s referenční integritou vyžaduje splnění následujících podmínek:
- Propojovací pole na straně hlavní tabulky musí být primárním klíčem.
- Propojovací pole musí být stejného datového typu.
- Propojovací pole musí mít stejnou délku (není např. možné spojit číselná pole „celočíselný“ a „dlouhý celočíselný“).
- Pokud jsou již tabulky naplněny hodnotami, v podřízené tabulce se nesmí vyskytovat záznam, jehož hodnota propojovacího pole není v nadřízené tabulce.
Relace s vytvořenou referenční integritou provádí vzájemnou kontrolu hodnot v propojovacích polích u obou tabulek:
Operace
|
Nadřízená tabulka
|
Podřízená tabulka
|
Vkládání záznamu
|
Bez omezení
|
Hodnota v propojovacím poli musí již existovat v nadřízené tabulce
|
Přepis propojovacího pole
|
Je možný pouze tehdy, jestliže v podřízené tabulce není odpovídající záznam
|
Hodnota v propojovacím poli musí již existovat v nadřízené tabulce
|
…