13. Databázové aplikace
Základní podmínky vhodného návrhu databází
Databáze je organizovaný soubor strukturovaných informací (dat), které se ukládají obvykle v elektronické podobě v počítačovém systému. Databáze je řízena softwarem pro správu databáze (DBMS). Celý databázový systém tvoří data, systém DBMS a přidružené aplikace. Většina databází používá k zadávání data a vytváření dotazů dotazovací jazyk SQL.
Aby bylo možné vytvořit vhodný návrh databáze, je třeba znát účel databáze. Databáze by měla zachovávat informace správné a úplné a zároveň není vhodné udržování duplicitních informací (tzv. redundantních dat). Návrhu databáze předchází analýza situace. Analýza zahrnuje zjištění struktury všech informací, které bude databáze uchovávat (které informace patří k sobě, zda musí být vždy všechny položky známé, jak jednoznačně určitou informaci identifikovat apod.). Při návrhu databáze je také třeba vzít v úvahu, kolik uživatelů k ní bude přistupovat, kdo a jaká data z databáze bude využívat, a kdo a jak bude jednotlivé typy údajů do databáze zadávat a případně je aktualizovat.
Obecné vlastnosti návrhu databází, relační databáze 1:1, 1:N, M:N
Databáze musí být navržena tak, aby obsahovala všechny potřebné údaje a aby bylo jasné, jakým způsobem se k jednotlivým údajům dostat. Nejprve je třeba shromáždit všechny typy údajů, které mají být v databázi zaznamenány, rozdělit údaje do tabulek a informace do sloupců, zvolit primární klíče a vytvořit relace mezi tabulkami. Funkčnost databáze se zkouší na určitém vzorku dat, teprve po odzkoušení se do databáze importují (navstupují) reálná data.
Relační databáze je tvořena tabulkami vzájemně propojenými vztahy (relacemi). Jednotlivé uchovávané údaje jsou v jednotlivých tabulkách, v jedné tabulce jsou vždy data, která spolu nějak souvisí a popisují danou entitu (sledovaný objekt).
Například v jedné tabulce jsou uložena data týkající se jednotlivých studentů (jméno, příjmení, datum narození, bydliště, třída) a v druhé tabulce data týkající se třídy (třída, místnost, třídní učitel, vyšší/nižší gymnázium apod.). Tyto dvě tabulky jsou propojeny pomocí relace student.id_třída = třída.id_třída. To v praxi znamená, že pro konkrétního studenta lze v databázi dohledat i údaje o jeho třídě (tedy například, kdo je jeho třídní učitel, nebo která místnost je třídě přidělena).
Položka id_třída v obou tabulkách jednoznačně určuje, o kterou třídu jde. Této jednoznačné identifikaci se říká primární klíč. Pokud bychom například chtěli jednoznačně identifikovat nějakou osobu, není vhodné použít jako primární klíč příjmení, protože to se může u dvou různých osob opakovat. Lze použít například rodné číslo, které má každá osoba unikátní. Při použití jednoduchého celého čísla místo rodného čísla ale databázový systém záznamy v tabulkách rychleji vyhledává a třídí. Proto se obvykle jednotlivé záznamy (osoby) v tabulce očíslují pořadovými čísly a jako identifikátor (id, primární klíč) se používá toto unikátní pořadové číslo dané osoby.
Ještě jeden příklad: Jednoduchá databáze pro veřejnou knihovnu bude pracovat s entitami čtenář, kniha, výpůjčka. Měla by tedy obsahovat tabulku čtenářů (s položkami jméno, příjmení, bydliště, e-mail, telefon apod.), tabulku knih (název, autor, rok vydání, …), a tabulku s jednotlivými výpůjčkami (čtenář, kniha, datum vypůjčení, předpokládané datum vrácení). Tabulka výpůjček bude propojená s tabulkami čtenářů a knih pomocí relací výpůjčka.id_čtenář=čtenář.id_čtenář a výpůjčka.id_kniha=kniha.id_kniha tak, aby bylo možné jednoduše nalézt potřebné údaje. Například který čtenář má právě vypůjčenou danou knihu, nebo přehled knih, které nejsou vrácené po výpůjční době. Položky id_čtenář a id_kniha mohou být opět pořadová čísla čtenáře v seznamu (tabulce) čtenářů a knihy v seznamu (tabulce) knih.
Relace mezi tabulkami udávají, kolik záznamů ze dvou propojených tabulek může být ve vzájemném vztahu. Relace může být typu 1:1, 1:N, M:N. Příklady jednotlivých typů relací:
- 1:1 - v tabulce Zaměstnanec jsou základní údaje o zaměstnanci a v tabulce Životopis jsou uloženy jednotlivé životopisy zaměstnanců. K jednomu zaměstnanci patří maximálně jeden životopis a k jednomu životopisu patří nejvýše jeden zaměstnanec.
- 1:N – vazba mezi tabulkami Třída a Student. V jedné třídě může být více (N) studentů, jeden student patří do jedné třídy.
- M:N – vztah mezi tabulkou Osoby a Noviny. Jedna osoba může číst více (N) různých novin. Jedny konkrétní noviny může číst více (M) různých osob. Tento typ relace se v databázi realizuje pomocí přidané další tabulky, která je s první i druhou tabulkou ve vztahu 1:N. Propojení tabulek by tedy vypadalo takto: Osoby.id_osoby = Kdo_co_čte.id_osoby a Kdo_co_čte.id_novin=Noviny.id_novin.
Základní příkazy jazyka SQL
Jedná se jazyk pro práci s daty (tabulkami) v databázi.
CREATE – vytvoření databáze
DROP – smazání databáze
INSERT – vložení nového záznamu do tabulky
DELETE – vymazání záznamu z tabulky
UPDATE – změna záznamu v tabulce
SELECT – výběr záznamů z tabulky (tabulek) podle zadaných podmínek
Například: SELECT student.jmeno, student.prijmeni, klasifikace.predmet, klasifikace.známka (co se má vybrat)
FROM student, klasifikace (ze kterých tabulek)
WHERE student.cislo_studenta = klasifikace.cislo_studenta (propojení tabulek)
ORDER BY prijmeni (třídění dat)
SQL příkaz umožňuje i výpočty agregovaných hodnot (minimum, maximum, součet, počet, průměr):
Například: SELECT student.jmeno, student.prijmeni, AVG(klasifikace.známka) (průměrná známka studenta)
FROM student, klasifikace
WHERE student.cislo_studenta = klasifikace.cislo_studenta
GROUP BY prijmeni, jmeno (seskupení dat)
ORDER BY prijmeni, jmeno (třídění dat)
Specializované databázové programy (Microsoft Access, MySQL)
Příklady systémů pro správu databáze (DBMS):
Microsoft Access – správa relačních databází, je součásti Microsoft Office
MySQL – relační databázový systém s otevřeným zdrojovým kódem, byl navržen pro webové aplikace a může běžet na libovolné platformě, je oblíben například pro internetové obchody
Další: SQL CE, Firebird, Oracle
Formuláře, sestavy, dotazy
Pomocí dotazu lze z databáze vybrat data, která splňují určité podmínky. Dotaz umožňuje data také setřídit, případně seskupit podle určitých kritérií a vypočítat součtové hodnoty (maximum, průměr apod.) Dotaz se provádí pomocí příkazu SELECT.
Sestava slouží k přehledné prezentaci aktuálních dat v databázi vybraných pomocí dotazu (dotazů). Jedná se o formátovaný přehled dat, často se souhrnnými hodnotami (například Celkový příjem za měsíc). Sestavu lze vytisknout.
Formulář slouží pro vstup, editaci a mazání dat v databázi. Může mít různé další funkce, například předvyplní některá pole, provede kontrolu zapsaných údajů apod.
Pomocí formuláře lze také zadat výběr dat (dotaz) pro sestavu.
POJMY: GUI, PDF, trojský kůň
GUI = Graphic User Interface je uživatelské rozhraní, které umožňuje ovládat počítač pomocí interaktivních grafických ovládacích prvků. Na monitoru jsou vidět okna, ve kterých programy zobrazují svůj výstup. Uživatel používá klávesnici, myš a grafické vstupní prvky jako jsou menu, ikony, tlačítka, posuvníky, formuláře a podobně.
Opakem GUI je znakové uživatelské rozhraní, které používal například operační systém DOS. Grafické prvky byly vytvářeny pomocí znaků (pomlčka, svislá čára, dvojtečka apod.), k ovládání a pohybu (při výběru z menu) se používala pouze klávesnice.
PDF = Portable Document Format je souborový formát vyvinutý firmou Adobe pro ukládání dokumentů nezávisle na softwaru i hardwaru, na kterém byly pořízeny. Soubor typu PDF může obsahovat text i obrázky a dokument se na všech zařízeních zobrazí stejně. Vytvářet PDF dokumenty lze v Adobe Acrobat nebo PDF-XChange Pro. Prohlížet je lze například v Adobe Reader. Většina dobrých grafických programů a textových editorů umožňuje export do formátu PDF (například Word), vytvořit PDF z textu lze také jeho odesláním na virtuální tiskárnu, která tiskne do souboru. Formát PDF je založen na jazyce PostScript.
Trojský kůň (trojan) je škodlivý kód uvnitř nějakého jiného programu. Nemá schopnost šíření, a proto jej nelze řadit k počítačovým virům. Uživatel spustí infikovaný "užitečný" program. Po spuštění program vykoná jednorázově destrukční činnost, např. smaže soubory na HD, přepíše CMOS paměť (paměť, která uchovává informace o konfiguraci počítače) apod. Nějakou dobu může dokonce tento program fungovat neškodně a začít škodit až po několikátém spuštění.
Trojský kůň se může do počítače dostat například při stažení užitečně vypadajícího programu z neověřených internetových stránek, nebo jako příloha e-mailu.