Databáze Databáze je velké množství uspořádaných informací, které popisují určitou oblast (např. školství, zdravotnictví). Databázi si lze představit jako soubor dat, který slouží pro popis reálného světa (např. evidence školní knihovny, sklad chemikálií, evidence studentů). Entita je prvek reálného světa (např. člověk, stroj, vyučovaný předmět, město), který je popsán svými charakteristikami (vlastnostmi). Ty se většinou považují za atributy (např. jméno, příjmení, stav, plat, hmotnost). Databázové systémy Databázový systém (Systém řízení báze dat, zkracováno na SŘBD či DBMS podle anglického database management system) je speciální program, které zajišťuje práci s databází. Jedná se o program, který obsahuje nástroje pro tvorbu, aktualizaci a využití databáze. SŘBD podporují zejména tyto funkce: vytvoření báze dat (CREATE) vkládání dat (INSERT) aktualizace dat (UPDATE) rušení dat (DELETE) výběr z báze dat (SELECT) Dále je podporována tvorba: formulářů (vstupních obrazovek, Forms) výstupních sestav (Reports) K nejrozšířenějším databázovým systémům patří systémy dbase, MS Access, Paradox. Pro rozsáhlejší databáze se používají systémy Informix, Oracle, které pracují pod operačním systémem UNIX. Relační databáze Relační model byl popsán v roce 1970 Dr. Coddem. V současnosti je právě tento model nejčastěji využíván v SŘBD, jelikož má jednoduchou strukturu. Data jsou organizována v samostatných tabulkách, které se skládají z řádků a sloupců. Všechny databázové operace jsou prováděny na těchto tabulkách. Z tabulek lze data vyhledat, vypsat, setřídit, porovnat nebo dále zpracovat. Příklady databází: 1. databáze FIRMA - tabulky Zaměstnanci, Výrobky 2. databáze ŠKOLA - tabulky Žáci, Učitelé, Předměty Tabulky jsou spolu provázány logickými vztahy, tzv. relacemi (viz níže). Návrh databáze Dobrý návrh databáze je základním předpokladem pro vytvoření databáze, která bude přesně a účinně plnit určené funkce. Návrh databáze probíhá před spuštěním databázového programu. Určení typu databáze - uvědomit si funkce, která má databáze splňovat - druh informací, které budou v databázi uloženy - požadavky uživatelů 1/10
Návrh tabulek - základ celé struktury databáze - pozdější změna struktury databáze, která je již naplněna daty, je velice obtížná - určit počet tabulek, počet polí v jednotlivých tabulkách, charakter dat v nich uložených - každá informace v databázi jen jednou - každá tabulka by měla obsahovat informace o jednom předmětu - typ polí odpovídá charakteru dat, který bude do příslušného pole uložen - definování primárních klíčů pole je automaticky indexováno - určit relace mezi tabulkami Normalizace databáze Pravidla pro optimalizaci a zjednodušení tabulek. Existuje několik pravidel pro normalizaci databáze. Každé pravidlo se nazývá normální forma. Je-li splněno první pravidlo, říkáme, že databáze je v první normální formě. Jsou-li splněna první tři pravidla, říkáme, že databáze je ve třetí normální formě. Přestože jsou možné ještě další úrovně normalizace, třetí normální forma je považována za nejvyšší úroveň nutnou pro většinu aplikací. První normální forma (1NF)- tabulka je v první normální formě, pokud všechny sloupce (atributy) nelze dále dělit na části nesoucí nějakou informaci. Jeden sloupec neobsahuje složené hodnoty Příklad: id příjmení a jméno pojišťovna název pojišťovny 1 Karel Novák 111 VZP 2 Jan Novák 213 RBP id jméno příjmení pojišťovna název pojišťovny 1 Karel Novák 111 VZP 2 Jan Novák 213 RBP Druhá normální forma (2NF) - tabulka se nachází v druhé normální formě, jestliže je v první normální formě, a každý neklíčový atribut je plně závislý na primárním klíči, a to na celém klíči a nejen na nějaké jeho podmnožině. Z čehož vyplývá, že druhou normální formu musíme řešit pouze v případě, že máme vícehodnotový primární klíč. Třetí normální forma (3NF) - tabulka je ve třetí normální formě, pokud neexistují žádné závislosti mezi neklíčovými atributy (sloupci), tzn. neklíčová data závisí pouze na klíči a ne mezi sebou. Příklad: Primárním klíčem je Id. Podle definice by název pojišťovny měl být závislý na primárním klíči, ale je závislý na pojišťovně samotné. Pokud bychom chtěli změnit název pojišťovny, bylo by to v tomto návrhu komplikované, a proto použijeme dekompozici a pojišťovnu dáme do jiné tabulky. id jméno příjmení pojišťovna název pojišťovny 1 Karel Novák 111 VZP 2 Jan Novák 213 RBP id jméno příjmení pojišťovna 1 Karel Novák 111 2 Jan Novák 213 pojišťovna název pojišťovny 111 VZP 213 RBP 2/10
Další postup při návrhu databáze - definice formulářů pomocí nich přistupuje uživatel k datům - definice sestav a dalších objektů databáze - tato fáze není časově omezená a lze ji provádět i v případě, že databáze je již plně funkční. 1. tabulka 2. dotaz 3. formulář 4. sestava 5. pohledy 6. procedury Základní objekty databáze: Tabulka Tabulka je soubor údajů, které se týkají stejného předmětu. Např. tabulka Zaměstnanci obsahuje záznamy o zaměstnancích. V tabulce jsou data uspořádána do řádků (věta nebo záznam) a sloupců (pole nebo položka). Tabulka Zaměstnanci číslo zam. jméno adresa datum narození plat. 122 Ivan Volný Ostrava 1.1.1950 10 000 název pole záznam 123 Jan Novák Havířov 1.2.1970 12 000 pole Záznam (věta) je každý řádek v databázové tabulce. Zapisuje informace o jednom předmětu. Všechny věty mají stejnou strukturu. Např. v tabulce zaměstnanců je každý řádek určen pouze informacím o jednom zaměstnanci. Popisovaným objektem může být také kniha v databázi knihovny nebo pacient v lékařských záznamech. Pole je sloupec v tabulce. Obsahuje určitou část informace o popisovaném předmětu. Např. pole v tabulce zaměstnanců je to adresa zaměstnance. Každý záznam v tabulce obsahuje stejná pole. Můžeme přidávat pole, měnit jeho vlastností. Při tvorbě pole určujeme datový typ a délku. V každém poli jsou uložena pouze data stejného datového typu. Např. pole datum narození má určen datový typ Datum, proto nelze do tohoto pole vložit číslo nebo text. Délka pole může být různá. Je vhodné použít nejmenší možnou velikost pole, protože menší tabulky se zpracovávají rychleji a mají menší nároky na paměť PC. Datové typy Pro každé pole v tabulce musíme určit datový typ. V poli jsou uložena data pouze jednoho typu. Datový typ je typ dat, která mohou být v tomto poli použita. Př. pro pole datum narození v tabulce Zaměstnanci je určen datový typ Datum. To znamená, že do tohoto pole nelze vložit jméno zaměstnance text nebo výši platu - měna. Seznam datových typů 1. text je určen pro text nebo kombinaci textu a čísel (např v adresách). Můžeme ho použít také pro čísla, které nejsou určena k matematickým výpočtům, např. telefonní číslo, PSČ. Umožňuje uložení až 255 znaků. 3/10
2. memo používá se pro dlouhé texty. V poli tohoto typu může být uloženo až 65 536 znaků. Např. poznámky a popisy. 3. číslo slouží k ukládání čísel, které se používají k matematickým výpočtům. Př. počet kusů výrobku. Nezapisují se do tohoto pole finanční částky. 4. měna používá se pro peněžní částky v dané měně. Např. cena výrobku v Kč 5. datum/čas slouží pro zadávání datumu a času. Např. datum narození 6. automatické číslo program Access sám tuto položku u každé věty vyplní. 7. ano/ne toto pole může obsahovat pouze jednu ze dvou hodnot. Např. zaměstnanec má/nemá děti, má/nemá přístup k internetu. 8. objekt OLE (Object Linking and Embedding vkládající a spojující) používají se pro ukládání dokumentů z MS Word nebo Excel, obrázků, zvukových záznamů. Např. fotografie zaměstnance 9. hypertextový odkaz slouží k ukládání hypertextových odkazů. Např. odkaz na webové stránky www.centrum.cz, odkaz na e-mail zaměstnance novák@centrum.cz 10. průvodce vyhledáváním umožní vybrat hodnotu z jiné tabulky nebo ze seznamu hodnot s použitím pole se seznamem Vlastnosti pole Vlastnosti polí jsou sadou charakteristik, které umožňují další určení způsobu uložení či zadávání dat do polí nebo jejich zobrazení. Pro každé pole v tabulce určujeme jeho vlastnosti: 1. název pole může být dlouhý maximálně 64 znaků. Nesmí obsahovat tečku. Např. jméno 2. datový typ určí, zda pole bude obsahovat text, číslo, datum 3. popis není nutné ho vyplňovat, používá se pro doplnění názvu pole Podle zvoleného datového typu se mění další vlastnosti pole. Pro pole typu text se určují jiné vlastnosti než pro pole typu datum. Ale nejdůležitější vlastnosti pole jsou stejné pro všechny datové typy. Jsou to: 1. velikost pole - pro text zadáme maximální počet znaků. Pro číslo určíme, zda obsahuje celé nebo desetinné číslo Velikost pole pro číslo bajt rozsah 0 až 255, velikost 1 B celé číslo rozsah -32 768 až 32 768, velikost 2 B dlouhé celé číslo rozsah cca -2 mil až 2 mil, velikost 4 B jednoduchá přesnost reálné číslo na 7 des.míst dvojitá přesnost reálné číslo na 15 des.míst 2. počet desetinných míst ovlivňuje pouze počet zobrazených des.míst, nikoli uložených 3. formát určíme způsob zobrazení pole. Např. pro datum vybereme datum dlouhé 14. února 2007. 4. výchozí hodnota určíme hodnotu, která bude automaticky zadána do pole. Hodnotu lze měnit. Napr. aktuální datum - tlačítko, otevře se Tvůrce výrazu. Ve spodní částí v levém okně kliknout na Funkce/Vestavené funkce, ve středním okně vybrat Datum a čas, v levém okně nalézt funkci Date(), tlačítko Vložit, tlačítko OK 5. je nutno zadat zadáme, zda musí být pole vyplněné 6. ověřovací pravidlo kontroluje hodnoty, zda vyhovují zadanému pravidlu. Např. pravidlo <>0 znamená, že číslo se nesmí rovnat nule. 7. ověřovací text zadáme text, který se zobrazí. 8. Vstupní maska - usnadní zadávání dat do polí, tvořena závorkami, mezerami, pomlčkami a znaky masky 0 číslice, povinná, nelze znaménko -, + 9 číslice nebo mezera, není povinná, nelze znaménko -, + # číslice nebo mezera, není povinná, lze znaménko -, + 4/10
L písmeno A až Z, položka povinná? písmeno A až Z, položka nepovinná A písmeno nebo číslice, položka povinná & libovolný znak nebo mezera, položka povinná C libovolný znak nebo mezera, položka nepovinná Primární klíč V databázovém systému musí být každá věta v tabulce jednoznačně identifikovatelná. Primární klíč je pole nebo skupina polí, které jednoznačně určuje větu. Zajišťuje, že stejný záznam nebude v tabulce zapsán vícekrát. Např. rodné číslo ve větě o zaměstnanci, SPZ pro auto. Nesprávným klíčem je datum narození, protože ve stejný den se narodilo více lidí. To znamená, že nelze jednoznačně určit záznam v tabulce. Relace Po vytvoření různých tabulek pro jednotlivé předměty v databázi je nutné aplikaci sdělit, jak má tyto informace opět zkompletovat. Je nutné definovat relace. Relace je způsob propojení jednotlivých tabulek tak, aby mezi sebou mohly komunikovat a aby jejich propojení umožňovalo svázání vzájemně souvisejících dat. V relačních databázích rozlišujeme tyto typy vzájemných vztahů relací: Relace 1:1 Tato relace se používá tehdy, když jednomu záznamu v první tabulce odpovídá právě jeden záznam v tabulce druhé. Tato relace není příliš používána, jelikož tabulky s takovýmto typem relace obsahují podobné údaje. Proto je možné je sloučit do tabulky jedné a relaci tím zcela vypustit. Zde je třeba dávat velký pozor, aby nám díky zdánlivé podobnosti nevznikla tabulka jediná, zato s velkým množstvím prázdných položek. Relace 1:N Tato relace se používá mezi tabulkami, kde údaj v první tabulce odpovídá několika údajům v druhé tabulce. Jedná se o relaci nejpoužívanější. Tato relace zajistí, že každý údaj v databázi je umístěn pouze na jediném místě. Relace M:N Relace více ku více, je označována jako M:N. Používá se tehdy, když více záznamů v jedné tabulce odpovídá více záznamům v tabulce druhé. Tento typ relace, má však jedno velké omezení, a to, že jej nelze v databázových systémech přímo vytvořit. Tento stav se obchází pomocí triviálního triku vytvoření dvou relací 1:N s pomocnou tabulkou, jež obsahuje pouze primární klíče obou zmiňovaných tabulek. Dotaz Dotazy slouží k zobrazení, úpravě a analýze dat v tabulce různými způsoby. Dotazy umí vybírat data z tabulek podle zadaných kritérií, provádět s daty výpočty. Dotazy také slouží jako zdroj záznamů pro formuláře, sestavy. Typy dotazů: 1. výběrový výběr z jedné nebo více tabulek podle zadaných kritérií, seskupení záznamů 2. křížový vyváření souhrnů ve formě kontingenční tabulky výsledek je tvořen funkcí 1 sloupce (např. průměrná cena) podle zadaných parametrů (dvou polí, z nichž jedno tvoří řádky a druhé sloupce) 5/10
3. akční spustitelné dotazy výsledek lze vidět až v příslušné tabulce po spuštění dotazu a) vytvářecí výsledkem je nově vytvořená tabulka př. export, zálohování, data k určitému datu b) odstraňovací odstraní požadované záznamy z tabulky př. prošlá záruční lhůta, nula objednávek c) aktualizační provádějí změny ve skupině nebo ve všech záznamech tabulky, výsledkem jsou aktualizovaná data ve stávající tabulce. př. snížit ceny mléčných výrobků o 10%, d) přidávací přidá záznamy do již existující tabulky př. zákazníci jiné společnosti 4. parametrické kritéria výběru se zadávají pomocí parametrů v dialozích po spuštění dotazu 5. SQL dotazy pomocí jazyka SQL Formulář Formulář je databázový objekt, který se používá pro zadávání, změnu a zobrazování dat v tabulce. Lze je také používat jako přepínací panel, který umožňuje otevření dalších formulářů a sestav. Formuláře jsou vázány na jednu nebo více tabulek či dotazů. Všechny úpravy, které provedeme pomocí formuláře, se projeví v tabulce. Na rozdíl od zobrazení tabulek či dotazů nemusíme zobrazovat všechna pole. Pole nemusí být zobrazena v jediném řádku, do formuláře lze přidat tlačítka a doplnit další prvky automatizace často prováděných akcí formou reakce na události (např. makro či podprogram při otevření formuláře). Ovládací prvky jsou objekty použité ve formuláři. Zobrazují data z podkladové tabulky či dotazu a doplňkové informace (např. popisky dat a obrázky). Dle návaznosti na podkladová data existují různé druhy ovládacích prvků např.: vázaný ovládací prvek: zdrojem je pole z podkladové tabulky či dotazu. Slouží k zobrazení hodnot. Dle zobrazované hodnoty existuje několik typů vázaných ovládacích prvků: textové pole: pro pole typu Text, Memo, Číslo, Měna, Automatické číslo, Datum a čas či Hypertext. seznam, pole se seznamem: pro pole typu Text nebo Číslo s možností výběru. zaškrtávací políčko: Zobrazení a výběr hodnot typu Ano/ne. vypočítaný ovládací prvek: zdrojem dat není přímo pole z podkladové tabulky či dotazu, ale výraz obsahující data podkladové tabulky či dotazu či hodnoty z jiných ovládacích prvků formuláře. Ve výrazu je možné použít funkce. nevázaný ovládací prvek: nemá zdroj dat. Zvyšuje přehlednost formuláře. Mezi nevázané ovládací prvky patří: popisek: konstantní text zapsaný do formuláře. Často bývá přidružen k některému vázanému ovládacímu prvku. hypertextový odkaz: konstantní hypertextový odkaz např. na web firmy. obrázek: konstantní obrázek. Sestavy Sestava je určena pouze k prezentaci dat v tištěné podobě. Pomocí sestavy nelze data do tabulky vkládat nebo měnit. Uživatel určuje velikost a vzhled všech prvků, které jsou zobrazeny na sestavě. Sestavy slouží k prezentaci dat, zejména k tisku dat na tiskárně. Tisknout lze i formuláře, sestavy však nabízejí širší možnosti, poskytují větší volnost v prezentaci sumárních informací. 6/10
Návrh sestavy je podobný návrhu formuláře. Také sestava se skládá z ovládacích prvků, které lze parametrizovat pomocí vlastností a které jsou umístěny do sekcí sestavy. V sestavě se tisknou vždy všechny věty podkladové tabulky či dotazu. Výběr vět můžeme provádět filtrováním. Věty v sestavě lze řadit či seskupovat. Skupina může mít své záhlaví a zápatí, skupiny mohou být do sebe vnořeny v několika úrovních. Do sestavy lze doplňovat součty za celou sestavu či za jednotlivé skupiny. Ovládací prvky jsou objekty použité v sestavě. Zobrazují data z podkladové tabulky či dotazu a doplňkové informace (např. popisky dat a obrázky). Dle návaznosti na podkladová data existují obdobně jako ve formulářích různé druhy ovládacích prvků: vázané: slouží k tisku hodnot, vypočítané: tisknou výsledek výrazu nevázané: zvyšují přehlednost sestavy, speciální prvky Číslo stránky a Datum a čas se používají především v sestavách MS Access Microsoft Access je databázový program, který je součástí balíku Microsoft Office. Umožňuje vytvářet relační databáze, které využívají jednoduchých vztahů mezi tabulkami. MS Access umí uspořádat data, vytvářet sestavy a formuláře z více tabulek najednou. Tvorba databáze 2 způsoby pomocí šablony v rámci jedné operace vytvoříme požadované objekty databáze bez použití šablony každý objekt databáze vytváříme samostatně K názvu je přidána přípona accdb (př. firma.accdb). Po vytvoření databáze se otevře okno databáze, které zobrazuje všechny databázové objekty (př. tabulky, sestavy). 2 způsoby zobrazení tabulky 1. návrhové zobrazení - jiný pohled na tabulku. V tomto zobrazení nevidíme konkrétní data, ale pouze strukturu tabulky. Obsahuje název pole, datový typ, popis pole a další vlastnosti pole, např. velikost, formát. Můžeme zde přidávat nová pole. název pole datový typ popis jméno text jméno žáka příjmení text adresa text 2. zobrazení datového listu (datové zobrazení) jsou zde zobrazena konkrétní data s názvy polí. Můžeme přidávat nové záznamy (data). jméno příjmení adresa Karel Novák Brno Matěj Volný Praha Tvorba tabulky Program nabízí několik možnosti vytvoření prázdné tabulky 1. návrhové zobrazení - tabulku a všechny její detaily jsou nadefinovány ručně 2. pomocí průvodce z nabídky předefinovaných tabulek jsou vybrány pole, která budou základem nové vytvářené tabulky. Pro vytvořená pole se automaticky nastaví datové typy (př. datum, text, číslo). 7/10
3. vložení dat data jsou zadávány přímo do prázdného datového listu. Před uložením datového listu Access provede analýzu zadaných dat a ke každému poli vybere automaticky vhodný datový typ a formát. Lze také využít stávající data a tabulku importovat, případně propojit s jiným zdrojem. 2 způsoby určení primárního klíče 1. uživatel sám nastaví primární klíč pro vybrané pole 2. Access přidá jedno pole s datovým typem Automatické číslo. Pojmenuje ho ID. Úpravy tabulky Mazání vět Umístíme kurzor na libovolné místo ve větě, kterou chceme smazat. V hlavním menu vybereme příkaz Odstranit/Smazat záznam. Access nás vyzve k potvrzení smazání záznamu. Pokud souhlasíme, záznam bude nenávratně smazán. Šířka a výška sloupce Šířku sloupce lze nastavit pro každý sloupec zvlášť. Výška řádku se nastavuje pro celou tabulku. Nelze měnit výšku pouze u jednoho řádku. Šířku i výšku nastavíme myší na rozhraní sloupců i řádku. Formátování písma Pomocí příkazu Formát/Písmo lze nastavit druh, velikost, barvu písma. Písmo se nastaví pro celou tabulku. Nejde měnit písmo pro jednotlivé sloupce. Nastavení mřížky v tabulce V tabulce můžeme nastavit písmo i mřížku a barvu pozadí. Mřížka je ohraničení jednotlivých polí. Použijeme příkaz Formát/Datový list. Funkce Najdi a nahraď Access vyhledá řetězec znaků pomocí funkce Najdi. Tuto funkci spustíme příkazem Úpravy/Najít. Do dialogového okna zapíšeme vyhledávané slovo. Určíme, zda hledáme v celé tabulce nebo pouze ve vybraném sloupci. Pokud chceme vyhledané slovo nahradit jiným, zvolíme příkaz Úpravy/Nahradit. Příklady: 1. Najdi zaměstnance s osobním číslem 8 2. Najdi zaměstnankyni s příjmením Nová a přejmenuj ji na Malá. Filtrace a řazení Filtrování zobrazení vybraných záznamů v datovém listu podle zadaných kritérií. Filtrované záznamy lze seřadit. Filtr podle výběru (+ mimo výběr) jako filtrovací kritérium je použita část některého ze záznamu, který je viděn na monitoru Filtr podle formuláře kritéria filtrování zadána v dialogu jako filtrovací kritérium je použita část některého ze záznamu, který je viděn na monitoru Skrytí a ukotvení sloupců Některé databázové tabulky jsou rozsáhlé. Obsahují větší počet sloupců i záznamů. V takovém případě je pohyb po tabulce nepřehledný. Často nás zajímají pouze některé informace (jen některá pole). Vybrané sloupce, které dočasně nepotřebujeme, můžeme skrýt. Práce s tabulkou je potom jednodušší. 8/10
Pohyb po datovém listu Vybrané klávesové zkratky, které slouží k pohybu po datovém listu TAB, ENTER přesun na další pole END přesun na poslední pole na aktuálním řádku SHIFT+TAB přesun na předchozí pole přesun na aktuální pole v předchozím záznamu přesun na aktuální pole v dalším záznamu CTRL+ přesun na aktuální pole v posledním záznamu CTRL+ přesun na aktuální pole v prvním záznamu CTRL+HOME přesun na první pole v prvním záznamu CTRL+END přesun na poslední pole v posledním záznamu Práce s dotazy Většinu dotazů je možné vytvořit za pomoci průvodce. Dotaz je možné také nadefinovat v návrhovém zobrazení. Velice výhodné je spojení obou postupů definice základní kostry dotazu pomocí průvodce a následná úprava a dokončení v návrhovém zobrazení. Provádění výpočtů souhrny pomocí průvodce dotazem Vytvoření dotazu vybrat zdrojové tabulky a dotazy zvolit typ dotazu vybrat pole určit řazení (souhrny) zobrazit: některé sloupce jsou potřeba pro zadání podmínky, ale není potřeba je zobrazovat kritéria (lupa shift F2): Standardně je vytvářen dotaz výběrový. Aktualizační dotaz: Na řádek Aktualizovat do: napište vzorec, pomocí kterého proběhne aktualizace (např. [Platy]*1,05). Po vytvoření celého dotazu ho zavřete a pojmenujte. Poté je ho možné kdykoliv spustit, ale pozor každé spuštění provede aktualizaci dat, kterou nelze vrátit zpět. 9/10
Model relační databáze ŠKOLA 10/10