dnes je 21.12.2024

Input:

Access 2013: Referenční integrita a záznamy v kaskádě

26.6.2015, , Zdroj: Verlag Dashöfer

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.

Vytvoř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:

  1. 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.
  2. 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.
  3. V zobrazeném okně označte volbu Zajistit referenční integritu.
  4. 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:

  1. Propojovací pole na straně hlavní tabulky musí být primárním klíčem.
  2. Propojovací pole musí být stejného datového typu.
  3. Propojovací pole musí mít stejnou délku (není např. možné spojit číselná pole „celočíselný“ a „dlouhý celočíselný“).
  4. 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

Nahrávám...
Nahrávám...