4.3.4. Okno tvorby struktury tabulky

Tvorbu nové tabulky vyvoláme činností menu File-New nebo stiskem tlačítka New, viz obr.13. Na obr. 18 je zobrazeno celé prostředí programu při tvorbě tabulky, a již jsme tabulku vytvořili samostatně nebo využili služeb průvodce (Wizard). V horní části menu je lišta s tlačítky pro rychlou volbu často používaných operací (Toolbar). Pod ní je ukázka obsahu tabulky a v dolní části vlastní okno pro tvorbu obsahu nové tabulky (New) nebo úpravy její struktury (Design).

Tvorba struktury tabulky

Obr. 18. Tvorba struktury tabulky

Jednotlivé řádky představují popis hlavních vlastností jedné položky tabulky. Tato položka bude posléze tvořit jeden sloupec tabulky. Hlavní vlastnosti jsou :

Field Name

-

jméno položky, různé položky tabulky musí mít různá jména. Jméno může mít délku až 64 znaků a smí obsahovat i mezery. Protože na položky se budeme odkazovat dále v dotazech a programech je lepší, když mezery neobsahují.

Data Type

-

datový typ položky. Volí se výběrem z nabídky.

Description

-

Doprovodný text, který se vypisuje na dolní řádek programu při zadávání obsahu položky. Je velmi vhodnou pomůckou při práci s tabulkou.

V dolní části okna jsou zobrazeny ostatní vlastnosti položek a nápověda pro právě prováděný krok práce. Množina vlastností se liší podle použitého datového typu. Nyní si vysvětlíme všechny :

Field Size

-

velikost položky (počet znaků pro textová data).

Format

-

formát zobrazení. Volí se z nabídky možností.

Input Mask

-

vstupní maska. Pro její tvorbu je vhodné využít průvodce (Builder). Otevřeme ho tlačítkem se třemi tečkami napravo od vlastnosti.

Decimal Places

-

počet desetinných míst, platí jen pro numerická data.

Caption

-

záhlaví, používá se při automatickém definování formulářů a sestav. Použije se pro popis položky v záhlaví tabulky apod.

Default Value

-

standardně dosazovaná hodnota do položky nového záznamu.

Validation Rule

-

předpis pro kontrolu korektnosti zadání. Např. v adresáři osob musí mít každá osoba naplněnu položku Jméno, zadáme : Is Not Null (není prázdná hodnota), měsíc narození musí být v rozsahu 1 ÷ 12, zadáme : >0 And <13,

Validation Text

-

text, kterým se hlásí, že došlo k zadání nesprávné hodnoty. Měl by obsahovat rozumné vysvětlení, jaká hodnota je správná a proč.

Required

-

nastavení nutnosti zadat položku při editaci.

Allow Zero Length

-

nastavení, zda jsou přípustné položky mající prázdný obsah (hodnota NULL).

Indexed

-

Zadáváme, zda má být tabulka indexována podle této položky. Současně se určuje, zda má být kontrolována jedinečnost hodnot (No Duplicates).

Použití jednotlivých vlastností položek je velmi přehledné a nebude jistě činit žádné problémy. Nyní uvedeme použitelné velikosti položek numerického typu a formáty zobrazení (Přesné zobrazení závisí na nastavení parametrů Windows)..

Velikosti číselných dat

Velikost (Field Size)

rozsah

počet des. míst

paměové nároky

Byte

0 ÷ 255

nejsou

1 Byte

Integer

-32 768 ÷ 32 767

nejsou

2 Byte

Long Integer

-2 147 483 648 ÷ 2 147 483 647

nejsou

4 Byte

Single

-3.4x1038 ÷ 3.4x1038

7

4 Byte

Double

-1.797x10308 ÷ 1.797x10308

15

8 Byte

Formáty číselných dat

Formát (Format)

hodnota

bude zobrazena

General Number

1234.5

1234.5

Currency

1234.5

1,234.50 Kč

Fixed

1234.5

1235

Standard

1234.5

1,234.50

Percent

0.824

82.40%

Scientific

1234.5

1.23E+03

Formáty datumových a časových dat

Formát (Format)

bude zobrazen

General Date

31.1.93 4:34:50 PM

Long Date

31 January 1993

Medium Date

31-Jan-93

Short Date

31.1.1993

Long Time

4:34:50 PM

Medium Time

04:34 PM

Short Time

16:30

Formáty logických hodnot

Logické hodnoty jsou prezentovány textem. K dispozici je několik variant :

Yes/No, True/False, On/Off, není-li určen formát, zobrazí se -1/0.

Pokud se nám nelíbí systémové formáty, můžeme definovat vlastní, uživatelský formát (Custom Format). Například :

Formát (Format)

hodnota

bude zobrazena

"č.j. " 0000

123

č.j. 0123

Mmmm yyyy

31-Jan-1993

Jan 1993

hhmm "hodin"

4:34 PM

1600 hodin

Globální vlastnosti tabulky

Tabulka může mít nastaveno několik globálních vlastností (Table Properties z menu View). Když je vyvoláme, objeví se okno viz obr. 19. V něm můžeme zadat společný předpis pro kontrolu korektnosti vložených dat. Musíme si však uvědomit, že toto nastavení je určeno pro kontrolu celého záznamu, tedy vzájemného vztahu položek. Např. pokud chceme, aby alespoň jedna ze dvou položek byla naplněna, napíšeme :

Not(IsNull([Jméno])) Or Not(IsNull([Příjmení])).

Globální vlastnosti tabulky

Obr. 19. Globální vlastnosti tabulky

Práce s indexy

Jestliže budeme chtít podle některé položky vyhledávat hodnoty v tabulce, je dobré aby byla tato položka indexována (v programu při použití metody Seek musí být indexována). Pojmem index se zde rozumí především sekundární klíč. Access si vytvoří pomocný soubor hodnot v této položce a umožní vyhledávání. Pokud chceme vytvořit složené indexy, např. podle příjmení a jména, musíme vytvořit složený klíč. K tomu slouží okno pro práci s indexy, které vidíme na obr. 18 vpravo dole. Jednotlivé řádky obsahují hlavní informace o klíči :

Index Name

-

jméno klíče, pod kterým se index bude nastavovat v programu.

Field Name

-

jméno položky klíče. Jeden klíč může obsahovat až 10 položek, jsou uvedeny na jednotlivých řádcích pod společným názvem klíče.

Sort Order

-

způsob řazení položek v klíči. Implicitní je vzestupné (Ascending), lze nastavit také sestupné (Descending).

Jak vidíme, není problém vytvořit složený klíč. A to jak sekundární, tak primární. V dolní části okna jsou vlastnosti jednotlivých položek tvořících klíč :

Primary

-

zda je položka součástí primárního klíče.

Unique

-

zda budou akceptovány pouze unikátní hodnoty v položce.

Ignore Nulls

-

zda budou zanedbány prázdné hodnoty (NULL).

4.3.5. Určení primárního klíče

Každá tabulka musí být seřazena podle některé položky. Tato položka (nebo skupina položek) přitom musí mít jedinečné hodnoty (unikátní), aby bylo seřazení vůbec možné. Tyto položky se označí jako primární klíč (Primary Key). V okně pro tvorbu tabulky budou označeny malým klíčem na levém okraji. Ne vždy takovou položku v tabulce máme. Např. v adresáři osob se mohou vyskytovat jak stejná jména, tak stejná příjmení apod. Proto Access definuje typ položky Counter. Tato položka má stejný význam jako číslo záznamu u starších databází. Implicitně se označuje ID. Pokud uložíme hotovou strukturu tabulky bez primárního klíče, nabídne program vytvoření položky ID typu Counter pro primární klíč.

Pokud chceme využít pro primární klíč některou svoji položku (např. v tabulce Tkalendář je vhodná položka Jméno, žádné křestní jméno se v kalendáři nebude opakovat), pak při vyhledávání pomocí metody Seek bude mít klíč implicitní název "PrimaryKey". Metoda je popsána v kapitole Microsoft Access Basic.

Připojení neviditelných sloupců tabulky

Obr. 20. Připojení neviditelných sloupců tabulky

4.4. Práce s tabulkou

Jakmile je definována struktura tabulky, můžeme pracovat s jejími hodnotami. Zobrazení otevřené tabulky (Open Table nebo View-Datasheet) je na obr. 18 v horní polovině. Obsah menu se oproti tvorbě tabulky výrazně liší u činností File a Edit, ostatní tedy neuvádíme. Kromě toho obsahuje menu nové položky Format a Records.

4.4.1. Menu File

New

>

-

vytvoření nového objektu, následně je nabídnut seznam tříd objektů.

Close

 

-

uzavření aktuálního objektu.

Save Table

Ctrl+S

-

uložení parametrů záhlaví tabulky.

Save Record

Shift+Enter

-

uložení zpracovaného záznamu.

Output To...

 

-

výstup tabulky do určeného formátu (*.XLS, *.RTF, *.TXT).

Print Setup...

 

-

nastavení parametrů pro tisk.

Print Preview

 

-

ukázka, jak bude vypadat tisk zvoleného objektu na tiskárně.

Print...

 

-

tisk objektu. Nejprve se nastaví parametry pro tiskárnu.

Send

 

-

vyslání objektu elektronickou poštou ve standardu MAPI.

Run Macro...

 

-

spuštění některého z hotových maker (objekt třídy makro, tvorba bude popsána později).

Add-ins

>

-

připojení doplňkových programových možností. Jsou definovány v inicializačním souboru .INI.

Exit

 

-

opuštění programu Microsoft Access.

Naplnění OLE objektu

Obr. 21. Naplnění OLE objektu

4.4.2. Menu Edit

Undo

Ctrl+Z

-

zrušení poslední operace.

Undo Current Field

Esc

-

zrušení operace na aktuální položce (je možné pouze do té doby, než je záznam uložen).

Cut

Ctrl+X

-

přesun označené oblasti do pomocné paměti (Clipboard).

Copy

Ctrl+C

-

kopie označené oblasti do pomocné paměti.

Paste

Ctrl+V

-

kopie obsahu pomocné paměti ke kurzoru.

Paste Special...

 

-

zvláštní způsoby kopírování dat (změna typu apod.).

Paste Append

 

-

pokud máme v pomocné paměti uložen nějaký záznam, zkopíruje ho do nového záznamu (nových záznamů).

Delete

Del

-

zrušení označené oblasti.

Select Record

 

-

označení aktuálního záznamu.

Select All Records

Ctrl+A

-

označení všech záznamů.

Find...

Ctrl+F

-

vyhledávání hodnoty.

Replace...

Ctrl+R

-

vyhledávání hodnoty a náhrada novou hodnotou.

Insert Object...

 

-

naplnění OLE objektu, otevře nabídku viz obr. 21. Činnost je přístupná pouze tehdy, pokud je kurzor na položce typu OLE.

Links...

 

-

vložení hodnoty, která bude přebírána z jiného programu, např. z tabulky Microsoft Excell. Pokud je zdrojový program v paměti, pak se změna hodnoty ihned přenese na místo v databázi (pokud je také v paměti).

Object

>

-

operace s OLE objektem, jeho editace apod.

4.4.3. Menu Format

Font...

-

nastavení typu písma pro záhlaví tabulky.

Row Height...

-

nastavení výšky řádku.

Column Width...

-

nastavení šířky sloupce (platí pro aktuální nebo označené sloupce).

Hide Columns

-

"deaktivování" aktuálního sloupce. Sloupec nebude vidět.

Show Columns...

-

připojení neviditelných sloupců, viz obr. 20.

Freeze Columns

-

"zmrazení" aktuálního sloupce. Sloupec se přesune na začátek tabulky. Při rolování po dlouhém záznamu, nebude tento sloupec mizet z obrazovky.

Unfreeze All Columns

-

zrušení "zmrazení" pro všechny sloupce.

Gridlines

-

vypnutí/zapnutí orámování jednotlivých položek.

4.4.4. Menu Records

Data Entry

 

-

v tabulce budou zobrazeny jen nově vložené záznamy.

Go To

>

-

přechod na určený záznam v tabulce (First - první, Last - poslední, Next - následující, Previous - předchozí, New - nový).

Refresh

 

-

překreslení tabulky.

Quick Sort

>

-

rychlé setřídění tabulky (Ascending - vzestupně, Descending - sestupně).

Edit Filter/Sort

 

-

vytvoření filtru pro selekci záznamů nebo jejich setřídění.

Apply Filter/Sort

 

-

použití dříve vytvořeného filtru. Filtry se ukládají jako dotazy typu Select, proto budou popsány samostatně.

Show All Records

 

-

zobrazení všech záznamů (ruší příkaz Data Entry nebo filtr).

Allow Editing

 

-

vypnutí/zapnutí povolení editovat záznamy a přidávat nové záznamy do tabulky.

4.4.5. Vlastní práce s tabulkou

Microsoft Access nabízí velmi efektivní nástroje na práci s tabulkou - formuláře, ale je možné editovat obsah tabulky také přímo v ní. Pro práci s tabulkou je dobré zkontrolovat nastavení globálních parametrů programu (Options), zejména pro klávesnici (Keyboard).

Co vše je možno provádět se záhlavím (Layout) je jasné z popisu menu Format. Jakmile upravíme záhlaví do požadovaného tvaru, můžeme ho uložit (Save Table). Přitom můžeme také měnit pořadí sloupců jejich přesouváním. Pořadí zadávání položek je vždy zleva doprava.

Při editaci záznamů si všimneme políčka před záznamem. Jakmile začneme zapisovat do některé položky, objeví se tam tužka naznačující, že záznam je měněn. Jakmile záznam opustíme, tužka zmizí, protože došlo k uložení záznamu. Nemůžeme tedy ztratit více údajů, než jeden záznam.

Problémy mohou nastat, pokud s databází pracuje současně více uživatelů. Záleží na nastavení parametrů (Options) pro víceuživatelský systém (Multiuser), pokud nastavíme povolení přepisu, pak se nám mohou hodnoty "měnit pod rukama", jak je nastavuje jiný uživatel. Navíc můžeme být překvapováni různými hlášeními, jako obr. 22. Upozorňují nás na nekorektní práci a nebezpečí ztráty údajů apod.

Data do tabulky je možno také kopírovat z jiných tabulek nebo jiných formátů činností Import. Jeho použití je velmi jednoduché. Umožňuje načíst hodnoty do existující tabulky nebo vytvořit novou tabulku.

Hlášení při kolizi zápisu hodnot ve víceuživatelském systému

Obr. 22. Hlášení při kolizi zápisu hodnot ve víceuživatelském systému

4.5. Nastavení vazeb mezi tabulkami

Při datové analýze vytvoříme řadu tabulek, mezi kterými existují různé vazby, které je nutno dodržet. Řešme ukázkový příklad spočívající ve vytvoření adresáře osob pro potřeby sledování průběhu jejich zaměstnání a hlídání jejich narozenin a svátků (Zvolený příklad je velmi jednoduchý, nemúže ukázat všechny výhody programu Microsoft Access. Jeho volba byla vedena snahou nezahltit čtenáře složitými datovými analýzami apod.).

Vytvoříme následující tabulky :

TOsoby (jména, adresy, vzdělání osob)

jméno položky

typ

velikost (Byte)

omezení

ID

Counter

4

pro primární klíč

Titul

Text

50

 

Jméno

Text

15

 

Příjmení

Text

50

 

Datum

Date/Time

4:Short Date

 

Obor

Text

50

 

Stupeň

Numeric

2:Integer

 

TMísta (zaměstnání osob)

jméno položky

typ

velikost (Byte)

omezení

ID

Counter

4

pro primární klíč

Osoba

Numeric

4:Long

 

Místo

Text

50

 

Nástup

Date/Time

4:Short Date

 

Odchod

Date/Time

4:Short Date

 

TKalendář (jména v kalendáři a určení, kdy slaví svátek)

jméno položky

typ

velikost

omezení

Jméno

Text

15

 

Den

Number

Integer

>0 And <32

Měsíc

Number

Integer

>0 And <13

ID

Counter

 

Pro primární klíč

SMěsíce (číslo měsíce a jeho český název)

jméno položky

typ

velikost

omezení

Číslo

Number

Integer

>0 And <13, primární klíč

Měsíc

Text

15

 

STituly (seznam běžných titulů před a za jménem)

jméno položky

typ

velikost

omezení

Titul

Text

50

pro primární klíč

SMísta (seznam jednotlivých míst)

jméno položky

typ

velikost

omezení

Místo

Text

50

pro primární klíč

SObory (seznam jednotlivých oborů činnosti)

jméno položky

typ

velikost

omezení

Obor

Text

50

pro primární klíč

Abychom mohli při zadávání jmen do kalendáře zobrazovat ihned také český název měsíce, propojíme tabulky TKalendář a SMěsíce vazbou (Relationship). Při listování jednou tabulkou se bude automaticky nastavovat příslušná položka v druhé tabulce. Na tomto místě pomíjíme, že totéž je možno zajistit při definici dotazu (Query), jak bude popsáno v následující kapitole. Pokud vytvoříme vazbu mezi tabulkami, pak se tato vazba přenáší do dotazu automaticky. Její změna je samozřejmě možná.

Vazba se nastavuje z jedné tabulky (hlavní) do druhé (vedlejší, podřízené). Vazba se provádí vždy podle primárního klíče první tabulky. K němu přiřadíme vhodnou položku druhé tabulky, viz obr. 23. Lze nastavit vazby dvojího typu :

1 : 1

-

každá hodnota položky má vazbu na jedinou hodnotu položky podřízené tabulky,

1 : N

-

každá hodnota položky může mít vazbu na více hodnot položky podřízené tabulky.

Vazbu typu M : N nelze přímo vytvořit. Je nutno použít pomocnou tabulku, která zprostředkuje vztahy mezi položkami. Např. vedeme evidenci odběratelů. Každý odběratel odebírá nějakou druhovou skladbu výrobků. Přitom je možné, aby jeden druh výrobku odebíral od více dodavatelů. Mezi odběrateli a výrobky tedy platí vazba typu M : N. Vytvoříme ji zavedením pomocné tabulky dodavatelů anastavením vazeb :

Odběratelé (1 : N) Dodavatelé, Dodavatelé (1 : N) Výrobky.

Nastavení vazeb mezi tabulkami

Obr. 23. Nastavení vazeb mezi tabulkami

Nastavení vazeb mezi tabulkami je důležité pro následnou tvorbu formulářů a sestav. V kapitole Normalizace a její význam jsme zdůrazňovali, že tabulky je nutno tvořit tak, aby neobsahovaly zbytečně duplicitní hodnoty a zdůvodňovali, že je vhodné, aby byly ve třetí normální formě. Ta je vhodná pro uložení informací. Pro práci s informacemi je naopak vhodná první normální forma, která vzniká operací spojení z jednoduchých tabulek. Budeme tedy určitě vytvářet dotazy, které budou poskytovat sdružené informace. Aby bylo možno editovat záznamy a přidávat nové záznamy v dotazu, je vhodné, aby byla předem nastavena správná vazba mezi spojovanými tabulkami.

Výsledkem dotazu je virtuální tabulka (v programu označovaná Dynaset). Umožňuje při vazbě :

1 : 1

-

v obou propojených tabulkách lze editovat, přidávat i rušit záznamy,

1 : N

-

jen na straně N (many) lze editovat záznamy, přidávat záznamy nelze, zrušení záznamu se projeví jen na straně N (např. zrušení všech záznamů v dotazu zruší všechny záznamy na straně N, na straně 1 zůstane tabulka beze změny).

M : N

-

editace a přidávání není možné.

Na obr. 23 v pravé dolní části vidíme okno s nastavením konkrétní vazby mezi tabulkou TOsoby a TMísta. Především jsou to názvy položek, které tvoří vazbu. V dolní části je nastavení druhu vazby (1:1, 1:N - druh je naznačen hodnotami u položek tvořících vazbu) a způsobu kontroly integrity databáze. Je možno určit :

Cascade Update Related Fields - při změně obsahu položky v hlavní tabulce (první) budou změněny i hodnoty odpovídajících položek v podřízené (druhé),

Cascade Delete Related Records - při zrušení záznamu hlavní tabulky (první) budou zrušeny i odpovídající záznamy podřízené (druhé).

Poslední možností je určení způsobu spojení. Tlačítko Join Type otevře nabídku možností viz obr. 24. Nabízí nám spojení přes rovnost, levé -polospojení a pravé -polospojení. Polospojení jsou naznačena šipkou na vazbě vedoucí z tabulky, jejíž záznamny budou připojeny vždy, do druhé tabulky, jak vidíme na obr. 23.

Volba způsobu spojení tabulek

Obr. 24. Volba způsobu spojení tabulek


Návrat k obsahu