Graduately/content/programove-vybaveni/3-rocnik/02-access-tabulky.md
pepaskopec-blip 264f4a73d8 Open software as four years from Windows and Office to policy.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-11 19:25:48 +02:00

3.2 KiB


id: sw-3-access-tabulky nazev: Access: tabulky a vztah popis: Automatické číslo, cizí klíč a vztah 1:N bez kaskády. nazev_cviceni: Kvíz: Access nadpis_kvizu: Vyberte typ klíče a kaskádu

Výklad

Soubor

accdb

  • Databáze Accessu je jeden soubor accdb. Jmenuje se evidence.accdb.
  • Tabulku založíte v návrhovém zobrazení, ne jen v datovém listu. V návrhu je vidět typ.
  • Tabulka tridy má pole id a nazev. Tabulka zaci má id, jmeno, prijmeni a trida_id.
  • Název pole je bez mezery a bez diakritiky: trida_id. Popisek pro lidi se dá nastavit zvlášť.

Tip: Datový list je na zapisování řádků. Typ pole se mění v návrhu. Když už v tabulce data jsou, změna typu může selhat.

Klíče

Automatické číslo

  • id je typ Automatické číslo a je to primární klíč. Access ho doplňuje sám: 1, 2, 3.
  • trida_id je typ Číslo, dlouhé celé číslo. Není to automatické číslo. Píšete ho vy, nebo ho vybere vztah.
  • nazev, jmeno a prijmeni jsou Krátký text. Délka 50 stačí.
  • Dva primární klíče v jedné tabulce školního cvičení nejsou. Stačí id.

Tip: Když trida_id necháte jako text, vztah na číselné id třídy Access odmítne. Typy obou konců musí sedět.

Vztah 1:N

Bez kaskády

  • Jedna třída má víc žáků. Žák má jednu třídu. To je vztah 1:N.
  • Ve vztazích přetáhnete tridy.id na zaci.trida_id.
  • Zaškrtněte vynucení referenční integrity. Žák se nesmí odkázat na třídu, která neexistuje.
  • Kaskádové odstranění nechte vypnuté. Smazání třídy by jinak smazalo i žáky.

Tip: Na straně tridy je jednička, na straně zaci je znak nekonečna. Když je to obráceně, táhli jste vztah špatným směrem.

Zadání: evidence.accdb

Cvičení

  • Založte evidence.accdb s tabulkami tridy a zaci podle návrhu.
  • Vložte třídy 1.A a 1.B. Vložte Annu Novákovou s trida_id třídy 1.A a ještě dva žáky.
  • Vztah 1:N s referenční integritou, bez kaskádového odstranění.
  • Zkuste uložit žáka s trida_id 99. Access ho má odmítnout. Pak to číslo vraťte na platnou třídu.

Tip: Když jde uložit trida_id 99, integrita není zapnutá. Otevřete vztahy a vztah vytvořte znovu.

Kvíz

Jaký typ má id žáka?

  • Krátký text, který píšete ručně
  • Automatické číslo a primární klíč
  • Ano/ne
  • Dlouhý text s celým jménem třídy

Automatické číslo žák nedoplňuje. Access ho dá samo a v tabulce se neopakuje.

Jaký typ má trida_id?

  • Automatické číslo
  • Číslo, dlouhé celé číslo
  • Datum
  • Ano/ne

Je to cizí klíč na id třídy, které je taky číslo. Automatické číslo by si vymýšlelo vlastní hodnoty.

Co dělá referenční integrita?

  • Smaže žáky při smazání třídy
  • Nedovolí žáka s třídou, která neexistuje
  • Schová tabulku
  • Převede accdb na xlsx

Odkaz musí vést na skutečný řádek. Třída 99 bez řádku v tridy projít nemá.

Proč nechat kaskádové odstranění vypnuté?

  • Access ho neumí
  • Smazání třídy by smazalo i její žáky
  • Jinak nejde uložit accdb
  • Kvůli Excelu

Třída a žáci jsou různá data. Smazat třídu omylem a přijít o žáky je špatná pojistka pro školní cvičení.