Hádam každý sa už stretol s pojmom databáza – napokon určite ju aj každý z nás má, aj keď nie práve v elektronickej podobe (napokon aj naša pamäť je svojim spôsobom databáza). V stručnosti môžeme povedať, že sa jedná o množinu rôznorodých údajov, ktoré potrebujeme používať pre svoju prácu.
Pravdaže, v praxi sa najčastejšie stretneme so špecializovanými databázovými nástrojmi, pod ktorými sú k dispozícii komplexné podnikové riešenia – ako je účtovníctvo, skladové hospodárstvo, mzdy, personalistika… aj s príslušnými väzbami vrátane elektronického styku napr. s bankami a pod.
Databázový nástroj OpenOffice.org Base rozhodne nebudeme radiť medzi takéto nástroje, pretože na to nie je ani primárne určený. Je súčasťou kancelárskeho balíka, a preto jeho uplatnenie budeme predovšetkým hľadať v rozsahu „kancelárie“. Ako vhodné príklady použitia môžeme uviesť najmä v menších firmách evidenciu majetku, jednoduchú personálnu agendu a pod., v súkromnom použití ho dokážeme použiť napr. na evidenciu zbierky CD alebo DVD atď. To však neznamená, že by to bol iba nejaký slabý nástroj, práve naopak, svojimi možnosťami nás príjemne prekvapí.
Samozrejme, teraz môže mnohým prísť na um – však takáto evidencia sa dá robiť aj pomocou iných nástroj OpenOffice.org, napr. pomocou tabuľkového procesora Calc. Už teraz musíme uviesť rozhodnú odpoveď – nie. Napr. v tabuľkovom procesore sme obmedzení počtom riadkov (záznamov), čo v prípade databázy nie je. Ale to najdôležitejšie nás čaká v iných oblastiach, ako sú štruktúrované databázy, oblasti možností automatického vyberania a triedenia údajov, výstupné zostavy a pod.
Hoci to nie je úplne nutné, je vhodné, ak sa pri práci s databázami naučíme (aspoň trochu) základy jazyka SQL (Structured Query Language), pretože v tomto smere OpenOffice.org nedokáže všetko urobiť automaticky a veľa vecí si dokážeme potom naprogramovať jednoduchšie a lepšie.
Nebojte sa SQL príkazov, nie je to až taká strašná veda. Napokon pre prácu v OpenOffice.org Base vám stačí poznať príkaz SELECT pre vytváranie pohľadov či výberov a dotazov nad tabuľkami.
Naša prvá databáza
Aby sme však nezostali iba v teoretickej rovine, ukážeme si, ako vytvoríme jednoduchú databázu, povedzme pre evidenciu majetku. K jej vytvoreniu sa dostaneme postupnosťou volieb v menu Soubor-Nový-Databáze. Následne sa otvorí v samostatnom okne sprievodca, pomocou ktorého dokážeme veľmi jednoducho vytvoriť databázu.
Ako si môžeme všimnúť, OpenOffice.org nám ponúka viacero možností, ako databázu vytvoriť – od vytvorenia vlastnej novej databázy až po napojenie sa na existujúcu databázu (napr. kontaktov v poštovom klientovi Mozilla Thunderbird). Nás bude dnes zaujímať, pochopiteľne, iba prvá možnosť.
Príručky o SQL pre začiatočníkov si nemusíte hneď kupovať, zaujímavé informácie nájdete aj na internete. Napr. na stránkach nášho magazínu, na www.mujweb.cz/www/JemnyUvodDoSql/ si môžete stiahnuť malú, 14stranovú príručku, ktorá je určená pre začiatočníkov. Alebo si stiahnite podrobnejšiu, 32stranovú referenčnú príručku zo stránok zsery.aspweb.cz (PDF soubor, 663 kB).
Prejdeme na druhý krok, kde si môžeme nastaviť, či chceme databázu registrovať v OpenOffice.org. Ak databázu zaregistrujeme, budeme ju mať následne k dispozícii v zozname zdrojov dát (postupnosť volieb menu Zobrazit-Zdroje dat – klávesová skratka [F4]).
Prípadné neskoršie vymazanie našej databázy zo zoznamu zdrojov dát musíme urobiť pomocou postupnosti volieb Nástroje-Volby-OpenOffice.org Base-Databáze, kde nájdeme všetky registrované zdroje dát. Pravdaže, v prípade potreby tu nájdeme aj možnosť zaregistrovania iného zoznamu.
Následne nastavujeme, čo chceme z práve vytvárajúcou sa databázou následne robiť – či ju vôbec chceme otvoriť pre úpravy (štandardne predvolená voľba) a ak áno, tak či chceme použiť pri vytváraní jej tabuliek sprievodcu. Po stlačení klávesy Dokončit sme vyzvaní na zadanie mena databázy a tým je vlastne databáza vytvorená.
Vytvorenie tabuľky v databáze
Asi ste zostali zaskočení konštatovaním, že databáza je vytvorená, hoci sme vôbec ešte nedefinovali, čo vlastne bude obsahovať. Je to však naozaj tak – súbor, kde budú v budúcnosti naše dáta uložené, sa už vytvoril a tak isto, pokiaľ sme databázu registrovali, stala sa už súčasťou OpenOffice.org. To, čo obsahuje, budeme definovať až teraz.
Ako si môžeme všimnúť, databáza v OpenOffice.org Base obsahuje štvoricu údajov – Tabulky, Dotazy, Formuláře a Sestavy. Ako prvé, najdôležitejšie, sú tabuľky. Sú to vlastne základné časti databázy, do ktorých sa budú ukladať jednotlivé údaje. Môžeme ich, čiastočne, prirovnať k tabuľkám v tabuľkovom procesore. V databáze však nemusíme mať iba jednu tabuľku, ale môžeme ich naraz definovať viacej.
Vytvorenie tabuľky pomocou sprievodcu
Pri definícii tabuliek môžeme použiť dva spôsoby pre ich vytvorenie. Najmä pre začiatočníkov je určený spôsob vytvárania tabuľky pomocou sprievodcu. OpenOffice.org nám ponúka pomerne bohaté množstvo preddefinovaných druhov tabuliek, ktoré sú určené pre firemné alebo osobné využitie.
V následujúcich krokoch si môžeme pozrieť typy a veľkosti jednotlivých položiek, údaj o tom, či daná položka je povinná (t.j. musíme ju vyplniť) a pod. Mnohí sa tu zrejme po prvýkrát stretnú aj s pojmom „primárny kľúč“. Čo to vlastne je? V tabuľke musí byť každá položka jednoznačne identifikovateľná (napr. pri osobných údajoch to môže byť rodné číslo). Tento údaj je veľmi dôležitý najmä pre prípadné spájanie rôznych tabuliek a bez jeho zadania nie je možné zadávať údaje do tabuliek. Pravdaže, všetky údaje môžeme zmeniť.
Nakoniec nám nezostáva nič iné, než tabuľku pomenovať a rozhodnúť sa, či chceme do nej ihneď vkladať údaje, resp. chceme pred tým urobiť ešte iné kroky.
Vytvorenie tabuľky v priamom režime návrhu
Druhý spôsob vytvárania tabuliek je oproti prvému trochu náročnejší v tom, že najmä musíme vedieť, aké dátové typy budú mať naše položky. Na druhej strane pri návrhu nie sme ničím obmedzovaní a úplne slobodne sa rozhodujeme o všetkom, čo chceme mať v tabuľke.
Vlastná definícia tabuľky je pomerne jednoduchá – zadáme meno položky a jej typ. Typy nám OpenOffice.org automaticky ponúkne v rozbaľovacom poli, takže sa nemusíme trápiť s tým, že pozabudneme, ako sa presne definuje ten-ktorý typ položky. Nakoniec ešte určíme, či je táto položka povinná, určíme jej veľkosť a ďalšie parametre, ako napr. pri číselných položkách automatické zväčšovanie, počiatočnú hodnotu a pod. Pravdaže, nesmieme zabudnúť na to, že jedna položka musí byť primárny kľúč. Tento nastavíme jednoducho cez kontextové menu na príslušnej položke.
V našom príklade pre evidenciu majetku si zadefinujeme naozaj jednoduchú tabuľku s položkami Inventárne číslo (typ celé číslo – integer), Názov (typ text), Cena (typ reálne číslo – real) a Osobné číslo (typ celé číslo – integer). Všetky položky budú povinné a zároveň budeme inventárne číslo priraďovať automaticky. Primárny kľúč bude, ako inak, inventárne číslo. Tabuľku nazveme povedzme Zoznam_majetku.
Vytvorenie pohľadu nad tabuľkami
Ak máme v databáze zadefinovaných viacero tabuliek, môžeme vytvoriť tzv. pohľad nad nimi, t.j. spojiť ich akoby do jednej, hoci údaje sa nachádzajú v rozdielnych tabuľkách. Práve v tomto prípade je mnohokrát dôležité, aby boli správne definované primárne kľúče.
Vytvorte si pohľad nad niekoľkými tabuľkami a potom sa prepnite do SQL režimu. Je to vynikajúca škola na to, aby ste videli syntax príkazu SELECT v konkrétnom použití. Nezabudnite si takto odskúšať viaceré varianty (napr. s jednou tabuľkou, s dvomi ale bez uvedenia väzby medzi nimi, s dvomi a s uvedením väzby medzi nimi a pod.), aby ste pochopili jednotlivé časti.
Pravdaže, môžete sa opýtať, prečo nemáme údaje v jednej tabuľke. Na to sú práve databázy, aby sme nemuseli mať všetky údaje na jednom mieste, ale mohli sme ich vhodne spájať – napr. zoznam majetku s personálnou databázou. Pretože v praxi používa každý pracovník viacero zariadení (stôl, stoličku, počítač…) je nepraktické, aby sme pri každom zariadení mali jeho kompletné údaje – meno, priezvisko, rodné číslo, dátum nástupu do zamestnania, dosiahnuté vzdelanie…
Pochopiteľne, platí to aj naopak, takže nebudeme mať pracovníka v personálnej agende povedzme päťkrát iba preto, lebo má v používaní práve päť zariadení. Stačí, ak do tabuľky o majetku zaradíme jedinečný údaj (povedzme osobné číslo) o tom, kto zariadenie používa a následne vytvorením jednoduchého pohľadu získame potrebný prehľad.
Pretože sme si v našom príklade o evidencii majetku zaraďovali do tabuľky aj evidenčné číslo pracovníka, ktorý používa daný majetok, zadefinujeme si teraz aj druhú – personálnu tabuľku. Pre jednoduchosť nám v našom príklade bude stačiť osobné číslo (tento údaj bude primárny kľúč a bude sa priraďovať automaticky), meno a priezvisko. Všetky údaje budú povinné a tabuľku nazveme Zoznam_ludi.
Teraz si vytvoríme pohľad nad tabuľkami, ktoré sme už definovali. Pri vytváraní pohľadu je dobré, ak v tabuľkách už máme zadané nejaké údaje. Je to tak preto, lebo hneď môžeme vidieť dosiahnutý výsledok, takže prípadné nedostatky môžeme podľa potreby okamžite opraviť. Údaje do tabuliek môžeme vkladať ihneď po ich zadefinovaní – tabuľky stačí otvoriť dvojklikom.
Urobme si teraz pohľad nad našimi dvomi tabuľkami s tým, že nás bude zaujímať, kto má aký majetok v používaní. Takýto problém zaujíma určite mnohých, napokon pri odchode pracovníka chceme, aby nám vrátil všetko, čo v tomto smere používal.
Prvé, čo musíme urobiť, je výber vlastných tabuliek, nad ktorými chceme robiť pohľad. Už teraz musíme upozorniť, že novovytvorený pohľad sa bude v budúcnosti tváriť ako samostatná tabuľka, takže môžeme následne robiť pohľad nad pohľadmi…
Ako druhý krok povyberáme (a prípadne pomenujeme) údaje, ktoré chceme z príslušných tabuliek zobrazovať. V hornej časti si môžeme kedykoľvek nechať zobraziť výsledok. Pretože OpenOffice.org nemôže vedieť, aké väzby (relácie) sme medzi tabuľkami definovali (v našom príklade je to osobné číslo), musíme mu to povedať. Stačí, ak tento údaj potiahneme myšou zo zoznamu položiek jednej tabuľky na príslušnú položku v zozname druhej tabuľky.
Nakoniec, pri jednotlivých údajoch môžeme zároveň zadávať rôzne usporiadanie, výberové podmienky a funkcie (počet a v prípade číselných údajov aj priemer, maximum, minimum a pod.). Nakoniec, ako pri vytváraní tabuliek, musíme pohľad pomenovať, povedzme Majetok_v_pouzivani.
Vytváranie výberov (dotazov) v databáze
Druhá časť, ktorú môže databáza obsahovať, sú rôzne výbery údajov nad už vytvorenými tabuľkami. Je určená na to, aby sme dokázali rýchlo získať prístup k určitej množine údajov bez toho, aby sme opakovane museli zadávať tie isté kritéria – napr. prehľad ľudí, ktorým končí skúšobná doba, sumárne výsledky za určité obdobie a pod.
Podobne, ako pri tabuľkách, aj pri definícii výberov máme možnosť použiť tri rôzne formy ich vytvorenia. Tejto časti sa však už nebudeme venovať tak podrobne, ako v prípade tabuliek, ale pozrieme sa iba na možnosť vytvorenia výberu pomocou sprievodcu, čo je pre tých, ktorí neovládajú SQL jazyk v tomto prípade asi najrýchlejšia cesta k dosiahnutiu požadovaného výsledku. Iba podotýkame, že možnosť definície výberu v režime návrhu je vlastne totožná s vytváraním pohľadov nad tabuľkami.
Vlastný výber sa pomocou sprievodcu definuje jednoducho v niekoľkých postupných krokoch. Najprv vyberieme tabuľku (pohľad), z ktorej chceme urobiť výber a vyberieme položky, ktoré nás zaujímajú. Pokiaľ chceme, môžeme použiť štyri postupné triedenia, aby výstup zodpovedal aj v tomto smere našim požiadavkám.
Veľmi dôležitý je ďalší krok, v ktorom môžeme zadefinovať tri výberové podmienky, podľa ktorých budú údaje vyhľadávané (filtrované). Ak chceme definovať výber, v ktorom budeme chcieť dostať v niektorých položkách namiesto podrobných údajov údaje sumárne, môžeme potrebné funkcie (sumár, priemer, minimum, maximum) zadefinovať v nasledujúcom kroku. V prípade sumárnych údajov následne musíme nakoniec zadať skupiny a podmienky,podľa ktorých sa budú údaje sumarizovať.
Nakoniec nám zostávajú „kozmetické úpravy“, ako je prípadné pomenovanie položiek, záverečné skontrolovanie údajov v krátkom prehľade a uloženie dotazu do výstupného súboru.
Vstupné formuláre
V predchádzajúcich krokoch sme si navrhli tabuľky, resp. rôzne pohľady nad nimi. Pravdaže, priamo v časti tabuliek môžeme do nich aj zadávať údaje. Musíme si však priznať, že táto časť nie je práve používateľský príjemná a preto je lepšie, ak pre vstup resp. opravu údajov zadefinujeme krajšie formuláre, kde budeme mať jednotlivé položky príslušných tabuliek prehľadne rozložené na celej obrazovke.
A práve na tento účel nám slúži tretia časť databázy, kde môžeme takéto rôzne formuláre definovať. Ako sme si už mohli zvyknúť, k dispozícii máme znovu dve možnosti definície formulárov. Pretože tvorba formuláru v režime návrhu je naozaj pre začiatočníkov obtiažna, budeme sa venovať iba možnosti jeho vytvorenia pomocou sprievodcu.
Na úvod si vyberieme tabuľku (dotaz) a jej položky, ktoré chceme zadávať. V predchádzajúcej časti sme si nepriamo ukázali, že tabuľky môžeme mať rôzne štruktúrované – napr. pri účtovníctve budeme mať jednu tabuľku s definíciou dokladov a druhú tabuľku s vlastnými pohybmi na príslušných účtoch. V takomto prípade využijeme nastavenie podformulárov, t.j. vložených formulárov pre takto štruktúrované tabuľky. V našom príklade to však nebudeme potrebovať a ich použitie by už naozaj presiahlo rámec tohto článku.
V ďalšej časti si nastavíme vzhľad nášho formulára – teda, ako majú byť jednotlivé políčka rozmiestnené na obrazovke. K dispozícii máme štyri preddefinované vzory. Pokiaľ nám to nepostačuje, vyberieme si jeden z nich a následne, po zadefinovaní ho upravíme (voľba Upravit v kontextovom menu v zozname formulárov).
Veľmi dôležitá je ďalšia časť. Tu určujeme, či budeme formulár používať iba pre zadávanie nových údajov, alebo aj na zobrazovanie existujúcich údajov. V druhom prípade navyše môžeme určiť, či už existujúce údaje môžeme meniť, mazať a či máme povoliť pridávanie nových údajov.
Netreba sa báť vyrobenia viacerých vstupných formulárov – napr. osobitne pre zadávanie nových položiek, osobitne pre opravu a osobitne pre mazanie omylom zadaných údajov. Pokiaľ sa vhodne odlíšia (napr. farbou pozadia), pomôže to pri práci s údajmi a nedôjde k zbytočným omylom.
Nakoniec nastavíme farbu pozadia formulára, vzhľad vstupných políčok a uložíme ho pod prehľadným názvom. Vzhľadom na vyššie uvedené možnosti je zrejmé, že pre rôzne možnosti (vstup iba nových údajov, oprava existujúcich údajov…) si môžeme zadefinovať osobitné formuláre a osobne túto možnosť odporúčam najmä pre začiatočníkov. Vlastný formulár sa potom otvára v prostredí textového procesora OpenOffice.org Writer.
Výstupné zostavy
Posledná časť, ktorú môže databáza v OpenOffice.org obsahovať, sú rôzne výstupné zostavy. V tomto prípade máme jednu jedinú možnosť – použiť sprievodcu pre ich vytvorenie, takže s touto časťou naozaj nebudú mať problémy žiadny používatelia.
Nezabúdajte, že databáza môže byť použitá ako zdroj údajov pri hromadnej korešpodencii. O hromadnej korešpodencii sme bližšie hovorili v decembrovom čísle (12/2006) nášho magazínu LinuxEXPRES.
Ako prvý krok je, pravdaže, výber príslušnej tabuľky (alebo dotazu) a položiek z tejto tabuľky, ktoré chceme mať vo výstupnej zostave. Následne si môžeme zmeniť popisky k príslušným poliam, pokiaľ nám nevyhovujú štandardne nastavené, ktoré zodpovedajú názvom príslušných položiek v tabuľkách. Podobne, ako pri výberoch, aj tu môžeme údaje zoskupovať a triediť podľa rôznych kritérií, pričom určujeme poradie triedenia.
V nasledujúcej časti určujeme vzhľad výstupnej zostavy. OpenOffice.org nám ponúka skoro dvadsať rôznych vzorov rozvrhnutia údajov v kombinácii s desiatkou rôznych záhlaví a zápätí, čím môžeme dosiahnuť naozaj pomerne zaujímavé množstvo tvarov výstupných zostáv. Pochopiteľne, návrh výstupnej zostavy si môžeme na záver ľubovoľne upraviť v prostredí textového procesora OpenOffice.org Writer.
Na záver ešte upozornime, že zostavu môžeme vytvoriť tzv. statickú, t.j. vytvorí sa z aktuálnych údajov a už sa nezmení (vhodné napr. pre vytvorenie kontrolnej zostavy pre prípad neoprávnenej zmeny údajov v databáze), alebo dynamickú (t.j. vždy sa vytvorí zostava nová, podľa aktuálnych údajov v databáze).
Hoci to tak na prvý pohľad nevyzerá, v OpenOffice.org Base by sa možno dalo naprogramovať aj komplexné účtovníctvo firmy. Tu sa natíska otázka ceny a údržby takéhoto riešenia, pretože už existujúce programy sú častokrát lacnejšie iba preto, že sú už mnohonásobne nasadené a odskúšané.