Odpovědi na otázky ze shrnutí prvního dílu
-
Uveďte dva různé významy slova databáze.
Databáze znamená uspořádaná data – bázi dat – např. o knihách v knihovně, o pacientech u lékaře, o zboží v obchodě, o studentech školy apod. Databáze je ale také označení pro program, který s bází dat pracuje. Buď jde o obecný databázový systém, tzv. systém řízení báze dat (SŘBD, DBMS), nebo specializovaný program např. pro zpracování účetnictví, dat knihovny apod.
-
Jaké je přednostní určení programu Base? Uveďte některé jeho výhody i nedostatky?
Base je určen pro menší databáze, pro výuku základů práce s databází. Výhodou je příjemné grafické prostředí se snadným ovládáním, Base je také zdarma. Nevýhodou je, že Base je určena především pro lokální databáze. Mohla by se ale použít i jako grafické koncové rozhraním pro spolupráci s jiným SŘBD typu klient – server.
-
Stručně vysvětlete, jak uživatel může získat program Base.
Base je součástí kancelářského balíku OpenOffice.org. Výhodou linuxových distribuci je, že obvykle už OpenOffice.org (klon Go-oo) obsahují v základním vybavení. Pokud by byl balík nainstalován bez Base, dá se snadno doinstalovat.
Teorie 1.: Druhy databází. Záznam, pole, relační databáze
Ve starší knize Tvorba aplikací v MS Office 97 píše autorka Christine Solomon o databázovém programu Access toto: „... na rozdíl od textových editorů, tabulkových procesorů a softwaru určeného pro prezentace nejsou databáze nástrojem pro konečného uživatele – databáze jsou nástrojem programátorů. Ačkoliv je používání Accessu snadnější než používání ostatních relačních databází, vyžaduje nezbytně, aby uživatelé relačním databázím rozuměli...“ Totéž platí pro Base: Pokud chcete vytvořit rozumnou databázi, potřebujete k tomu znát i jistou teorii. V tomto seriálu to budou sice jen základy, ale při práci s Base se vám budou hodit.
Z předchozího dílu víte, že databáze je množství uspořádaných dat, ale také program pro jejich zpracování. Všimněme si nejdřív, jak se vyvíjelo ukládání dat v databázích.
Vývoj ukládání dat v databázi
-
Databáze bez pomoci výpočetní techniky: pomocí lístků, karet apod. Každá karta představuje jeden záznam databáze, který se skládá z položek. Příkladem je bývalá kartotéka v knihovně nebo u lékaře. Záznam tedy obsahuje všechny údaje o jednom prvku databáze, tyto údaje jsou položkami záznamu. Je asi snadné představit si, jak obtížné může být zjistit z takové databáze odpovědi na potřebné dotazy. Jak např. najít všechny knihy, které jsou v knihovně právě déle než dvacet let, nebo všechny pacienty, kteří se mají dostavit k jisté prohlídce (přitom výběr pacientů je možná určen více různými podmínkami). A pokud už tyto pacienty sestra nebo lékařka vyhledá, bude muset pracně vypsat výstupní sestavu, např. jejich adresy na pozvánky.
-
Starší způsoby práce s databází v počítači: Šlo o speciální jednoúčelové programy, obsahující spolu s algoritmem i zpracovávaná data, což mělo závažné nevýhody. Ovšem pokud už program data obsahoval, počítač dokázal odpovídat na dotazy nebo tvořit výstupní sestavy nesrovnatelně rychleji.
-
Tabulka v tabulkových procesorech (např. Calc, Excel): Toto řešení není skutečnou databází, je použitelné jen pro malé množství dat a má mnoho nevýhod. Pomůže vám ale pochopit výhody dalšího typu (relační databáze). Potíže jsou spojeny s tím, že při práci s tabulkovým procesorem obvykle platí, že databáze = jediná tabulka. Další pojmy se ale používají i v databázích relačních: záznam píšeme do řádku tabulky. Záznam popisuje jeden objekt databáze (jedna kniha, jeden pacient apod.). Jeho data tedy spolu úzce souvisí, ale jistě jsou různých datových typů (jméno je text, datum narození je datum, věk je číslo atd.). Položky (políčka tabulky) stejného druhu tvoří sloupce tabulky (nazývaný také pole). Všechny hodnoty daného sloupce musí být stejného typu! Např. ve sloupci pro příjmení osob budou jen příjmení, tedy texty (ne čísla, datum apod.), ve sloupci s datem narození budou zase jen data (ne texty).
-
Relační databáze. Databáze je tvořena větším množstvím menších tabulek (tzv. relací, jde o pojem z matematiky, z toho vychází název relační databáze) a vazbami mezi nimi (vazby jsou vztahy, také pro ně se někdy používá slovo relace).
V předchozích odstavcích se vyskytly některé pojmy z oblasti databází, se kterými se v textu ještě setkáte a je dobré na ně upozornit: záznam – řádek tabulky, pole – sloupec tabulky, položka – políčko tabulky, dotaz, výstupní sestava, tabulka – relace, vazba mezi tabulkami (také nazývaná relací).
Nevýhody databáze jako jedné tabulky (např. v Calcu)
Nevýhod je více, uvedu základní a jejich příklady:
- V jediné tabulce hrozí silná redundance (nadbytečnost, opakování) dat.
- S tím souvisí hrozba vzniku chyb narušením integrity databáze, např. při aktualizaci či doplňování dat.
Příklad redundance: Pokud bychom měli databázi knih v knihovně jako jedinou tabulku, mohly by položky záznamu vypadat např. takto:
NázevKnihy, Autor, Obor, Podobor, Vydavatel, RokVydání, Vypůjčena, Jméno, Příjmení, Ulice, Město, DatumVýpůjčky, DatumVrácení, PočetVýpůjček.
Jestliže bude mít jeden čtenář (např. pan Adam) půjčeno dvacet knih, musel by knihovník v každém z těchto dvaceti záznamů uvést znova čtenářovo jméno, příjmení i adresu! Tím databáze zbytečně narůstá.
Příklad narušení integrity databáze: Představte si, že při zadávání jména u jedné z půjčených knih dojde k překlepu (např. z Adam na Amad). To je závažné narušení soudržnosti databáze, tato kniha, kterou má doma pan Adam, bude už mezi jeho výpůjčkami knihovnicí těžko dohledána! Jiný příklad: V okamžiku, kdy pan Adam vrátí všechny knihy a zrovna si nepůjčí žádnou novou, budou z tabulky vymazány všechny záznamy s daty pana Adama. Až přijde do knihovny příště, bude muset knihovnice údaje o tomto čtenáři opět získat!
Výhody relační databáze
Souvisí s rozdíly mezi databází tvořenou v Calcu (Excelu) a relační databází v Base (Accessu, …). V relační databázi bude víc tabulek: např. v jedné tabulce jsou jen jména a adresy lidí, kteří si půjčili nějakou knihu, tedy i náš pan Adam. Nikam jinam už nemusíme tyto údaje ukládat (opakovat je). Do druhé tabulky uložíme údaje o knihách. Pokud si pak pan Adam vypůjčí další knihu, nebude knihovnice znovu psát všechny jeho údaje, jen k záznamu o knize v druhé tabulce přiřadí vazbou záznam pana Adama z tabulky první. A pokud pan Adam všechny knihy vrátí, jeho záznam v tabulce čtenářů jistě aspoň po nějakou dobu ještě zůstane, takže při jeho příští návštěvě knihovny jsou všechny jeho údaje stále k dispozici.
-
v relační databázi se tedy především vyhneme opakování stejných údajů – redundanci dat,
-
k dispozici jsou různé nástroje pro udržování integrity (bezchybnosti, soudržnosti) databáze. Integritní omezení hlídá obvykle sám SŘBD (včetně Base).
-
při vyhledávání či řazení se může pracovat jen s potřebnými daty (tabulkami), ne s celou databází jako v Calcu či Excelu – relační databáze urychlí práci s daty,
-
databázový systém umožňuje vytvořit rozsáhlejší databáze než tabulkový procesor.
POZNÁMKA: Stejně jako v programování i v oblasti databází už delší dobu vítězí objektová orientace. Zatímco ale Objektově orientované programování (OOP) je dnes samozřejmostí, objektově orientovanými databázemi stále ještě nebyly vytlačeny databáze relační a nějakou dobu to ještě asi potrvá. Navíc Base není určena pro objektové databáze. V tomto kurzu se tedy věnujeme relačním databázím.
Práce s Base 1.: Vytvoření databáze a tabulek
Objekty databáze
Databáze v Base (i Accessu) může obsahovat především:
-
Tabulky (neboli relace), formuláře, dotazy a sestavy (dále makra apod.).
-
Vztahy mezi tabulkami: tabulky jsou provázány vztahy – vazbami. I vztahům se často říká relace, ale název relační databáze vychází z rovnosti relace = tabulka.
Objekty databáze se zobrazují v hlavním okně programu. Upozornění: Když otevřete např. některou z tabulek databáze (třeba při zadávání dat), zobrazí se v dalším samostatném okně – nezapomeňte na to, někdy by to mohlo uživatele zmást.
Databáze jako soubor dat v Base má příponu .odb (OpenDocument dataBase).
Vytvoření nové databáze
Databázi umožňuje Base (Access) vytvořit:
- samostatně – uživatel databázi (zatím prázdnou) založí sám několika volbami,
- nebo v Accessu také z nabízených vzorů (obsahují již připravené tabulky, vazby mezi nimi, formuláře, dotazy apod., uživatel jen vybere, co se mu hodí). Dá se očekávat, že v dalších verzích OpenOffice.org se tato možnost objeví i v Base.
Vytvoření databáze by měla předcházet analýza a návrh. Když ji vytvoříte bez této přípravy, hrozí velké nebezpečí toho, že po jisté době práce s databází (tvorba tabulek, dotazů, formulářů, plnění tabulek daty) přijdete na to, že struktura by měla být jiná, lepší. Měnit ale stavbu databáze, obzvláště už naplněné daty, je velmi pracné a nepříjemné! Analýze a návrhu bude věnován hlavně pátý díl seriálu.
Založení databáze, registrace databáze
Poklepete-li na ikonu nebo odkaz na Base, otevře se nejdřív okno Průvodce databází. To umožní mj. založení databáze, a to ve dvou krocích s několika volbami.
Jednou z voleb druhého kroku je tzv. registrace databáze v OpenOffice.org. To nesouvisí s registrací u výrobce tohoto kancelářského balíku. Jde o to, že se data zpřístupní pro všechny programy vašeho balíku OpenOffice.org, např. pro Calc.
Průvodce – druhý krok s registrací
databáze
Bez registrace se informace o databázi uloží jen v samotném databázovém souboru. Registraci tedy doporučuji. (Je ji ovšem možno provést i dodatečně volbou Nástroje | Volby | OpenOffice.org Base | Databáze). Při založení databáze je prostě nejlepší ponechat v průvodci přednastavené volby.
Po kliknutí na tlačítko Dokončit musíme databázi (i když ještě zcela prázdnou) hned uložit pod vhodným názvem. Teprve pak můžeme v databázi tvořit tabulky a další objekty.
Po ukončení průvodce se otevře okno nové databáze, zatím zcela prázdné (obrázek byl uveden v předchozím dílu).
Úkol 1: Založte postupem, kterým vás Base provede, databázi s názvem Knihovna.odb, přitom ji zaregistrujte a uložte.
TIP: Na stránce ShowMeDo je video k založení databáze i odkazy na snímky o dalších činnostech v Base (video je komentováno v angličtině).
Vytvoření tabulky v databázi
Tabulka je základním stavebním kamenem relační databáze. V Base ji můžeme vytvořit dvěma způsoby:
-
pomocí průvodce – z nabízených připravených vzorů, které obsahují větší počet sloupců neboli polí (atributů) budoucí tabulky. Uživatel jen vybere ty, které se mu hodí.
-
v režimu návrhu – uživatel sám zadá názvy sloupců budoucí tabulky a vybere pro ně vhodné datové typy (víte už, že všechny buňky jednoho sloupce – pole – musí být stejného typu).
V naší databázi Knihovna.odb vytvoříme nejdřív tabulky Spisovatel a Kniha, později k nim přibudou ostatní. Vyzkoušíme přitom postupně oba způsoby.
Vytvoření tabulky průvodcem
Využijte druhou volbu Použít průvodce pro vytvoření tabulky... z podokna Úlohy v okně Base, viz obrázek prázdné databáze v 1. dílu. Nově otevřené okno Průvodce tabulkou má čtyři kroky. V prvním (Výběr polí) vyberte v části Kategorie přepínač Osobní. Z roletky v části Vzorové tabulky zvolte slovo Autoři. Ze seznamu Dostupná pole pak vyberte sloupce, které se v databázi knihovna budou hodit, doporučuji sloupce AutorID, Příjmení, KřestníJméno; výběr provedete tlačítkem se šipkou vpravo, vybrané sloupce se tím přesunou do pravého seznamu (Vybraná pole). Klikněte na tlačítko Další.
Výhodou průvodce je, že jsou už většinou vhodně nastavené typy vybraných polí, takže v druhém kroku Nastavit typy a formáty nebudeme nic měnit.
Obtížnější je nastavení Primárního klíče ve třetím kroku. Primárnímu klíči se bude věnovat teorie dalšího dílu, ale vysvětlení tohoto pojmu najdete v horní části okna v tomto kroku. Vyberte druhý přepínač Použít existující pole jako primární klíč. V roletce Název pole zvolte AutorID a zatrhněte volbu Automatická hodnota.
V posledním kroku stačí dát tabulce název. Přepište přednastavené slovo Autoři na Spisovatel. Nechte vybraný přepínač Okamžitě vkládat data. Proto se po dokončení průvodce hned otevře okno této tabulky. Zatím si ho jen prohlédněte, ale se zadáváním dat doporučuji spíše ještě počkat na dobu, kdy budeme mít strukturu databáze promyšlenou a hotovou.
Úkol 2: Vyzkoušejte uvedený postup a vytvořte tabulku Spisovatel.
Vytvoření tabulky v režimu návrhu, který je zpočátku možná trochu obtížnější, už nechám do dalšího dílu. Tento postup použijeme u tabulky Kniha.
Otázky na závěr – Shrnutí druhého dílu
Teorie 1, Práce s Base 1
-
Pomocí pojmů ze struktury tabulky vysvětlete pojmy záznam, položka, pole databáze.
-
Co musí platit pro hodnoty všech buněk jednoho sloupce tabulky v databázi?
-
Uveďte dvě hlavní výhody relační databáze před tabulkou v tabulkovém procesoru a stručně je vysvětlete.
-
Uveďte příklad redundance dat a narušení integrity databáze jako jediné velké tabulky.
-
Součástí založení databáze v Base je její registrace v balíku OpenOffice.org. Co tato registrace znamená?
-
Uveďte některé výhody i nevýhody vytvoření tabulky pomocí průvodce.
Co vás čeká v dalším dílu?
Nejdřív vytvoříte tabulku Kniha v režimu návrhu. Ve druhé části teorie se pak budeme věnovat primárním a cizím klíčům tabulek. Potom už bude pro vás snadné vrátit se k Base a vytvořit další potřebné tabulky databáze.