RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by...

54
RNDr. Vladimír Nemčko 2006

Transcript of RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by...

Page 1: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko

2006

Page 2: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

- 2 -

Obsah Úvod ........................................................................................................................................... 3 Databáza ..................................................................................................................................... 4

Prečo Excel nestačí? ............................................................................................................................ 4 Prepojenie tabuliek .............................................................................................................................. 5

Úvod do teórie o databázach, základné pojmy ........................................................................... 6 Hierarchické databázové systémy ....................................................................................................... 6 Relačné databázové systémy ............................................................................................................... 6 Údajové typy ....................................................................................................................................... 6

Údajové typy jazyka SQL ............................................................................................................................. 7 Systémy riadenia bázy dát ................................................................................................................... 7 Dopyt a dopytovacie jazyky ................................................................................................................ 8 Jazyk SQL ........................................................................................................................................... 9

Základy jazyka SQL - príkazy ....................................................................................................................... 9 DDL - Data Definition Language .................................................................................................................. 9 DML – Data Manipulation Language .......................................................................................................... 10

Štruktúra databázy ............................................................................................................................. 12 Relácie 1 : 1 ................................................................................................................................................. 13 Relácia 1 : N ................................................................................................................................................ 13 Relácia M : N .............................................................................................................................................. 13

Databáza v MS Access ............................................................................................................. 14 Ovládacie prvky MS Access ............................................................................................................. 14

Spustenie programu ..................................................................................................................................... 14 Hlavné okno aplikácie ................................................................................................................................. 15 Príkazy ......................................................................................................................................................... 15

Vytvorenie databázy ......................................................................................................................... 16 Vytvorenie databázy pomocou sprievodcu .................................................................................................. 16 Vytvorenie prázdnej databázy ..................................................................................................................... 21

Objekty databázy ............................................................................................................................... 22 Príklad databázy ................................................................................................................................ 22

Návrh tabuliek (v príklade).......................................................................................................................... 22 Vytvorenie tabuliek ..................................................................................................................................... 24

Vytvorenie tabuľky pomocou sprievodcu ............................................................................................... 24 Ručné vytvorenie tabuľky v návrhovom zobrazení ................................................................................ 27 Vytvorenie tabuľky v zobrazení údajové listu ........................................................................................ 30

Vytvorenie relácií medzi tabuľkami ............................................................................................................ 30 Vytvorenie tabuľky PozicaneUc ............................................................................................................. 35

Údajový list tabuľky ......................................................................................................................... 35 Import údajov.......................................................................................................................................... 36 Zobrazenie vnoreného údajového listu ................................................................................................... 36 Vyhľadávanie záznamov ........................................................................................................................ 37 Triedenie údajov ..................................................................................................................................... 37

Formuláre .......................................................................................................................................... 37 Výber údajov – filtre ......................................................................................................................... 40 Dopyty ............................................................................................................................................... 41

Vytvorenie dopytov pomocou sprievodcu ................................................................................................... 42 Vytvorenie dopytov v návrhovom zobrazení............................................................................................... 43

Filtrovanie v dopyte ................................................................................................................................ 44 Výpočty v tabuľkách ............................................................................................................................... 45 Súhrny v dopytoch .................................................................................................................................. 47 Príklad (učebnice na sklade) ................................................................................................................... 48

Dopyty v Accessu a SQL príkazy ..................................................................................................... 49 Zostavy .............................................................................................................................................. 50 Publikovanie údajov údajovou stránkou .......................................................................................... 53

Použitá literatúra ...................................................................................................................... 54

Page 3: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 3 -

Úvod Jednou z oblastí využívania počítačov v praxi je práca s informáciami, ich získavanie, uchovávanie, spracúvanie a šírenie. Ak si uvedomíme rozloženie a podiel praktického využívania počítačov na spracovávanie informácií, asi nebudeme ďaleko od pravdy pri tvrdení, že podstatná časť počítačov je v súčasnosti využitá na spracovanie údajov organizovaných v databázach.

S organizáciou údajov, ktorú z dnešného pohľadu charakterizujeme slovom databáza sa ľudia zaoberali aj v dobách, keď ešte žiadne počítače neexistovali. Vtedy sa všetky údaje museli uchovávať napríklad na papierových hárkoch, ktoré v skupine predstavovali klasické kartotéky. Môžeme teda povedať, že kartotéky boli vlastne takými prvými databázami. Ak bolo potrebné v kartotékach nájsť požadovaný údaj, neostávalo nič iné, než ručne vyhľadať príslušný hárok papiera a údaj z neho opísať. Všetci si vieme predstaviť, ako bolo takéto spracovanie údajov zdĺhavé a nepohodlné. Využitím počítačov sa toto všetko zázračne zrýchlilo a zjednodušilo.

S vývojom softvérov na spracovávanie databáz sa vyvíjali aj príslušné algoritmy. V súčasnosti môžeme konštatovať, že popri skutočne rozšírenej škále systémov s danými programovacími jazykmi na prácu s databázami, existuje ustálená teória o základných algoritmoch na spracovanie údajov v databázach. Ide napríklad o postupy triedenia, vyhľadávania údajov, filtrovanie databáz, ich zakladanie, či vyhodnocovanie údajov v nich obsiahnutých z rôznych hľadísk. V nasledujúcom texte čitateľ nájde okrem popísania základných poznatkov o databáze a spôsobov jej spracovania aj popis práce s databázou v aplikácii MS Access 2003.

Page 4: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 4 -

Databáza Bez nárokov na precíznosť a presnosť definície tohto pojmu môžem povedať, že databáza je určitá skupina údajov príslušných pre danú oblasť. Najvýhodnejší spôsob usporiadania údajov, ktoré popisujú vlastnosti daného prvku sa v praxi ukazuje zápis do tabuľky. Každý riadok tabuľky patrí vybranému prvku a v stĺpcoch tabuľky sa nachádzajú údaje o jeho vlastnostiach. Napríklad keď potrebujeme zapísať údaje o žiakoch triedy, každý riadok tabuľky bude obsahovať údaje o jednom žiakovi, napríklad jeho priezvisko, meno, dátum narodenia, bydlisko, rodné číslo, číslo žiaka ako jedinečný prvok na jeho identifikáciu a podobne.

Ako klasický príklad uvediem s obľubou používaný súpis údajov o zákazníkoch a objednávkach. V nasledujúcej tabuľke je záznam objednávok tovaru zákazníkmi.

ČísloObjednávky NázovTovaru PočetKusov CenaZaKus CenaCelkom Priezvisko Meno 1 Lopta červená 2 050 Sk 100 Sk Prvý Janko 4 Šijací stroj 1 5 300 Sk 5 300 Sk Prvý Janko 3 Lopta červená 3 050 Sk 150 Sk Druhý Jožo 6 Lopta červená 4 050 Sk 200 Sk Druhý Jožo 2 Metla 7 025 Sk 175 Sk Tretia Eva 7 Šijací stroj 1 5 300 Sk 5 300 Sk Tretia Eva 5 Pílka malá 3 125 Sk 375 Sk Štvrtý Štefan

Na základe popisu v predchádzajúcom texte môžeme začať uvažovať o uplatnení aplikácie MS Excel. Veď je to pomerne dobrý software na prácu s tabuľkami. Môžeme v ňom pohodlne tabuľky vytvoriť, ba dokonca veľmi jednoducho v tejto aplikácii vieme robiť výpočty, prípadne aj pomerne zložité vyhodnocovania údajov nachádzajúcich sa v tabuľke. Mohli by sme dôjsť k predčasnému (a hneď aj zdôrazním nesprávnemu) záveru, že na prácu s databázami nám postačí táto aplikácia. Prečo na spracovanie databáz MS Excel nestačí si ukážeme na jednoduchom príklade.

Prečo Excel nestačí? Vidíme, že v rôznych objednávkach sa môžu vyskytovať aj tí istí zákazníci, pretože si daný tovar kúpili viackrát v časovom slede. Pri tvorbe tejto tabuľky, ktorá má zaznamenať prehľad o objednávkach daného tovaru a zákazníkoch, ktorí si tovar zakúpili, v programe MS Excel sa môžeme veľmi ľahko pomýliť a vytvoríme napríklad tabuľku

ČísloObjednávky NázovTovaru PočetKusov CenaZaKus CenaCelkom Priezvisko Meno 1 Lopta červená 2 050 Sk 100 Sk Prvý Janko 4 Šijací stroj 1 5 300 Sk 5 300 Sk Prvý Janko 3 Lopta červená 3 050 Sk 150 Sk Druhý Jožo 6 Lopta červená 4 050 Sk 200 Sk Druhý Jožko 2 Metla 7 025 Sk 175 Sk Tretia Eva 7 Šijací stroj 1 5 300 Sk 5 300 Sk Tretia Eva 5 Pílka malá 3 125 Sk 375 Sk Štvrtý Štefan

Ako vidíme, v nej sme namiesto mena „Jožo“ v objednávke číslo 6 napísali meno „Jožko“. Ak by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov „Druhý Jožo“ a „Druhý Jožko“ vyhodnotil ako dvoch rôznych zákazníkov, čo sme pri tvorbe záznamu údajov - databázy o objednávkach asi nechceli urobiť. Pri používaní Excelu by sme

Page 5: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 5 -

sa mohli stretnúť aj zo závažnejším nedostatkom: V tabuľke o objednávkach by mohli údaje o zákazníkoch obsahovať aj adresu zákazníka. Predstavme si, že by sme chceli mať tabuľku o objednávkach stále aktuálnu. Ak by niektorý zo zákazníkov zmenil svoju adresu, museli by sme jeho adresu opravovať vo všetkých riadkoch tabuľky, kde sa nachádza jeho záznam o objednávke.

Opísané nedostatky pri spracovávaní údajov databázy v jednej tabuľke môžu vyvolať ešte nepríjemnejšie dôsledky. Ak by sme v našom obchode s tovarom, vnímali zákazníkov ako osobitnú skupinu údajov, pri pomýlení sa v mene zákazníka by naša tabuľka o objednávkach veľmi utrpela na vierohodnosti. Priradila by tovar neexistujúcemu zákazníkovi. Cudzím slovom tomuto hovoríme narušenie integrity databázy.

Z tohto dôvodu MS Excel je potrebné ponechať tým, ktorí sa zaoberajú spracovávaním tabuliek. Pri práci s databázami bude potrebné siahnuť po iných programoch.

Prepojenie tabuliek Vzniku takýchto nepríjemných situácií, ktoré si vyžadujú pre udržanie aktuálnosti údajov časovo náročné úpravy (tiež možnosť zanesenia ďalších chýb), sa vyhneme zavedením inej štruktúry týchto údajov. Našu tabuľku o objednávkach môžeme rozdeliť na dve tabuľky: Tabuľku o zákazníkoch a tabuľku o objednávkach.

Týmto rozdelením sa zrejme vytvoril väčší prehľad v údajoch. Napríklad v tabuľke Zákazníci každý jej riadok predstavuje záznam o údajoch zákazníka. Konkrétny údaj o zákazníkovi je v stĺpci tabuľky, ktorý zvykneme nazývať aj pole.

V tabuľke Objednávky identifikujeme zákazníka jedným poľom, ktoré obsahuje číslo zákazníka. V tomto prípade musíme zabezpečiť, aby číslo zákazníka bolo jedinečné (nemôžu mať dvaja zákazníci to isté číslo). Pri takejto štruktúre údajov nemôže dôjsť k omylu pri písaní mena zákazníka a keby zákazník zmenil adresu, opravíme ju len na jednom mieste v tabuľke Zákazníci, pričom aktuálnosť údajov o objednávkach bude zachovaná.

Tento príklad ilustruje relačnú databázu. Relačná databáza obsahuje údaje umiestnené vo viacerých tabuľkách, ktoré sú navzájom prepojené pomocou polí. Naše obidve tabuľky obsahujú pole o zákazníkoch, prostredníctvom ktorých sa navzájom prepojili záznamy v týchto tabuľkách. Pri takomto prepojení tabuliek potom už nie je problém vypísať napríklad

Page 6: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 6 -

komplexnú tabuľku o objednávkach, ktorá bude obsahovať pole s názvom tovaru a namiesto čísla zákazníka jeho meno, prípadne aj všetky údaje o zákazníkovi.

S relačnými databázami môžeme pracovať v rôznych aplikáciách alebo programových systémoch. Postupným vývojom vznikli viaceré druhy databáz. Klasickou databázou je dBase v rôznych verziách, ale aj Paradox. V dynamických stránkach sa v súčasnosti často využíva databáza MySQL. Prácu s databázami umožňujú špeciálne programy - databázové stroje (engine), ktoré sú umiestnené buď v programových systémoch (napríklad FoxPro, Delphi, C++), alebo na sieťových serveroch.

Správu databázy prakticky zabezpečujeme konkrétnym aplikačným programom vyvinutým v danom programovom systéme, alebo prostredníctvom vhodných aplikácií. Jednou z takýchto aplikácií je aj MS Access. Viaceré programové systémy ale umožňujú aj priamu obsluhu databáz v príslušnom programovacom jazyku, pretože prekladače jazyka sú vo väčšine interpretery (príkaz zapísaný v danom jazyku sa ihneď vykoná po jeho zadaní). Na prácu s databázami sa postupne vyvinuli aj špeciálne jazyky predstavujúce integrujúci prvok v obsluhe databáz rôznych typov, napríklad jazyk SQL.

Vzhľadom k tomu, že oblasť tvorby a spracovávania databáz je skutočne veľmi rozsiahla, v nasledujúcom texte sa dotkneme len základov charakterizujúcich stavbu relačnej databázy, spomenieme základy SQL jazyka a popíšeme si postup spravovania databázy v aplikácii MS Access.

Úvod do teórie o databázach, základné pojmy

Hierarchické databázové systémy „Starší“, hierarchický typ databázového systému sa odlišuje od relačných systémov. Štruktúra hierarchického databázového systému sa môže porovnať s výstavbou adresára pevného disku. Z hlavného adresára sa vytvárajú podadresáre, z podadresárov sa vytvárajú ďalšie podadresáre. V tejto „stromovej štruktúre“ môžeme ľubovoľne pokračovať. „Nižšia“ úroveň môže existovať iba vtedy, ak je definovaná vyššia úroveň. Tzv. smerník ukazuje na údaje, ktoré sú v určitom vzťahu k východiskovému pojmu. Hierarchická štruktúra neumožňuje jednoduché vzťahy medzi údajmi uloženými v rôznych vetvách stromu.

Relačné databázové systémy Tieto databázové systémy sa vyznačujú pevnou štruktúrou záznamu. Zjednodušene si môžeme záznamy predstaviť vo forme tabuľky, kde záznamy sú riadky tabuľky. Záznam tvoria polia, napríklad ČísloZákazníka, Priezvisko, Meno, Adresa. Veľkosť polí je pre všetky záznamy (napríklad aj 1000 zákazníkov) rovnaká. Skupina záznamov tvorí súbor - predstavovaný napríklad tabuľkou. Medzi súbormi môžeme vytvoriť spojenie prostredníctvom spoločného poľa, napríklad ČísloZákazníka (používame aj pojem primárny kľúč - primary key). Ak druhá tabuľka databázy bude predstavovať súbor platieb, ktorý obsahuje polia ČísloZákazníka, Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou spoločného poľa ČísloZákazníka. Toto pole z druhej tabuľky sa nazýva aj cudzí kľúč. Platí, že cudzí kľúč v jednej tabuľke býva primárnym kľúčom v inej tabuľke.

Údajové typy Podľa predchádzajúceho odseku každý riadok tabuľky prestavuje záznam zložený z polí. Pretože v poliach môžu byť rôzne údaje, napríklad text, číslo, dátum a pod., priraďujeme ku každému poľu jeho typ. V rôznych databázových systémoch môžu byť rôzne údajové typy polí. V nasledujúcej tabuľke sú uvedené typy polí jazyka SQL a MS Access.

Page 7: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 7 -

Údajové typy jazyka SQL Údajoý typ Veľkosť

pri uložení Popis

BINARY 1 bajt na znak

V poliach s týmto typom je možné ukladať ľubovoľný typ údajov.

BIT 1 bajt Hodnoty Yes a No a pole obsahujúce len tieto dve hodnoty. TINYINT 1 bajt Celočíselná hodnota medzi 0 a 255. MONEY 8 bajtov Rozšírené celé číslo medzi

-922 337 203 685 477,5808 a 922 337 203 685 477,5807. DATETIME (viz DOUBLE)

8 bajtov Hodnota určujúca dátum alebo čas medzi roky 100 a 9 999.

UNIQUEIDENTIFIER 128 bitov Jedinečné identifikační číslo používané pri vzdialenom volaní procedúr. REAL 4 bajty Hodnota s jednoduchou presnosťou a plávajúcou desatinnou čiarkou v

rozmedzí od -3,402823E38 do -1,401298E-45 pre záporné hodnoty, od 1,401298E-45 do 3,402823E38 pre kladné hodnoty a hodnota 0.

FLOAT 8 bajtov Hodnota s dvojitou presnosťou a plávajúcou desatinnou čiarkou v rozmedzí od -1,79769313486232E308 do -4,94065645841247E-324 pre záporné hodnoty, od 4,94065645841247E-324 do 1,79769313486232E308 pre kladné hodnoty a hodnota 0.

SMALLINT 2 bajty Krátke celé číslo medzi -32 768 a 32 767 INTEGER 4 bajty Dlhé celé číslo medzi -2 147 483 648 a 2 147 483 647 (pozri

poznámky). DECIMAL 17 bajtov Presný číselný údajový typ pre ukladanie hodnôt od 1028 - 1 do - 1028 -

1. TEXT 2 bajty na

znak Nulová až maximálna veľkosť 2,14 gigabajtov.

IMAGE Podľa potreby

Nulová až maximálna veľkosť 2,14 gigabajtov. Tento typ sa používa pre objekty OLE.

CHARACTER 2 bajty na znak

Nula až 255 znakov.

Údajové typy, ktoré ponúka MS Access pri návrhu tabuľky:

Systémy riadenia bázy dát Prístup k údajom v programe môže byť v zásade dvojaký. Ak program spracováva výhradne svoje dáta (údaje), hovoríme o tzv. súborovo orientovanom prístupe, ktorý môžeme charakterizovať nevýhodami:

• Izolácia údajov - nie je možné podchytiť väzby medzi súbormi už na úrovni údajov, ale až na úrovni aplikácie

Page 8: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 8 -

• Duplicita údajov - keď niekoľko aplikácií pracuje s tými istými údajmi, každá z nich má svoju vlastnú kópiu týchto údajov.

• Závislosť údajov a programu - údaje a program sú navzájom závislé.

Druhý prístup k údajom je databázový prístup, ktorý odstraňuje nevýhody súborovo orientovaného prístupu a môžeme ho charakterizovať dvoma základnými bodmi:

• Definícia údajov je povolená mimo aplikačných programov (údaje sú uložené nezávisle na programoch).

• V aplikačných programoch nie je zabudovaný mechanizmus prístupu k údajom.

V databázovom prístupe používame pojmy:

Databáza - množina súborov so svojou stavbou, ktoré sú navzájom v určitom (logickom) vzťahu a sú pod správou systému riadenia bázy dát.

Systém riadenia bázy dát - je to programový systém (presnejšie databázový server so svojim programovým vybavením). Tento systém zaisťuje akcie a činnosti:

• definovanie štruktúry údajov,

• ukladanie údajov,

• výber údajov,

• opravu údajov,

• komunikáciu medzi užívateľom a systémom.

V systéme riadenia bázy dát sa používajú rôzne databázové jazyky, ktoré sa rozdeľujú na:

• jazyky pre definíciu údajov - DDL (Data Definition Language), obsahujú príkazy pre vytváranie tabuliek, určovanie relácií, úpravu tabuliek, ap.,

• jazyky pre manipuláciu s údajmi - DML (Data Manipulation Language), obsahujú príkazy pre vkladanie, úpravu a mazanie údajov, atd.,

• jazyky pre ochranu údajov - DCL (Data Control Language), obsahujú príkazy pre pridelenie a zakázanie práv pre prácu s databázou.

Dopyt a dopytovacie jazyky Ak chceme získať z databázy údaje splňujúce určitú podmienku, použijeme tzv. dopyt (česky dotaz). Možnosť klásť dopyty na informácie v databáze je jedným z najsilnejších motívov pre voľbu používať databázový systém.

Databázový dopyt by mal byť nezávislý na jazykovom vyjadrení. Dopyt by nemal byť závislý tiež aj na tom, ako je databáza fyzicky usporiadaná (napríklad nemali by sme sa pýtať na šiesty záznam a pod.).

Príklad databázového dopytu pre žiakov triedy (vyjadrený prirodzeným jazykom): Z tabuľky žiaci vypíš všetkých žiakov, ktorí majú počet vymeškaných hodín menší ako 25.

Dopytovací jazyk umožňuje užívateľovi klásť databázové dopyty. Samozrejme pri zápise dopytu musíme používať príslušné príkazy a musíme dodržiavať syntaktické pravidlá.

Page 9: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 9 -

Jazyk SQL Jazyk SQL (Structured Query Language - štruktúrovaný dopytovací jazyk) je snáď najtypickejším zástupcom dopytovacieho jazyka.

Koncepcia jazyka pochádza už z roku 1974, kedy vznikla požiadavka na vytvorenie programovacieho jazyka pre databázové aplikácie, ale takého, ktorý by sa čo najviac približoval k angličtine. Preto vo firme IBM vznikol jazyk SEQUEL (Structured English Query Language). Postupne sa k tomuto štandardu pridávali ďalšie firmy (Oracle, SyBase, Informix) a tak vznikol “nepísaný štandard” databázového jazyka s názvom SQL (Structured Query Language). Postupne boli prijaté vylepšené a upravené štandardy jazyka SQL s názvom SQL-86 a neskôr SQL-92. Pre verziu SQL-92 sa vžil skrátený názov SQL-2. Vo vývoji je už nová verzia s pracovným názvom SQL-3.

Jedná sa o neprocedurálny jazyk, ktorý pozostáva z troch podmnožín príkazov:

DDL – Data Definition Language – obsahuje príkazy, pomocou ktorých definujeme štruktúry dát (CREATE, ALTER, DROP)

DML – Data Manipulation Language – obsahuje príkazy pre manipuláciu s údajmi (SELECT, INSERT, UPDATE, DELETE)

DCL – Data Control Language – zahrňuje špeciálne funkcie údržby a riadenia prevádzky databázy (GRANT, REVOKE, COMMIT, ROLLBACK)

Základy jazyka SQL - príkazy Na precvičenie príkazov jazyka SQL si postupne navrhneme niekoľko tabuliek a vyskúšame príklady pre každý príkaz

DDL - Data Definition Language Množina príkazov pomocou ktorých definujeme štruktúry dát

CREATE TABLE - pomocou príkazu vytvoríme novú tabuľku v databáze

Syntax: CREATE TABLE table_reference (column_definition [, column_definition,...] [, primary_key_constraint])

Príklad: Vytvorme si dve tabuľky, podobné ako v jednom z predchádzajúcom príkladov

CREATE TABLE kurzisti( ID_UCAST INT NOT NULL PRIMARY KEY, meno VARCHAR(30), vek INT, id_pc INT);

CREATE TABLE pc( ID_PC INT NOT NULL PRIMARY KEY, nazov VARCHAR(5), RAM_MB INT, Disk_MB INT);

ALTER TABLE - príkazom môžeme zmeniť pôvodný návrh tabuľky.

Page 10: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 10 -

Syntax: ALTER TABLE table_reference DROP [COLUMN] column_reference | ADD [COLUMN] column_reference [,reference DROP [COLUMN] column_reference | ADD [COLUMN] column_reference...]

Príklad: Zmeňme tabuľku pc tak, aby názov ståpca Disk_MB sa zmenil na Disk_GB.

ALTER TABLE pc DROP Disk_MB, ADD Disk_GB int

DROP TABLE - pomocou príkazu odstránime tabuľku z databázy Syntax: DROP TABLE table_reference

Príklad: Odstráňme tabuľku pc príkazom DROP TABLE pc Nezabudnime tabuľku pc znovu vytvoriť, pri ďaľšom výklade sa nám zíde.

CREATE INDEX - pomocou príkazu vytvoríme nový index Syntax: CREATE [UNIQUE] [ASC | DESC] INDEX index_reference ON table_reference (column_reference [,column_reference...]) Príklad: Vytvorme index nad položkou ID_UCAST v tabuľke kurzisti.

CREATE INDEX IX_UCAST ON kurzisti (ID_UCAST)

DROP INDEX - pomocou príkazu odstránime index z databázy Syntax: DROP INDEX table_reference.index_reference | PRIMARY

Príklad: Odstráňme index IX_UCAST príkazom DROP INDEX IX_UCAST

DML – Data Manipulation Language Množina príkazov pre manipuláciu s údajmi

INSERT INTO Pomocou príkazu zapisujeme do tabuľky nové záznamy Syntax: INSERT INTO table_reference [(columns_list)] VALUES (update_atoms)

Príklad: Naplňme údajmi naše tabuľky kurzisti. a pc INSERT INTO kurzisti VALUES (1, 'Novak Viliam', 38,4); INSERT INTO kurzisti VALUES (2, 'Petras Ladislav', 26,3); INSERT INTO kurzisti VALUES (3, 'Vopicka Alois', 47,1); INSERT INTO kurzisti VALUES (4, 'Krkoska Ignac', 19,2); INSERT INTO pc VALUES (1, 'PC1', 64, 7); INSERT INTO pc VALUES (2, 'PC2', 196, 40); INSERT INTO pc VALUES (3, 'PC3', 128, 13); INSERT INTO pc VALUES (4, 'PC4', 256, 20);

Príkaz SELECT Pomocou príkazu vyberáme údaje z databázových tabuliek podľa určitých kritérií Syntax: SELECT [DISTINCT] * | column_list FROM table_reference [WHERE predicates] [GROUP BY group_list] [HAVING having_condition] [ORDER BY order_list] Tento príkaz je snáď najdôležitejším a určite najpoužívanejším príkazom jazyka SQL, preto si jeho syntax predstavíme trochu podrobnejšie SELECT <zoznam_výstupných_stlpcov> FROM <zoznam_tabuliek>

Page 11: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 11 -

[WHERE <podmienka_riadku>] [GROUP BY <zoznam_výrazov_agregácie>] [HAVING <podmienka_skupiny>] [{UNION | UNION ALL | INTERSECT | MINUS } <príkaz_SELECT>] [ORDER BY <zoznam_kritérií_triedenia>] SELECT [ALL | DISTINCT | DISTINCTROW] { * | <špecifikácia_stĺpca1> [, < špecifikácia_stĺpca2> [, ...]} < špecifikácia_stĺpca> = {<názov_ ståpca> | <odkaz_tabulka>.* | <výraz> } [AS <pomenovanie_ stĺpca>] <odkaz_tabulka> = {<názov_tabulky> |<pomenovanie_tabulky>}

Pomocou klauzule DISTINCT dokážeme zariadiť, že sa nám duplicitné riadky objavia vo výpise len raz. Kľúčovým slovom FROM vyšpecifikujeme tabuľku, z ktorej potrebujeme vybrať údaje. Ak potrebujeme vybrať len určitú skupinu záznamov, alebo dokonca jeden záznam, musíme to prostredníctvom podmienky v SQL príkaze jasne špecifikovať. Na jej vyjadrenie slúži klauzula WHERE. V našom prípade to bude napríklad

Rozdiely v syntaxi základných príkazov SQL jazyka nie sú veľké, najväčšie problémy s kompatibilitou spôsobujú údaje typu dátum-čas. Aby sme tieto problémy pomohli prekonať uvedieme rozdiely pre tento dátový typ prehľadne vo forme tabuliek pre iné databázové platformy:

Definícia dátového typu: Microsoft SQL Server 2000 DATETIME Oracle 8i DATE MySQL DATETIME Vloženie aktuálneho dátumu a času Microsoft SQL Server 2000 GETDATE() Oracle 8i SYSDATE MySQL CURRENT_TIMESTAMP() Vloženie určeného dátumu a času Microsoft SQL Server 2000 '03.28.2001 13:30:22' Oracle 8i TO_DATE('01.05.2001 13:30:22', 'dd.mm.YYYY, HH24:MI:SS' MySQL '28.03.2001 13:30:22'

Príklad: Vyskúšajme si pomocou konzolovej aplikácie tieto SQL dopyty:

Výpis všetkých stĺpcov tabuľky SELECT * FROM pc SELECT * FROM kurzisti

Výpis vymenovaných stĺpcov tabuľky SELECT meno, vek FROM kurzisti

Pomenovanie stĺpca SELECT meno AS UCASTNIK FROM kurzisti

Page 12: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 12 -

Príklad - SELECT nad viacerými tabuľkami SELECT kurzisti.meno, kurzisti.vek, pc.RAM_MB, pc.DISK_GB FROM kurzisti, pc WHERE kurzisti.id_pc = pc.ID_PC

DELETE Pomocou príkazu vymažeme z tabuľky vybrané, prípadne všetky záznamy Syntax: DELETE FROM table_reference [WHERE predicates] Príklad: Vymažme z tabuľky kurzisti. účastníkov nad 40 rokov. Takáto tabuľka nám môže poslúžiť ako podklady pre inkasovanie poplatkov, ak firma veľkoryso rozhodne, že účastníci nad 40 majú kurz zdarma.

DELETE FROM kurzisti WHERE vek>40;

UPDATE Pomocou príkazu editujeme obsah existujúcich záznamov v tabuľke Syntax: UPDATE table_reference SET column_ref = update_atom [, column_ref = update_atom...] [WHERE predicates] Príklad: Rozhodli sme sa, že v tabuľke pc všetkým počítačom pod 256 MB RAM rozšírime RAM pridaním jedného 64 MB modulu.

UPDATE pc SET RAM_MB=RAM_MB+64 WHERE RAM_MB <256;

V príkaze SELECT môžeme používať aj takzvané AGREGAČNÉ FUNKCIE, ktoré pomocou matematických, alebo štatistických príkazov spracujú hodnoty z celých stĺpcov. V SQL sú implementované napríklad tieto funkcie:

SUM() - súčet hodnôt v stĺpci, MIN() - minimálna hodnota , MAX() - maximálna hodnota, COUNT() - počet numerických hodnôt v stĺpci, AVG() - aritmetický priemer numerických hodnôt v stĺpci.

V príklade s RAM pamäťou sme použili aritmetický operátor +. Môžeme použiť aritmetické operátory +, -, *, / V klauzule WHERE používame aj logické operátory AND, OR a NOT.

Štruktúra databázy V nasledujúcom texte sa budeme zaoberať len rečným modelom databáz. Za autora tohto modelu sa považuje Dr. Codd. V predchádzajúcom texte sme už uviedli, že súbory, ktoré sú súčasťou databázy sa najčastejšie prezentujú tabuľkou, pričom tabuľky sú poprepájané prostredníctvom polí. Ak chceme navrhnúť databázu (teda sústavu navzájom poprepájaných tabuliek), musíme si veľmi cielene premyslieť vzťahy medzi údajmi. Dobre navrhnutá databáza umožní jednoduchú správu údajov, ktoré budú dobre zabezpečené (teda nemôže dôjsť k ich náhodnému vymazaniu alebo zmene údajov).

Medzi tabuľkami databázy môžu byť relácie rôznych typov:

tabuľky nie sú v relácii,

medzi tabuľkami je relácia 1 : 1 (relácia jedna k jednej),

medzi tabuľkami je relácia 1 : N (jedna k viac),

Page 13: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 13 -

medzi tabuľkami je relácia M : N (viac ku viac).

Relácie 1 : 1 Tento typ relácie znamená, že každému záznamu (riadku) v jednej tabuľke je priradený práve jeden záznam (riadok) v druhej tabuľke. Tieto relácie sa nepoužívajú veľmi často a v mnohých prípadoch ich použitie svedčí o nesprávnom navrhnutí databázy, pretože dve tabuľky obsahujú podobné údaje. Ich použitie by sa dalo obísť zlúčením údajov do jednej tabuľky. V niektorých prípadoch ale má zmysel ich použiť.

Relácia 1 : N Používanie relácie jedna k viac je najčastejšie. V tomto prípade jedenému riadku jednej tabuľky odpovedá niekoľko riadkov druhej tabuľky. Táto relácia zaistí, že každý údaj v databáze je umiestnený len na jednom mieste. Ako príklad môžeme uviesť databázu tried so svojimi žiakmi. Každá trieda obsahuje viacej žiakov, ale každý žiak môže patriť len do jednej triedy.

Relácia M : N V praxi sa stretneme aj s reláciou typu viac ku viac. Použijeme ju vtedy, ak ku viacerým záznamom v jednej tabuľke sú priradené viaceré záznamy v druhej tabuľke. Typickým príkladom takéhoto priradenia môže byť väzba medzi žiakmi a učebnicami. Jeden žiak obyčajne má pridelené viaceré tituly učebníc a naopak jeden titul učebnice môže byť pridelený viacerým žiakom.

V bežných databázových systémoch obyčajne nie je možné priamo vytvoriť reláciu M : N. Preto sa používa jednoduchý trik prostredníctvom tzv. spojovacej tabuľky. Spojovacia tabuľka musí obsahovať dve polia - primárny kľúč z jednej a z druhej tabuľky. Potom sa vytvoria dve relácie typu 1 : N medzi prvou tabuľkou a spojovacou tabuľkou a medzi druhou tabuľkou a spojovacou tabuľkou. Týmto sa zaistí relácia M : N medzi tabuľkou žiaci a tabuľkou učebnice.

Page 14: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 14 -

Databáza v MS Access Databázy v aplikácii MS Access sa skladajú z objektov databázy. Objekty databázy sú:

• tabuľky, • formuláre, • dopyty, • zostavy, • makrá, • moduly.

S objektmi databázy môžeme manipulovať pomocou okna databázy

Ovládacie prvky MS Access

Spustenie programu Access je aplikácia balíka Microsoft Office, preto aj ovládanie tohto programu je podobné ostatným súčastiam balíka (nasledujúci popis bude pre MS Access 2003). Ak sme zvyknutí pracovať napríklad s Wordom, Excelom a pod., nemalo by nám robiť problémy zvyknúť si na obsluhu Accessu. Samozrejme okrem bežných príkazov nájdeme v Accessu aj nástroje na ovládanie, ktoré sú potrebné na prácu s databázou.

Program Access v danom počítači je zrejme možné spustiť rôznym spôsobom. Klasicky to môžeme urobiť pomocou ponuky Štart, spustením príkazu Štart - Všetky Programy - Microsoft Office-Microsoft Office Access 2003. Ak budeme častejšie používať tento program, bude vhodné si spúšťanie uľahčiť vytvorením zástupcu na pracovnej ploche alebo na paneli rýchleho spúšťania.

Pre ukončenie programu máme tiež viacero spôsobov - v ponuke Súbor vyberieme príkaz Koniec, pomocou klávesovej skratky Alt+F4, alebo tlačidlom na štandardné zavretie okna.

Page 15: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 15 -

Hlavné okno aplikácie Nasledujúci obrázok zobrazuje okno aplikácie MS Access po jej spustení. Nájdeme v ňom štandardné časti pre okná Windows - panel hlavnej ponuky a príkazový panel, ako aj pre Office 2003 štandardnú tablu úloh. V dolnej časti je stavový riadok.

V hlavnej časti okna aplikácie sa nachádza okno databázy, so súbormi objektov databázy. Táto časť okna je pracovná oblasť aplikácie, preto sa tu budú zobrazovať tabuľky databáz, objekty databázy v rôznych zobrazeniach.

Príkazy Rovnako ako väčšinu programov Windows, aj Access je možné ovládať príkazmi umiestnenými v ponukách. Kompletný súbor príkazov sa nachádza v hlavnej ponuke, ale pri práci s konkrétnym objektom programu je výhodné využívať aj príkazy z kontextovej ponuky. Zobrazíme ju stlačením pravého tlačidla myši a nájdeme v nej obyčajne to čo momentálne potrebujeme. Na obrázku vidíme kontextovú ponuku okna databázy.

Page 16: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 16 -

Väčšinu príkazov hlavnej ponuky už poznáme z iných aplikácií Office. So špeciálnymi príkazmi na ovládanie databázy sa oboznámime v nasledujúcich riadkoch tohto textu.

Ak poznáme základy teórie o návrhu databázy a základy postupu práce s databázou, ovládanie programu je intuitívne. Samozrejme pri vzniknutých problémoch s obsluhou programu nám veľmi účinne pomôže Pomocník. Pomocníka môžeme využívať buď pomocou asistenta, alebo pre kritikov používania tohto nástroja, prostredníctvom tably pomocníka, ktorú zobrazíme stlačením klávesu F1.

Pretože niektoré príkazy môžu byť schované hlbšie vo vnorených ponukách a klávesové skratky sa ťažko pamätajú, na spustenie príkazu môžeme využívať tlačidlá na paneli príkazov. Tu je potrebné pripomenúť, že Access obsahuje skoro tridsať preddefinovaných panelov príkazov a môžeme si dokonca vytvoriť aj vlastné panely príkazov (tieto panely by obsahovali príkazy podľa nášho návrhu). Z tohto dôvodu môže byť ovládanie databázy veľmi pohodlné.

V pravej časti okna aplikácie je tabla úloh. Jej obsah závisí od spustených príkazov pri práci s aplikáciou, môže to byť obsah Pomocníka, obsah schránky, voľby pri zakladaní databázy a pod.

Vytvorenie databázy Každá databáza má slúžiť na správu údajov, ktoré obsahuje. Vždy je vytvorená pre nejaký účel. Každý užívateľ ako samozrejmosť požaduje dokonalý prehľad v údajoch databázy, čím jednoduchšiu obsluhu a bezpečnosť údajov (napríklad účinné zabránenie náhodnej strate údajov, zabrániť narušeniu integrity údajov a pod.). Pretože my sa zaoberáme návrhom a vytvorením databáz, musíme si neustále uvedomovať dôsledky výsledku našej práce a ich vplyv na splnenie uvedených cieľov. Zámerom tohto textu nie je popisovať systém a postupy návrhu databáz, my sa budeme zaoberať len využitím Accessu pri práci s databázami.

Pred vytvorením databázy je potrebné najprv trochu popremýšľať. Vhodné je uvedomiť si aké údaje v databáze potrebujeme mať, pre ne si zvolíme údajové typy. Potom je potrebné navrhnúť si tabuľky s obsahom príslušných údajov a premyslíme si relácie medzi tabuľkami. Pri praktickom navrhovaní databázy – sústavy tabuliek nám v niektorých krokoch pomôže s reláciami aj Access. Až potom môžeme „od základu“ sami tvoriť databázu.

V aplikácii Access môžeme vytvoriť databázu v zásade dvoma rôznymi spôsobmi. Buď využijeme sprievodcu, alebo všetko budeme od základu budovať ručne. Ukážeme si obidva spôsoby.

Vytvorenie databázy pomocou sprievodcu V procese oboznamovania sa so stavbou databázy je dobré s takto vytvorenou databázou trochu popracovať, aby sme získali skúsenosti s obsluhou databázy, ale je tu možnosť sa aj

Page 17: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 17 -

prakticky oboznámiť s jednotlivými objektmi databázy. Tieto poznatky využijeme pri ďalšej práci. Vytvoriť databázu pomocou sprievodcu je ľahké, stačí dodržať nasledujúci postup.

1. Stlačením tlačidla Nový na príkazovom paneli sa zobrazí tabla úloh.

2. V podokne tably s názvom Nový súbor vyberieme príkaz Šablóny - V mojom počítači... . Objaví sa dialógové okno pre vytvorenie novej databázy.

3. Keď klikneme na kartu Databáza, zobrazia sa ponuky preddefinovaných šablón. zvolíme si napríklad šablónu Výdaje a stlačíme tlačidlo OK.

4. Zobrazí sa okno, v ktorom zvolíme názov a miesto uloženia súboru našej databázy na disku počítača. Štandardným postupom môžeme upraviť miesto uloženia súboru (Uložiť do:) a názov súboru. Stlačíme Vytvoriť.

Page 18: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 18 -

5. Zobrazí sa okno Sprievodcu databázou s informáciami. Stlačíme tlačidlo Ďalší>.

6. V nasledujúcom okne si môžeme pozrieť aké tabuľky bude databáza obsahovať. Máme tu možnosť doplniť niektoré voliteľné polia. Pokračuje stlačením Ďalší> .

Page 19: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 19 -

7. V nasledujúcich častiach si vyberieme vzhľad formulárov a tlačových zostáv, stále pokračujeme stlačením Ďalší> .

8. Ďalej môžeme pomenovať novú databázu alebo ponecháme názov, ktorý navrhol sprievodca. Tiež tu máme možnosť vložiť obrázok, ktorý bude zobrazovaný na všetkých zostavách, napr. logo firmy. Ak obrázok vyberieme, sprievodca ho zobrazí v tomto okne. Pokračuje stlačením Ďalší> .

Page 20: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 20 -

9. Blížime sa k záveru. Sprievodca má všetky informácie potrebné na vytvorenie databázy. Ešte musíme určiť, či chceme databázu po jej vytvorení spustiť (niet dôvodu, prečo by sme nechceli). Stlačíme tlačidlo Dokončiť . Ak ale by sme si spomenuli, že v nejakom predchádzajúcom kroku sme mali niečo ináč zvoliť, môžeme sa vrátiť tlačidlom <Späť .

10. Sprievodca vytvoril databázu a pripravil pre ňu aj Hlavný prepínací panel, ktorý slúži na pohodlnejšiu obsluhu databázy.

Page 21: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 21 -

V hlavnom prepínacom paneli je možné rozvrhnutie ovládacích prvkov meniť. Pre tento účel slúži tlačidlo Zmeniť položky prepínacieho panelu.

Vytvorenie prázdnej databázy Vytvorenie databázy pomocou sprievodcu je veľmi jednoduché a bez námahy. Nie vždy ale nám ponúknuté databázy vyhovujú v praxi. Tu je potrebné ešte pripomenúť, že šablóny databáz môžeme získať aj na webu Office Online. V praxi však často budeme vytvárať databázy ručne, potom je potrebné dodržiavať vyššie popísané zásady stavby databáz.

Prázdnu databázu vytvoríme príkazom Súbor – Nový (alebo stlačíme tlačidlo Nový ). Potom na table úloh vyberieme Nový - Prázdna databáza... .Zobrazí sa dialógové okno, v ktorom zadáme názov súboru pre vytváranú databázu, tento názov dostane aj samotná databáza a zvolíme adresár, kde bude súbor umiestnený. Po stlačení tlačidla Vytvoriť sa vytvorí prázdna databáza s príslušným názvom v titulku okna.

Page 22: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 22 -

Objekty databázy Základným objektom, bez ktorého sa nezaobíde žiadna databáza je tabuľka. Aby nedochádzalo k výskytu tých istých údajov na rôznych miestach, používajú sa viaceré, navzájom prepojené tabuľky. Podľa účelu práce s tabuľkou alebo údajmi v nej obsiahnutej poznáme v Accesse viaceré zobrazenia tabuľky:

• Zobrazenie údajového listu – slúži na prezeranie údajov alebo na editovanie alebo aj vkladanie údajov do tabuľky.

• Návrhové zobrazenie – slúži na návrh tabuľky.

• Zobrazenie kontingenčnej tabuľky a zobrazenie kontingenčného grafu – slúžia na analýzu údajov v tabuľke.

Pred prácou s tabuľkami, musíme ich samozrejme najprv vytvoriť. V Accesse môžeme vytvoriť tabuľky tiež viacerými spôsobmi:

• pomocou sprievodcu,

• ručne v návrhovom zobrazení,

• v zobrazení údajového listu.

Ďalšie objekty databázy – dopyty, formuláre a zostavy pri ručnom vytváraní databázy potrebujeme tiež vytvoriť. Opäť na ich vytvorenie môžeme použiť príslušného sprievodcu, alebo objekt budeme vytvárať sami v návrhovom zobrazení. Činnosti na vytvorenie týchto objektov si popíšeme na príklade návrhu databázy Pôžička učebníc. V príklade sa oboznámime aj s niektorými novými pojmami a postupmi pri návrhu a správe databázy.

Príklad databázy V našom jednoduchom príklade chceme vytvoriť databázu učebníc na škole, ktorá umožní zaznamenať požičanie učebníc žiakom školy. Žiaci školy by mali byť rozdelení podľa tried. Potrebujeme mať prehľad o stave učebníc v sklade a o učebniciach požičaných žiakom triedy.

Návrh tabuliek (v príklade) Zo zadania priamo vyplýva, že potrebujeme tabuľku Ucebnice a pre zaznamenanie údajov o žiakoch vytvoríme dve tabuľky - tabuľku Triedy a tabuľku Ziaci. Ďalej budeme potrebovať tabuľku PozicaneUc, v ktorej zaznamenáme požičanie učebnice žiakovi.

Zvolíme polia pre tabuľky:

Tabuľka Pole Typ poľa Veľkosť Poznámka Ucebnice CisloU Text 10 Primárny kľúč Nazov Text 30 Autor Text 25 Pocet Číslo CenaU Mena

Tabuľka Pole Typ poľa Veľkosť Poznámka Triedy Trieda Text 10 Primárny kľúč PocetZiakov Číslo

Page 23: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 23 -

Tabuľka Pole Typ poľa Veľkosť Poznámka Ziaci PC Automatické číslo Primárny kľúč Trieda Text 10 CisloZiaka Text 3 Meno Text 30

Tabuľka Pole Typ poľa Veľkosť Poznámka PozicaneUc PC Automatické číslo

Ziak Číslo Sprievodca vyhľadávaním

Ucebnica Text

Sprievodca vyhľadávaním

Poznámky:

• Názvy polí v tabuľkách som zvolil bez použitia písmen s diakritikou, pričom som nepoužil medzery. V Accesse písmená s diakritikou môžeme požívať, ale tiež je zakázané používať medzery, teda názov poľa musí byť jedno slovo. Ak sa názov poľa skladá z viacerých slov, môžeme začiatočné písmeno ďalšieho slova použiť veľké písmeno, napríklad ČísloŽiaka . Dôvod je jednoduchý, pretože Access vo svojej činnosti nerozlišuje veľkosti písmen v pomenovaniach polí - teda zápisy ČíSLOŽiaKA, čísložiaka a pod. stále budú znamenať len pomenovanie nášho poľa ČísloŽiaka. Tento spôsob označenia je pre tvorcu databázy prehľadnejší. Názvy polí je vhodné voliť tak, že z nich vieme určiť ich význam (aj po určitom čase), teda nemali by sme používať značky (... ako som použil onačenie PC, čo pre mňa znamená poradové číslo). Je potrebné tu ešte pripomenúť, že v Accesse pomenovanie stĺpca v zobrazenej tabuľke (nazývame to Titulok stĺpca tabuľky) môže byť iné ako je názov poľa v databáze.

• Typy polí sú zvolené z možností, ktoré ponúka Access. V praxi niekedy pre daný údaj môžeme použiť viaceré typy, napríklad CisloZiaka môže byť typu Číslo alebo Text. V tomto prípade som sa rozhodol pre typ Text aj keď číslo žiaka budeme v praxi stále zapisovať pomocou znakov číslic (ale môže to byť aj inak). Ak by sme potrebovali pri spracovávaní údajov vykonávať matematické operácie (napríklad počítať súčet, priemer a pod.), potom sa musíme rozhodnúť len pre typ Číslo. Automatické číslo je typ poľa, do ktorého nezadáva užívateľ hodnoty, systém databázy automaticky zväčšuje hodnotu čísla tohto poľa o zvolenú hodnotu, napríklad jedna, oproti predchádzajúceho záznamu. Týmto spôsobom je zaručená jedinečnosť hodnoty v zázname tabuľky - nevyskytnú sa v tabuľke dva riadky s tou istou hodnotou tohto poľa.

• Veľkosť poľa pre typ Text určuje počet znakov (je dobré počítať aj s rezervou, ale musíme pamätať aj na to, že keď budeme tlačiť zostavy na papier, aby sme nemali problémy s napísaním záznamu na jeden riadok tabuľky len preto, že polia záznamu obsahujú zbytočné medzery, ktoré sa v zápise prejavia ako znaky). Aj pre niektoré ostatné typy môžeme určovať veľkosti, napríklad pre Číslo môžeme určiť počet desatinných miest a pod.

• Primárny kľúč je pole slúžiace na spájanie tabuliek - tvorenie relácií V tejto súvislosti používame aj pojem index. Indexy umožňujú rýchlejšie vyhľadávanie a triedenie záznamov. Indexy sú uložené spoločne s tabuľkou ako jej vlastnosť a pri každom novom zadaní údaja do tabuľky sa aktualizujú. Pre predstavu si

Page 24: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 24 -

môžeme uvedomiť, že Access používa indexy ako sa používa register v knihe: pri hľadaní nejakého údaja sa vyhľadá jeho umiestnenie v indexe a pretože údaje v indexe sú usporiadané, vyhľadávanie je rýchlejšie. Pole označené ako primárny kľúč je indexované automaticky. Hovoríme, že primárny kľúč je hlavným indexom tabuľky.

• Poznámka Sprievodca vyhľadávaním naznačuje, že údaje v tabuľke môžeme vyplňovať tak, že ich nájdeme ako údaj poľa inej tabuľky. Postup vytvorenia tohto spôsobu napĺňania údajov si popíšeme. Pri správnom nastavení databázy sa takto zaručuje integrita databázy (napríklad v tabuľke PozicaneUc nepridelíme učebnice neexitujúcemu žiakovi).

Vytvorenie tabuliek Keďže v Accesse môžeme vytvoriť tabuľku tromi spôsobmi, popíšeme si každý z nich. Ideme vytvárať tabuľky databázy PozickaUcebnic, preto na začiatku si známym postupov vytvoríme prázdnu databázu s týmto pomenovaním. (Pripomeniem: Tlačidlo Nový , na table úloh vyberieme Prázdna databáza..., v okne zvolíme názov databázy a cestu na umiestnenie jej súboru).

Vytvorenie tabuľky pomocou sprievodcu Týmto spôsobom vytvoríme tabuľku Ziaci. Pretože používam Access s českým prostredím, ponúkané české názvy polí budeme potrebovať premenovať (dá sa to urobiť pohodlne). Spôsobov ako začať je viac. Môžeme zadať príkaz z hlavnej ponuky Vložiť - Tabuľka, ale pretože v skutočnosti vytvárame objekty databázy, lepšie bude pracovať s oknom databázy, ktorú sme si vytvorili ako prázdnu databázu s názvom PozickaUcebnic. V ľavej časti okna databázy na paneli Objekty vyberieme možnosť Tabuľky. Klikneme na tlačidlo Nový na príkazovom paneli okna databázy. Objaví sa okno Nová tabuľka, v ktorom vyberieme Sprievodca tabuľkou a stlačíme OK.

V okne Sprievodcu tabuľkou sú ponúkané vzorové tabuľky, vyberieme si tabuľku Študenti. Pretože medzi ponúknutými názvami polí nemáme polia, ktoré potrebujeme, presunieme zo vzorovej tabuľky Študenti názvy polí podľa nasledujúceho obrázku. Na presúvanie polí z podokna Vzorové pole: do podokna Pole v novej tabuľke: využívame tlačidlá

- presun vybraného poľa, - presun všetkých polí

Polia môžeme presúvať aj naspäť.

Page 25: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 25 -

Polia novej tabuľky premenuje tak, že vyberieme pole, stlačíme tlačidlo Premenovať pole... a opravíme názov. Výsledok by mal byť podľa nasledujúceho obrázku.

Pokračujeme stlačením tlačidla Ďalší>. V nasledujúcom okne zadáme názov tabuľky Ziaci a zvolíme možnosť, aby sme nastavili primárny kľúč ručne, podľa obrázku.

Page 26: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 26 -

V nasledujúcom okne zvolíme PC ako pole s jedinenečnými údajmi a pokračujeme stlačením Ďalší> .

V nasledujúcom okne sa nastavujú relácie medzi vytváranou tabuľkou a už existujúcimi tabuľkami databázy. Keďže relácie budeme nastavovať samostatne, upravíme stav tak, aby tabuľka nebola v relácii s ostatnými tabuľkami.

Po stlačení tlačidla Ďalší> necháme voľbu Vkladať údaje priamo do tabuľky a stlačíme tlačidlo Dokončiť.

Page 27: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 27 -

V okne databázy sa zobrazí informácia, že máme tabuľku Ziaci vytvorenú a môžeme s ňou pracovať. Tabuľku otvoríme dvojklikom na ikonu tabuľky, alebo vyberieme tabuľku a zvolíme príkaz Otvoriť .

Do tabuľky môžeme štandardným spôsobom vkladať údaje. Keď si chcete porovnávať výsledky svojej činnosti popísané v tomto texte s obrázkami (odporúčam vám to), môžete vložiť tie isté údaje ako vidíte na obrázku (a aj ďalších obrázkoch). Ak úspešne dokončíte stavbu celej databázy, potom samozrejme môžete vkladať údaje podľa svojho uváženia a predpokladám, že budete schopní aj upraviť databázu tak, aby so svojim obsahom sa dala použiť v reálnej praxi.

Ručné vytvorenie tabuľky v návrhovom zobrazení Pri tomto postupe máme úplnú kontrolu nad návrhom tabuľky a nastavením jej vlastností. Týmto spôsobom vytvoríme tabuľku Ucebnice. V okne databázy pri zvolených objektoch Tabuľky stlačíme tlačidlo Nový a v okne Nová tabuľka vyberieme Návrhové zobrazenie, stlačíme OK.

Page 28: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 28 -

Na obrazovke sa objaví prázdny návrh tabuľky, do ktorého zapíšeme mena polí a pre každé pole vyberieme údajový typ zo zoznamu.

Zoznam údajových typov sa zobrazí po stlačení roztváracieho tlačidla v poli údajového typu. Na karte Obecné určíme vlastnosti poľa. Niektoré vlastnosti sú zrejmé z pomenovania, o ostatných sa dozvieme buď z Pomocníka, alebo si ich ešte popíšeme.

Po vyplnení návrhu tabuľky ešte pred jej uložením definujeme primárny kľúč tak, že umiestnime kurzor na riadok príslušného poľa (v našom prípade pole „cisloU“) a stlačíme tlačidlo na nastavenie primárneho kľúča. Vedľa záznamu sa objaví značka primárneho kľúča. (Ak by sme nemali zvolený primárny kľúč, Access nám ponúkne, že automaticky vytvorí primárny kľúč za nás. V prípade, že to potvrdíme, vytvorí sa primárny kľúč typu automatické číslo s názvom ID.)

Z vlastností poľa si podrobnejšie opíšeme Vstupnú masku a Indexy. Vstupná maska slúži na určenie formátu údajov, napríklad formát rodného čísla môže byť _ _ _ _ _ _ / _ _ _ _ . Masku

Page 29: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 29 -

definujem tým, že určíme pomocou znakov aké vstupné údaje sa môžu použiť. Význam znakov je v nasledujúcej tabuľke. Vstupnú masku je možné vytvoriť aj pomocou sprievodcu.

Znak Popis 0 Číslice (0 až 9, položka je povinná, znamienka plus [+] a mínus [-] nie sú povolené). 9 Číslice nebo medzera (položka nie je povinná, znamienka plus a mínus nie sú povolené).

# Číslice nebo medzera (položka nie je povinná, prázdne pozície sa nahradia medzerami znamienka plus a mínus sú povolené).

L Písmeno (A až Z, položka je povinná). ? Písmeno (A až Z, položka je nepovinná). A Písmeno alebo číslica (položka je povinná). a Písmeno alebo číslica (položka je nepovinná). & Ľubovoľný znak alebo medzera (položka je povinná). C Ľubovoľný znak alebo medzera (položka je nepovinná).

. , : ; - /

Zástupný znak pre desatinnú čiarku a oddeľovače tisícov, kalendárneho dátumu a času. (Skutočne použité znaky závisia na miestnom nastavení v Ovládacích paneloch systému Windows.)

< Zaistí prevod všetkých nasledujúcich znakov na malá písmena. > Zaistí prevod všetkých nasledujúcich znakov na veľké písmena.

! Zaistí zobrazení vstupnej masky sprava doľava, a nie zľava doprava. Znaky zadané do masky sa vždy zapisujú zľava doprava. Znak výkričníku môžete vo vstupní maske uviesťkdekoľvek.

\ Zaistí zobrazení nasledujúceho znaku ako laterálneho znaku. Používa sa pri zobrazení ľubovoľného znaku z tejto tabuľky ako laterálneho znaku. (Príklad: postupnosť znakov\A sa zobrazí ako A).

Heslo Nastavením vlastnosti Vstupní maska na hodnotu Heslo vytvoríte textové pole prezadanie hesla. V tomto poli sa miesto vkladaných znakov zobrazujú hviezdičky (*).

Indexy umožňujú rýchlejšie hľadanie a triedenie záznamov. Indexy môžeme vytvárať v návrhovom zobrazení tabuľky stlačením tlačidla Indexy na paneli nástrojov.

V stĺpci Názov indexu zadáme meno indexu. V stĺpci Názov poľa vyberieme pole, podľa ktorého bude index vytvorený. Pre každý index môžeme použiť až desať polí. Záznamy môžu byť triedené vzostupne alebo zostupne.

Ak zvolíme na karte Obecné určujúcej vlastnosti poľa vo vlastnosti Indexovať hodnotu áno, index sa vytvorí. Možné hodnoty nastavenia sú tri: Hodnota Áno (duplicita povolená) znamená, že pre pole

Page 30: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 30 -

sa vytvorí index, ktorý umožní existenciu dvoch záznamov s rovnakou hodnotou v tomto poli.. Hodnota Áno (bez duplicity) znamená, že sa pre pole vytvorí jedinečný index, to je, že žiadne dve záznamy nesmú obsahovať v tomto poli obsahovať rovnaké hodnoty. Tretie hodnota ne Nie, kedy index nebude vytvorený.

Tabuľku uložíme príkazom Súbor - Uložiť, prípadne stlačením tlačidla Uložiť . Zadáme názov tabuľky a stlačíme OK.

Vytvorenie tabuľky v zobrazení údajové listu Tento spôsob vytvorenia tabuľky je najjednoduchší, pretože tabuľka bude vytvorená priamo zadaním hodnôt do údajového listu. Stlačíme tlačidlo Nový na paneli nástrojov Databáza a vyberieme možnosť Zobrazenie údajového listu. Do zobrazenej prázdnej tabuľky začneme zadávať údaje. Týmto postupom vytvoríme tabuľku Triedy.

Ak vykonáme dvojklik na záhlavie stĺpca, môžeme prepísať jeho názov. Po zadaní niekoľkých záznamov tabuľku uložíme. Access nám ponúkne vytvoriť primárny kľúč, zvolí možnosť Nie, pretože pri voľbe Áno by Access vytvoril primárny kľúč s názvom ID, ale my sme sa rozhodli, že primárny kľúč v našej tabuľke bude pole Trieda. . Access sám rozpozná podľa zadaných údajov údajové typy a vytvorí ich názvy. Nezabudnime po vytvorení tabuľky nastaviť primárny kľúč pre pole Trieda v návrhovom zobrazení tabuľky.

Poznámka: Pri zadávaní názvu triedy musíme dávať pozor na označenie triedy. Je rozdiel medzi označením 1B a 1.B ! Nesmieme na toto zabudnúť. Hneď na začiatku sa rozhodneme pre alternatívu označovať triedy v našej databáze bez bodky.

Doteraz sme vytvorili tabuľky Ziaci, Triedy a Ucebnice, ostáva nám ešte vytvoriť tabuľku kde budeme zaznamenávať požičiavanie učebníc žiakom s názvom PozicaneUc. Pred jej vytvorením je potrebné sa trochu zamyslieť nad praktickým napĺňaním tabuliek údajmi. Zatiaľ tabuľky v našej databáze nie sú previazané (nie sú v relácii), preto existuje riziko, že pri zadávaní údajov buď vzniknú chyby alebo dokonca dôjde ku narušeniu integrity v databáze napríklad tým, že by sme žiaka zaradili do triedy, ktorá neexistuje. Podobná situácia by nastala po jednoduchom vytvorení tabuľky PozicaneUc. Ak by naďalej tabuľky neboli v reláciách, napĺňanie tejto tabuľky údajmi by bolo veľmi problematické. Je čas tento stav napraviť a zároveň využiť možnosť Accessu pomôcť nám pri tvorbe relácií medzi tabuľkami. (Túto možnosť sme spomínali v teoretickej časti o databázach.)

Vytvorenie relácií medzi tabuľkami Na zobrazenie relácií medzi tabuľkami databázy slúži príkaz Relácie... , ktorý môžeme spustiť stlačením tlačidla na hlavnom paneli s nástrojmi, alebo z kontextovej ponuky hlavného okna databázy, alebo zadáme z hlavnej ponuky príkaz Nástroje - Relácie... . Príkaz zobrazí okno Relácie . V tomto štádiu našej databázy samozrejme ešte nijaké relácie medzi tabuľkami nebudú.

Vráťme sa ku tabuľke Ziaci. Ak ju zobrazíme v tvare údajového listu (vyberieme príslušnú tabuľku a stlačíme tlačidlo Otvoriť, alebo vykonáme dvojklik na ikonu príslušnej databázy

Page 31: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 31 -

v hlavnom okne databázy), môžeme do nej zadávať údaje. Hneď si ale musíme uvedomiť, že pri zadávaní triedy, by sme mali v tejto tabuľke zadať len tú triedu, ktorá existuje v tabuľke Triedy. Tabuľku Triedy by sme teda mali mať vyplnenú už pred vkladaním údajov do tabuľky Ziaci. Nech sú v tabuľke Triedy údaje zobrazené na obrázku a začíname vkladať údaje do tabuľky Ziaci.

Pre žiaka sú údaje v jednom riadku tabuľky Ziaci. Postupne napĺňame obsahom stĺpce takto: Stĺpec PC nevyplňujeme (je to automatické číslo a údaj doplní Access), zadáme CisloZiaka, do stĺpca Trieda je potrebné dať názov triedy a nakoniec vyplníme políčko v stĺpci s menom žiaka. Problém môže vzniknúť pri zadaní názvu triedy, preto bude výhodné upraviť spôsob zadávania údajov do tohto stĺpca pomocou zoznamu. V Accessu sa zoznam vytvorí pomocou Sprievodcu vyhľadávaním.

Vykonáme nesledujúce kroky:

1. Ak je tabuľka Ziaci zobrazená vo forme údajového listu, ukončíme toto zobrazenie.

2. Zobrazíme tabuľku Ziaci v návrhovom zobrazení (vyberieme tabuľku a zadáme príkaz Návrh ) .

3. Zoznam hodnôt ideme pridávať do poľa Trieda, preto v stĺpci Údajový typ rozvinieme ponuku (stlačíme trojuholník) a vyberieme Sprievodca vyhľadávaním... , podľa obrázku.

Page 32: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 32 -

1. Spustí sa Sprievodca vyhľadávaním, v ktorom necháme voľbu, že hodnoty pre vyhľadávací stĺpec sa načítajú z tabuľky a stlačíme Ďalší> .

2. Vyberieme tabuľku Triedy a pokračujeme Ďalší> .

3. V nasledujúcom okne vyberieme pole, z ktorého sa budú brať do zoznamu údaje, teda presunieme stlačením tlačidla > pole trieda . (Poznámka: ak by sme presunuli na zobrazovanie v zozname viac polí (vo všeobecnom prípade) - obsah prvého poľa zo zoznamu sa bude vkladať po vybratí a potvrdení klávesom ENTER na dané miesto tabuľky, pričom obsahy ostatných polí budú zobrazené (pre informáciu) v zozname.)

Page 33: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 33 -

4. V ďalšom okne by sme mohli zvoliť triedenie údajov v zozname, pokračujeme stlačením Ďalší> .

5. V nasledujúcom okne nastavíme spôsob zobrazovania zoznamu (všetko je popísané v okne), pokračujem stlačením Ďalší> .

6. Ešte je možné zvoliť titulok pre vyhľadávací stĺpec a stlačíme tlačidlo Dokončiť .

7. Na výzvu, či chceme uložiť tabuľku - aj reláciu vytvorenú Accessom, odpovieme Áno.

8. Návrhové zobrazenie tabuľky môžeme zavrieť. Tým sme skončili vytvorenie zoznamu v tabuľke Ziaci. Ako sa výsledok našej práce prejaví pri zadávaní údajov do tabuľky Ziaci si môžeme hneď vyskúšať. Otvorme tabuľku Ziaci v zobrazení údajového listu a začnime vkladať údaje o ďalšom žiakovi. Vidíme, že po umiestnení kurzora do poľa Trieda je už v pravej časti poľa roztvárací znak zoznamu, keď ho stlačíme môžeme vyberať zo zoznamu triedu pre daného žiaka. Vybranú hodnotu vložíme do tabuľky buď dvojklikom alebo klávesom ENTER.

Ak si zobrazíme Relácie (z kontextovej ponuky databázy vyberieme príkaz Relácie... ), uvidíme, že Access vytvoril reláciu medzi tabuľkami Triedy a Ziaci podľa obrázku.

Ak umiestnime kurzor myši na spojnicu medzi tabuľkami v okne relácie a stlačíme pravé tlačidlo myši, môžeme zvoliť príkaz na prácu s reláciou - zvoľme Upraviť reláciu... .

Page 34: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 34 -

V zobrazenom okne Upraviť relácie nastavujeme vlastnosti relácie. Naša relácia je typu 1:N. Pomocou zaškrtávacích políčok môžeme zvoliť príslušné vlastnosti. Urobte to podľa obrázku. Tieto nastavenia majú vplyv na chovanie sa databázy, napríklad pri zaškrtnutí poslednej vlastnosti Odstránenie súvisiacich polí v kaskáde musíme počítať s tým, že pri zmazaní daného údaja z jednej tabuľky sa odstránia aj nasledujúce údaje - táto operácia sa už nedá vrátiť tlačidlom Späť. V našom prípade by nastala táto situácia, keď zmažeme triedu v tabuľke Triedy, potom sa zmažú všetci žiaci z tejto triedy v tabuľke Ziaci. (Ak by táto vlastnosť nebola nastavená, samozrejme ku zrušeniu údajov nedôjde.) Typy spojenia tabuliek môžeme zvoliť v osobitnom okne po stlačení tlačidla Typ spojení... .

Po nastavení vlastnosti o zabezpečení referenčnej integrity sa zmení zobrazenie relácie podľa obrázku. Zaistenie referenčnej integrity nedovolí do tabuľky žiaci zadať názov triedy, ktorý nie je v tabuľke Triedy, pozri obrázok - hlásenie Accessu po snahe uložiť záznam žiaka s neexistujúcou triedou 1C.

Page 35: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 35 -

Ak by sme chceli nastaviť reláciu medzi tabuľkami ručne, stačí pole z jednej tabuľky „preniesť“ na zodpovedajúce pole v druhej tabuľke (pole prenesieme tak, že ho vyberieme a držíme stlačené ľavé tlačidlo myši, pričom kurzor myši presúvame na pole druhej tabuľky). Po tomto úkone sa zobrazí okno na nastavenie vlastností relácie.

Vytvorenie tabuľky PozicaneUc V predchádzajúcich riadkoch som pomerme podrobne opísal vytvorenie zoznamov na vkladanie hodnôt do polí tabuľky. Vyskúšajme si tento postup ešte raz pri návrhu tabuľky PozicaneUc. Tabuľku vytvoríme v návrhovom zobrazení. Bude obsahovať tri polia: PC je typu automatické číslo, pole Ziak sa bude napĺňať zo zoznamu, pričom sa bude zobrazovať v zozname meno žiaka. Access mu priradí typ číslo , pretože prepojenie s inou tabuľkou (v našom prípade tabuľkou Ziaci) je prostredníctvom automatického čísla. Posledné pole je Ucebnica, bude typu text a zoznam nech zobrazí názov učebnice. Počas vytvárania zoznamov Sprievodcom vyhľadávaní potvrdíme uloženie tabuľky s vytvorenou reláciou. Ak ukončíme návrh tabuľky a uložíme ju s názvom PozicaneUc, môžeme sa pozrieť na relácie medzi tabuľkami. Po úprave vlastností relácií - všetky nastavíme so zabezpečením referenčnej integrity bude zobrazenie relácií podľa obrázku.

Z obrázku je zrejmé, že tabuľka PozicaneUc tvorí spojovaciu tabuľku medzi tabuľkami Ziaci a Ucebnice, čím tieto dve tabuľky sú v relácii M : N. Takto to bolo popísané aj v teoretickej časti o databázach tohto textu.

Potrebné tabuľky databázy máme vytvorené, dokonca sú medzi nimi vytvorené aj všetky relácie. Môžeme sa teraz venovať oblasti práce s údajmi databázy.

Údajový list tabuľky Údajový list tabuľky slúži na zobrazenie údajov v tabuľke ale aj na zadávanie údajov.

V údajovom liste sa pohybujeme buď pomocou klávesnice alebo myšou štandardným spôsobom. Na karte zobrazenej príkazom Nástroje - Možnosti môžeme ešte nastaviť ovládanie pomocou klávesnice. Pri ovládaní myšou sa do poľa dostaneme kliknutím na príslušné pole, záznam alebo stĺpec vyberieme kliknutím na volič záznamu alebo záhlavie stĺpca, celú tabuľku vyberieme kliknutím na volič tabuľky v ľavom hornom rohu. Pre orientáciu je dobré sledovať zmenu kurzora myši pri jeho pohybe po tabuľke.

Pre uľahčenie pohybu a orientácie v záznamoch sú v ľavom dolnom rohu údajového listu navigačné tlačidlá s nasledujúcim významom:

Page 36: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 36 -

• - prechod na nasledujúci riadok,

• - prechod na predchádzajúci riadok,

• - prechod na prvý záznam tabuľky,

• - skok na posledný záznam tabuľky,

• - pridanie nového záznamu do tabuľky.

Vo vstupnom poli medzi tlačidlami je zobrazené poradové číslo záznamu. Číslo do tohto poľa môžeme zvoliť, takto sa premiestnime na konkrétny záznam.

Existujúce záznamy môžeme v tabuľke upravovať. V priebehu úpravy sa objaví vo voliči záznamu symbol ceruzky. Všetky zmeny sa ukladajú automaticky. Pri oprave chybného zadania môžeme využívať aj tlačidlo Späť. Nové záznamy do tabuľky vložíme tak, že ich vpíšeme na koniec tabuľky. Do pozície v tabuľke na vloženie nového záznamu sa môžeme dostať aj stlačením príslušných tlačidiel. Jeden záznam, alebo aj viaceré záznamy zrušíme tak, že ich vyberieme a zadáme príkaz Odstrániť záznam.

Import údajov V praxi sa môže stať, že budeme chcieť používať údaje vytvorené v iných aplikáciách. Access nám umožňuje tieto údaje dostať do našej aplikácie prostredníctvom funkcie import. Príkazom Import... z miestnej ponuky načítame údaje z iného zdroja. Môžeme ale aj prepojiť tabuľky príkazom Prepojiť tabuľky... . Ak sú tabuľky prepojené, zmeny v tabuľke budú pozorovateľné vo všetkých aplikáciách, ktoré s touto tabuľkou pracujú.

Zobrazenie vnoreného údajového listu Keď sú tabuľky v relácii, objaví sa vedľa voliča záznamu znamienko ( + ). Po kliknutí na neho sa zobrazí k danému záznamu vnorený údajový list, ktorý obsahuje údaje z inej prepojenej tabuľky súvisiace so záznamom. Pomocou vnorených údajových listov môžeme upravovať údaje v súvisiacich tabuľkách. Je to v praxi pohodlné - napríklad vkladať žiakov danej triedy môžeme tak, že si zvolíme triedu a vkladáme len číslo žiaka a jeho meno. Príklad vnoreného údajového listu je na obrázku.

V prípade, že tabuľky sú v zložitejších reláciách, vnorené údajové listy môžu byť vnorené v kaskáde. Zobrazenie vnorených údajových listov je možné nastaviť vo vlastnostiach tabuľky.

Page 37: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 37 -

Vyhľadávanie záznamov Vyhľadávanie a nahradzovanie záznamov v Accessu robíme analogicky ako v ostatných aplikáciách MS Office. Zadajte príkaz Úpravy - Nájsť... a postup je intuitívny, pozri obrázok.

Triedenie údajov Aj tento postup je analogický ako v iných aplikáciách MS Office. Môžeme triediť údaje v tabuľke podľa jedného poľa alebo podľa viacej polí. Spôsoby triedenia zvolíme z kontextovej ponuky tabuľky, keď najprv kliknutím na volič stĺpca vyberieme príslušné pole, podľa ktorého triedenie chceme urobiť, pozri obrázok.

Formuláre Formuláre sú užitočné predovšetkým pri vkladaní údajov do tabuliek. Ku tabuľke môžeme vytvoriť formulár veľmi jednoducho pomocou sprievodcu, ak ale budeme mať väčšie nároky, môžeme ho vytvárať aj v návrhovom zobrazení. Ďalšia možnosť je využiť príkaz na vytváranie nových objektov databázy - Automatický formulár.

Skúsme vytvoriť formulár pre tabuľku žiaci. V okne databázy kliknime na objekt Formuláre a vyberme Vytvoriť formulár pomocou sprievodcu . Stlačme tlačidlo Návrh . V okne Sprievodca formulárom vyberme tabuľku Ziaci. Z časti okna Dostupné polia presunieme všetky polia stlačením >> do časti Vybrané polia. Pretože pole PC je typu automatické číslo,

Page 38: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 38 -

teda do neho nebudeme vkladať hodnoty, presunieme ho naspäť stlačením <. Výsledok opísaného postupu je za obrázku.

Stlačíme tlačidlo Ďalší> .V nasledujúcich oknách môžeme zvoliť pre vytváraný formulár rozloženie polí a jeho vzhľad, postupne stlačíme tlačidlo Ďalší> . Nakoniec zvolíme názov formuláru a stlačíme tlačidlo Dokončiť. Vytvorený formulár môžeme používať v práci s databázou.

Pre prax možno by bolo vhodnejšie mať formulár, ktorým by sme vytvárali zoznam žiakov pre zvolenú triedu bez toho, aby sme pri každom vkladaní údajov o žiakovi dávali aj údaj o triede. (Túto možnosť sme uviedli pri zobrazovaní vnoreného údajového listu.) Access umožňuje vyrobiť takéto formuláre využitím podformulárov. Treba len dosiahnuť stav, aby vo formuláre pre tabuľku Triedy bol podformulár pre tabuľku Ziaci. Postup na vytvorenie previazaných formulárov zďaleka nie je taký zložitý ako sa zdá.

V okne databázy vyberieme tabuľku Triedy a spustíme príkaz Vložiť - Automatický formulár z hlavne ponuky, alebo v hlavnom paneli príkazov rozvinieme ponuku tlačidla Nový objekt (stlačíme trojuholník v pravej časti tlačidla) a vyberieme príkaz Automatický formulár.

Page 39: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 39 -

Access vytvoril skutočne automaticky formulár, ktorý presne plní naše požiadavky. Vidíme ho na nasledujúcom obrázku. Formulár je tvorený dvoma previazanými formulármi prostredníctvom poľa trieda - ak voličom záznamov budeme meniť údaje v poli trieda (je to spodný volič záznamov), v podformulári, ktorý je zobrazený údajovým listom sa budú zobrazovať len žiaci príslušnej triedy. Dokonca môžeme vidieť aj vnorený údajový list tabuľky triedy (rozvinieme ho stlačením +).

Hotové formuláre môžeme už pomerne jednoducho upravovať v návrhovom zobrazení. Formulár upravujeme tak, že nastavujeme vlastnosti buď pre celý formulár, alebo jeho častí. Vlastnosti celého formulára sprístupníme z kontextovej ponuky vyvolanej kliknutím pravým tlačidlom myši, keď jej kurzor je na voliči formuláru – ľavý horný roh formuláru. Na obrázku je okno vlastnosti formulára.

Ak potrebujeme nastaviť napríklad typ písma v hlavičke formuláru, z kontextovej ponuky vyberieme vlastností pre túto časť, kde zvolíme požadované hodnoty, pozri nasledujúci obrázok.

Page 40: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 40 -

Výber údajov – filtre Praktické uplatnenie databázy sa prejaví len vtedy, ak z celkového množstva zadaných údajov budeme vedieť vybrať len tie, ktoré práve potrebujeme. Access používa na výber požadovaných údajov filtre a dopyty.

Pomocou filtrov vyberieme požadované údaje najrýchlejšie a tento spôsob je aj najjednoduchší. Filter vyberie a zobrazí zo skupiny údajov len ich časť, ktorá zodpovedá zadaným kritériám. Access používa viaceré filtre:

1. Filter podľa výberu - používame ho, ak z rozsiahlejšej tabuľky je potrebné vybrať údaje pre danú hodnotu poľa. Hovoríme tiež že vybrané záznamy spĺňajú dané kritérium. Napríklad z tabuľky žiakov vyberieme všetky záznamy žiakov triedy prima. Prevedieme to tak, že pre pole Trieda s hodnotou prima zobrazíme kontextovú ponuku (stlačíme pravé tlačidlo myši) a vyberieme príkaz Filtrovať podľa výberu .

Výsledok bude tabuľka podľa obrázku:

Skutočnosť, že je tabuľka filtrovaná vidíme v stavovom riadku aplikácie Access. Filtrovanie tabuľky je možné aplikovať aj viackrát podľa ďalšieho kritéria, až kým nedostaneme zobrazené len požadované údaje. Po uložení tabuľky s filtrom sa uloží aj spôsob filtrovania. Keď ju potom zobrazíme bude na ňu filter aplikovaný. Filter zrušíme príkazom Zrušiť filter alebo triedenie údajov .

Page 41: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 41 -

2. Filter mimo výber - na rozdiel od predchádzajúceho filtra sa teraz vyberú všetky záznamy, ktoré nezodpovedajú kritériu.

3. Filter podľa formulára . Ak otvoríme tabuľku Ziaci

a stlačíme tlačidlo Filter podľa formulára, alebo vyberieme príslušný príkaz z ponuky Záznamy - Filter - , otvorí sa okno s týmto názvom, v ktorom môžeme nastaviť hodnotu zo zoznamov aj pre viaceré polia.

Filtrovanie spustíme stlačením tlačidla Použiť filter .

4. Rozšírený filter je podobný filtru podľa formulára. Oproti nemu má tú výhodu, že

triedenie údajov môžeme nastaviť pre každé pole zvlášť.

Dopyty V Accessu je možné dopyty použiť podobne ako filtre nielen na vyhľadanie a zobrazenie žiadaných údajov jednej tabuľky, ale výber údajov môžeme urobiť aj z viacerých tabuliek. Ďalší zásadný rozdiel medzi filtrom a dopytom spočíva v tom, že pomocou dopytu môžeme v tabuľke súhrne meniť údaje, alebo do tabuľky dodávať spracované údaje z iných tabuliek. Dopyt teda využívame na vykonávanie výpočtov s údajmi v tabuľke.

Dopyt je samostatným objektom databázy, môžeme ho spustiť kedykoľvek prostredníctvom jeho zástupcu v okne databázy. Dopyt vytvárame podobne ako tabuľku. Aj tu máme možnosť vytvoriť dopyt ručne v návrhovom zobrazení, alebo pomocou sprievodcu. Jednotlivé polia do dopytu môžeme vyberať z tabuliek alebo z dopytov.

Druhy dopytov:

Výberový dopyt - používa sa často na zobrazenie údajov z viacerých tabuliek, najviac sa podobá filtru.

Page 42: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 42 -

Krížový dopyt - vytvorí tabuľkový list podobný z tabuľkových kalkulátorov, ktorý obsahuje závislosť jedných údajov na druhých. Krížové dopyty slúžia ako základ pre tvorbu grafov.

Akčný dopyt - tieto dopyty podľa zadaných kritérií upravujú veľké množstvo údajov v databáze, rozdeľujeme:

o Aktualizačný dopyt - týmto dopytom v databáze môžeme zmeniť údaje, napríklad, ak chceme pre všetky výrobky upraviť cenu zníženú o 8%.

o Pridávací dopyt - do tabuľky pridá záznamy, ktoré sú výsledkom dopytu.

o Odstraňujúci dopyt - vykoná výber záznamov podľa zadaných kritérií a tieto záznamy odstráni z databázy.

o Vytvárací dopyt - výsledok dopytu uloží do novej tabuľky.

Vytvorenie dopytov pomocou sprievodcu V okne databázy vyberieme na paneli Objekty položku Dopyty a stlačíme tlačidlo Nový . Z okna Nový dopyt vyberieme Sprievodca jednoduchým dopytom a stlačíme OK. Zaužívaným postupom vyberieme v nasledujúcom okne zo zvolených tabuliek a dopytov príslušné polia, ktoré chceme mať vo výsledku dopytu, stlačíme tlačidlo Ďalší . V nasledujúcom okne je potrebné zvoliť aký typ výberového dopytu chceme vytvoriť, máme dve možnosti:

o Podrobný dopyt - zobrazí všetky vybrané polia

o Súhrnný dopyt - vykoná základné štatistické výpočty vo zvolených poliach a zobrazí výsledky (napríklad počet záznamov, sumy hodnôt, priemer, nájde maximálnu a minimálnu hodnotu). Je samozrejmé, že tieto výpočty sa dajú robiť len na číselných poliach.

Page 43: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 43 -

Zobrazenie výsledku súhrnného dopytu:

Zobrazenie výsledku podrobného dopytu:

Vytvorenie dopytov v návrhovom zobrazení V okne Nový dopyt vyberieme Návrhové zobrazenie .

Ak chceme napríklad zobraziť údaje o žiakoch triedy s informáciou aké učebnice majú požičané, budeme ich vyberať z tabuliek Ziaci a Ucebnice. Preto tieto tabuľky zobrazíme v hornej časti okna a dané polia pretiahneme myšou do záhlavia tabuľky. Názvy zobrazovaných tabuliek vyberieme z okna Zobraziť tabuľku, ktoré sa zobrazí týmto príkazom kontextovej ponuky. Pozri obrázok.

Page 44: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 44 -

Výberový dopyt uložíme príkazom Uložiť, pričom ho vhodne pomenuje. Výsledok príkazu je na sledujúcom obrázku.

Filtrovanie v dopyte Ak by sme v predchádzajúcom príklade potrebovali vypísať len požičané učebnice pre žiačku Elenka1B, stačí vložiť do riadku Kritériá: hodnotu v príslušnom poli (dávame ju do úvodzoviek - pole je typu text, ale úvodzovky doplní aj Access), pozri obrázok.

Page 45: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 45 -

Dopyt zobrazil údaje podľa nášho želania, pozri obrázok.

Kritériá na zobrazenie údajov môžu byť aj zložitejšie. Vytvárame ich pomocou operátorov. Používame napríklad relačné operátory: = (je rovné), >, >=, <, <> (nerovná sa), atď. podľa zvyklostí v matematike, ale existujú aj špeciálne operátory, napríklad BETWEEN slúži na výber hodnôt z intervalu, pričom hodnoty sú oddelené slovom AND, ďalej operátor LIKE slúži na vytvorenie hodnoty obsahujúcej reťazec, pričom je možné použiť znak * zastupujúci ľubovoľné iné znaky, alebo znak ? , ktorý zastupuje jeden znak.

Na ilustráciu uvediem výpis žiakov z tabuľky žiaci, pričom číslo žiaka je medzi hodnotami „2“ a „4“ vrátane týchto čísiel. (Pripomeniem, že číslo v tejto tabuľke je typu text, preto hodnota bude uvedená v úvodzovkách.) Kritérium bude:

A zobrazenie výsledku je:

Výpočty v tabuľkách Keď potrebujme napríklad zistiť hodnotu učebníc v tabuľke Ucebnice po jednotlivých druhoch, výsledok dostaneme tak, že zobrazíme v tabuľke učebnice ďalšie pole CelkovaHodnota, v ktorom údaje budú súčin hodnoty učebnice a počtu kusov. Na nasledujúcich obrázkoch vidieť postup vytvorenia dopytu.

Page 46: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 46 -

Zobrazená pôvodná tabuľka Ucebnice.

Nový stĺpec do tabuľky dodáme prostredníctvom výrazu - vypíšeme názov poľa zakončený dvojbodkou podľa obrázku a z kontextovej ponuky vyberieme príkaz Zostaviť... .

Otvorí sa okno Tvorca výrazov, v ktorom obvyklým postupom (využijeme tri podokná zdrojov hodnôt, tlačidlá operátorov a tlačidlo Vložiť) vytvoríme výraz podľa obrázku.

Po stlačení OK sa výraz umiestni do hlavičky poľa (až po opustení kurzora z poľa - týmto sa vyplní aj zaškrtávacie políčko, ktoré označuje, že pole bude vo výpise zobrazené).

Page 47: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 47 -

Po príkaze Uložiť, zvolíme názov dopytu:

Výsledok dopytu je na obrázku.

Ak budeme potrebovať zistiť celkovú hodnotu učebníc v sklade, využijeme súhrnný dopyt aplikovaný na predchádzajúci dopyt s názvom VypisHodnota.

Súhrny v dopytoch Access dokáže počítať súhrny tak, že vypočíta napríklad súčet (ale aj iné štatisctické hodnoty) pre riadky tabuľky s rovnakou hodnotou daného poľa. Všimnime si, že v predchádzajúcom výpise dopytu VypisHodnota je na dvoch riadkoch tabuľky v stĺpci Pocet hodnota 25. Štandardným dopytom môžeme vypísať z tohto dopytu záznamy s poliami Pocet a CelkovaHodnota . Na obrázkoch vidíme návrh dopytu a jeho výpis.

Ak kurzor bude v nejakom poli v návrhovom zobrazení tohto dopytu a zadáme príkaz Súhrny (z kontextovej ponuky, alebo tlačidlom na hlavnom paneli príkazov), pribudne v návrhovom zobrazení dopytu riadok Súhrn, v ktorom môžeme vyberať (po stlačení roztváracieho trojuholníka) zo zoznamu

Page 48: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 48 -

funkcie pre rôzne výpočty. Vyberme funkciu Sum pre pole CelkovaHodnota ako to vidieť na nasledujúcom obrázku vpravo.

Dopyt môžeme spustiť aj bez uloženia stlačením tlačidla spustiť na hlavnom paneli príkazov. Výsledok je na obrázku.

Dopyt zobrazil len tri riadky - riadok s rovnakými hodnotami spojil do jedného riadku, pričom funkcia Sum spočítala hodnoty pre tieto záznamy v poli CelkovaHodnota.

Príklad (učebnice na sklade) V školskej praxi pri požičiavaní učebníc žiakom by bolo vhodné tiež vedieť, že koľko učebníc ostalo na sklade po vyplnení tabuľky PozicaneUc. Ak ovládame teóriu o vytváraní dopytov, nebude to už teraz problém. Použijeme vytvárací dopyt, ktorý vypočíta počet zostávajúcich učebníc v sklade ako rozdiel údaja Pocet v tabuľke Ucebnice a súčtu záznamov s danou učebnicou v tabuľke PozicaneUc (súčet záznamov počítame funkiou Count). Dopyt (vytvorí novú tabuľky pre učebnice, ktorá bude obsahovať aj údaj o počte zostávajúcich učebníc. Postup na riešenie našej úlohy môže byť nasledovný:

1. Vytvoríme dopyt s názvom PocPozicane z polí tabuľky PozicaneUc, v ktorom zistíme počet požičaných učebníc z daného druhu. Zobrazenie dopytu v návrhu a jeho výsledok vidíme na obrázku.

Page 49: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 49 -

2. Vo vytváracom dopyte vypíšeme všetky polia z tabuľky Ucebnice a z dopytu PocPozicane vypíšeme pole PocetPozicanych, Ďalej Vytvoríme nové pole s názvom NaSklade, v ktorom sa budú hodnoty počítať výrazom

NaSklade: ucebnice!Pocet-PocPozicane!PocePozicanych.

Dôležitý obsah z návrhového zobrazenia je na obrázku.

Príkaz s menom TabPocetSklad uložíme a spustíme. Access zobrazí okno s upozornením, že sa chystáme spustiť akčný dopyt, ktorý bude meniť údaje, zvolíme Áno.

Potom môžu nasledovať ďalšie upozornenia, že sa bude vytvárať nová tabuľka, zvolíme Áno.

Nakoniec dopyt vytvorí novú tabuľku s názvom, ktorý bol zvolený na pomenovanie tabuľky v priebehu tvorby vytváracieho dopytu. Na obrázku vidíme vytvorenú tabuľku.

Dopyty v Accessu a SQL príkazy Teóriu o SQL jazyku z úvodu tohto textu si skutočne môžeme prakticky overiť pri tvorbe dopytov. Access pre každý vytvorený dopyt vygeneruje SQL príkaz, ktorý môžeme nielen vidieť, ale aj upravovať. SQL príkaz zobrazíme v návrhovom zobrazení dopytu príslušným príkazom z kontextovej ponuky. Vyvolanie zobrazenia SQL príkazu z predchádzajúcej úlohy je na obrázku.

Page 50: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 50 -

A príkaz vygenerovaný Accesom je:

Ďalšie druhy dopytov, ktoré Access môže vytvoriť sa dajú zostaviť pomerne ľahko s použitím Pomocníka.

Zostavy Zostava je ďalší objekt databázy. Slúži na vytlačenie obsahu tabuliek, alebo obecne spracovaných údajov na tlačiarni. V Accesse opäť existujú viaceré spôsoby na vytvorenie zostáv.

Najrýchlejší cesta k jednoduchej zostave je použiť automatickú zostavu. Ak pracujeme s tabuľkou alebo s výsledkom dopytu a potrebujeme ich obsah rýchle vytlačiť bez väčších nárokov na estetické parametre, vyberieme z ponuky Nový objekt na paneli nástrojov položku Automatická zostava.

Dokonalejšiu zostavu dostaneme využitím sprievodcu. V okne databázy vyberieme objekt Zostavy, stlačíme tlačidlo Nový a môžeme si vybrať príkazy na vytvorenie zostáv podľa obrázku:

SELECT ucebnice.cisloU, ucebnice.Nazov, ucebnice.Autor, ucebnice.Pocet, ucebnice.CenaU, PocPozicane.PocePozicanych, ucebnice!Pocet-PocPozicane!PocePozicanych AS NaSklade INTO PocetUcNaSklade FROM ucebnice LEFT JOIN PocPozicane ON ucebnice.cisloU = PocPozicane.Ucebnica;

Page 51: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 51 -

Stačí si vybrať napríklad Automatickú zostavu: tabuľkovú, vyberieme objekt databázy a po stlačení OK dostaneme zostavu, ktorú už môžeme vytlačiť na tlačiarni. Pozri obrázok.

Ak použijeme sprievodcu, môžeme vytvoriť aj zostavy, ktoré budú obsahovať údaje dokonca z viacerých tabuliek, pričom musíme zvoliť podľa ktorej tabuľky sa budú údaje v zostave zoskupovať. Na nasledujúcich obrázkoch je spôsob návrhu zostavy a jeho výsledok.

Page 52: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 52 -

Pri náročnejších požiadavkách na vzhľad tlačenej zostavy využijeme možnosť vytvorenia zostavy v návrhovom zobrazení.

Vytvorenú zostavu vytlačíme príkazom Vytlačiť z hlavného panelu aplikácie. Pre tlačou je dobré najprv zostavu zobraziť - tlačidlo Náhľad. Tlačidlom Vzhľad stránky môžeme otvoriť rovnomenné okno, kde na jednotlivých kartách môžeme nastaviť parametre tlače.

Vytvorené zostavy môžeme tiež publikovať pomocou programov MS Office. Stačí napríklad vybrať zostavu v okne databázy a zvoliť príkaz z hlavnej ponuky podľa obrázku. Celá zostava sa zobrazí v dokumente MS Word. Tu ju môžeme upraviť ako každý dokument Wordu a nakoniec vytlačiť. Výsledok vidíme na obrázku.

Page 53: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 53 -

Publikovanie údajov údajovou stránkou Tlačová zostava nie je jediný spôsob publikovania údajov, alebo výsledkov analýzy údajov. V Accesse existuje tiež možnosť vytvorenia údajových stránok. Tieto stránky sú zvláštnym typom webových stránok, ktoré slúžia na prezentáciu údajov databázy v sieťach internet a intranet. Údajové stránky v Accesse obsahovo pripomínajú formuláre a vytvárajú sa, môžeme povedať, zaužívaným postupom. Výhodou údajovej stránky je skutočnosť, že Access ju vytvorí aj v kóde HTML, teda údaje je možné potom prehliadať aj v ľubovoľnom prehliadači webových stránok. Príklad takejto stránky zobrazenej MS Explorerom je na obrázku.

Page 54: RNDr. Vladimír NemčkoAk by sme potrebovali v Exceli urobiť analýzu týchto údajov, program by nám zákazníkov ... Suma, DátumPlatby, obidva súbory môžeme spojiť pomocou

RNDr. Vladimír Nemčko Microsoft Access

- 54 -

V závere tohto textu ešte chcem pripomenúť, že v Accesse je možné, podobne ako v MS Excel, analyzovať údaje prostredníctvom kontingenčných tabuliek a kontingenčných grafov. Je to veľmi účinný a efektívny spôsob analýzy údajov. Postup a význam vytvorenia týchto dokumentov bol popísaný na inom mieste. V Accese ho doporučujem zvládnuť s využitím Pomocníka.

Použitá literatúra

[1] Marco Cantu: Myslíme v jazyku Delphi 6. Praha 7: Grada Publishing, a.s., 2002

[2] Ivan Kalaš a kol.: Informatika pre stredné školy (učebnica). Bratislava: SPN 2001

[3] Marek Kocan akol.: Jak vyzrát na počítač. Praha: Computer Press, 2001

[4] Katherine Murray: Microsoft Office XP. Brno: Computer Press 2003

[5] Václav Kadlec: Umíme to s Delphi. Seriál na serveru Živě, 2005

[6] Slavoj Písek: Microsoft Access. Praha 7: Grada Publishing, a.s., 2005

[7] Microsoft Word XP. Bratislava: Asociácia projektu INFOVEK, 2003