Databáze je soubor dat (informací o objektech reálného světa), která spolu nějakým způsobem souvisí. Data je výraz pro údaje, používané pro popis nějakého jevu nebo vlastnosti pozorovaného objektu.
Představují formu prezentace reálných objektů (znaky, symboly, obrázky, fakta, události), odrážejí tedy stav reality v určitém časovém okamžiku. Informace je zpráva, že nastal určitý jev. Vzniká přiřazením významu datům a existuje ve vztahu k příjemci. Slouží k informování o změnách ve vnímané realitě.
S databázemi se v běžném životě setkáváme velmi často. Uvádíme běžné použití databází velkého rozsahu:
- databáze jízdních řádů,
- databáze státní správy,
- informační systémy bank, škol, úřadů
- nemocniční systémy evidence pacientů,
- databáze knihoven.
Hromadné zpracování dat
= automatizované zpracování velkého množství údajů o velkém množství objektů
- Objekty a údaje o nich jsou obrazem části reálné skutečnosti (zaměstnanci podniku, knihy v knihovně, materiál ve skladu apod.).
- V praxi je třeba mít o těchto objektech přehled, aby se v údajích dobře vyhledávalo, opravovalo, doplňovalo atd.
- To lze řešit i bez počítače, např. pomocí sešitu, kartotéky, …
- Brzy po vzniku počítačů bylo největší procento jejich využití právě v oblasti hromadného zpracování dat (evidence údajů .
Agendové zpracování dat
První éra programového řešení úloh pro hromadné zpracování dat. Pro každou úlohu se vytvářel samostatný program (agenda) v nějakém dostupném programovacím jazyce.
Všechny tyto úlohy musely řešit „stejné problémy“:
- Způsob (formát) uložení dat na paměťové médium (disk).
- Vyhledávání dat.
- Vkládání nových záznamů, jejich oprava a mazání.
- Třídění podle různých kritérií, atd.
Plná závislost dat a programů:
- Jiné programy nemohou používat data z ostatních aplikací, případně musí respektovat již vytvořené (cizí) datové struktury.
- Nízká efektivnost datových struktur i programů.
Problémy při agendovém zpracování dat
- redundance = některé údaje se opakují (jsou uloženy) na více místech
- konzistence = stav, při němž si data uložená v systému vzájemně neodporují
- stejné údaje uložené na různých místech musí obsahovat stejné hodnoty, při změnách se musí shodně měnit na všech místech.
- nekonzistence=na různých místech nestejné hodnoty
- integrita = data se shodují s realitou a jsou aktuální
- obtížná dosažitelnost dat = v každém systému jiný formát, nesnadné propojování systémů
- současný přístup více uživatelů =u více systémů (agend) problém, zvlášť při velké redundanci
- zabezpečení proti zneužití = v programátorské dokumentaci k aplikaci je vše popsáno – když si to někdo nastuduje, může z dat zjistit cokoliv
Databázová technologie
- oddělení datových struktur od programů
- data jsou uložena ve tvaru tabulek
- aplikační programy s nimi pouze pracují pomocí připraveného rozhraní (např. speciálními příkazy, popř. pomocí samostatného jazyka)
- používá se „SŘBD“ (např. Oracle, MySQL, PostgreSQL, Microsoft Access, MS Visual FoxPro, Firebird, . . . )
SŘBD = Systém řízení báze dat (DBMS = Database Management System)
- program umožňující práci s daty
- definice tabulek a vazeb mezi nimi
- řeší způsob uložení dat i základní operace s nimi
- víceuživatelský přístup
- ochrana dat (hesla, přístupová práva)
- obsahuje různé jazyky:
- JDD = jazyk pro definici dat (DDL=Data Definition Language)
- JMD = jazyk pro manipulaci s daty (DML = Data Manipulation Language)
- dotazovací jazyk – obvykle SQL
- (programovací jazyk pro zápis algoritmu) – nepovinný
Základní pojmy
Entita
Libovolný objekt (osoba, zvíře, věc či jev) reálného světa, který je zachycen v datovém modelu. Entita musí být rozlišitelná od ostatních entit a existovat nezávisle na nich.
Data
Výraz pro údaje používané pro popis nějakého jevu nebo vlastnosti pozorovaného objektu. Data se získávají měřením nebo pozorováním, a lze je dělit na data spojitá a data atributivní. Data spojitá se přitom vztahují k nějaké spojité stupnici, zatímco data atributivní nikoliv.
Informace
Informace jsou data, která nám přinášejí nové poznatky.
Záznamy a atributy
Řádky tabulky s hodnotami atributů pro jeden objekt (entitu), které se musí od sebe lišit. Atributy, jsou sloupce tabulky, Atributy mají určen svůj konkrétní datový typ a doménu, což je množina přípustných hodnot daného atributu. Řádek je řezem přes sloupce tabulky a slouží k vlastnímu uložení dat.
Atributy, pole
Vlastnosti, které se u objektů (entit) sledují:
- tvoří sloupce tabulky
- mohou nabývat různých hodnot
- pole jsou určitého datového typu (číslo, text, datum, …)
Primární klíč
Jednoznačně identifikuje záznam (řádek tabulky). Je to takový atribut (pole), který má pro každou entitu jedinečnou hodnotu, např. rodné číslo, většinou je to pomocné pole s identifikačním číslem záznamu (ID).
Cizí klíč
Takový atribut, který je v jiné tabulce primárním klíčem.
Index
Jedná se o způsob řazení tabulky.
- pořadí záznamů se v tabulce během „života“ databáze nemění; index pomáhá k rychlému hledání dat v tabulce
- index vytvoří pomocný soubor s řazením tabulky podle určitého pole
- k jedné tabulce může být více indexů s řazením podle různých atributů
- primární klíč je vždy indexem
Struktura databáze
Nejpoužívanějšími databázemi jsou relační databáze. V nich jsou data ukládána v menších tabulkách, aby se zajistila minimální redundance (nadbytečnost) dat.
Tabulky jsou vzájemně propojeny pomocí relací. Relace určují vztahy mezi tabulkami a zjišťují provázanost jednotlivých tabulek. Každá z těchto tabulek by měla obsahovat data týkající se pouze jednoho druhu objektu (např. tabulka objednávek, klientů, cen, zboží atd.). Pro vytvoření dobré databáze je nutné nejdříve navrhnout správnou strukturu jednotlivých tabulek. Tyto tabulky je pak nutné propojit pomocí relací. Tabulky tvoří základ celé struktury databáze.
Základní pravidla pro návrh tabulek jsou následující:
- každá informace by měla být v databázi obsažena pouze jednou,
- každá tabulka by měla obsahovat informace o jednom typu objektu,
- při návrhu tabulek by se měl vzít do úvahy rozsah budoucích dat.
Databázová tabulka
V jedné tabulce by měly být informace o jednom typu objektu. Databázová tabulka je podobná běžné tabulce. Řádky obsahují záznamy (o jednom objektu) a sloupce označujeme položky či pole. Polem je totiž někdy zván i průsečík určitého řádku a sloupce, který obsahuje jedinou hodnotu (datový prvek).

Relace
Typy relací Rozlišujeme tři základní typy relací:
- Relace typu 1:1 (výjimečný) – jednomu záznamu primární tabulky odpovídá právě jeden záznam v sekundární tabulce. Například jedné osobně je přiděleno právě jedno rodné číslo.
- Relace typu 1:N (nejčastější) – jednomu záznamu primární tabulky odpovídá jeden nebo více záznamů v sekundární tabulce. Tento příklad jsme popsali ve výše uvedeném příkladu se zákazníky a objednávkami.
- Relace typu M:N (velmi často) – jednomu nebo více záznamům primární tabulky odpovídá jeden nebo více záznamů v sekundární tabulce. Tyto relace řešíme pomocí spojovací tabulky, kterou pomocí dvou relací typu 1:N propojíme s původními tabulkami.
Referenční integrita
Referenční integrita udržuje neporušenost relací mezi tabulkami. Nedovolí nám vložit do sekundární tabulky záznam, který by neměl odpovídající záznam v primární tabulce. Dále si pohlídá si změnu hodnot cizího klíče při změně primárního klíče. V rámci referenční integrity je možné nastavit pravidla pro odstraňování záznamů.
Databázové modely
Databáze
soubor dat, která popisují nějakou oblast činnosti. Na základě těchto dat jsme schopni o této činnosti čerpat informace. Databází v počítačovém smyslu jsou tabulky, dotazy, formuláře, sestavy, makra…, které spolu navzájem souvisejí a řeší určitý problém. Příklady databází: žáci ve škole, pracovníci ve firmě, auta v autobazaru.
Databázový systém
program, který umí pracovat s databázemi.
- systém řízení dat – MS Access, Oracle, dBase, MySQL
- databáze (databázová aplikace) – Pascal, Cobol, C, jazyk dBase, atd.
- dotazovací jazyky – SQL (musí být implementován do vhodného prostředí – MySQL)
Typy databázových systémů
Hierarchický model dat
Data ve stromové struktuře (stále 1:N). Vztah mezi záznamy rodič/potomek.
Data jsou organizována do stromové struktury. Každý záznam představuje uzel ve stromové struktuře, vzájemný vztah mezi záznamy je typu rodič/potomek. Nalezení dat v hierarchické databázi vyžaduje navigaci přes záznamy směrem na potomka, zpět na rodiče nebo do strany na dalšího potomka.
Největšími nevýhodami hierarchického uspořádání je složitá operace vkládání a rušení záznamů a v některých případech i nepřirozená organizace dat.

Síťový model dat
Zobecnění hierarchického modelu, který doplňuje o mnohonásobné vztahy.
Síťový model dat je v podstatě zobecněním hierarchického modelu, který doplňuje o mnohonásobné vztahy (sety). Tyto sety propojují záznamy různého či stejného typu, přičemž spojení může být realizováno na jeden nebo více záznamů. Přístup k propojeným záznamům je přímý bez dalšího vyhledávání, k dispozici jsou operace: nalezení záznamu podle klíče, posun na prvního potomka v dílčím setu, posun stranou na dalšího potomka v setu, posun nahoru z potomka na jeho rodiče v jiném setu.
Nevýhodou síťové databáze je zejména nepružnost a obtížná změna její struktury.

Relační model dat
data organizována v tabulkách, možnosti propojení (vazby) mezi tabulkami 1:N i N:1. Nejmodernější a nejvyužívanější model.
Relační databázový model je z uvedených nejmladší a zároveň nejpoužívanější. V současnosti je nejčastěji využíván u komerčních SŘBD. Model má jednoduchou strukturu, data jsou organizována v tabulkách, které se skládají z řádků a sloupců. V těchto tabulkách jsou prováděny všechny databázové operace.

Objektové databáze
Kromě databází relačních existují i databáze objektové. Ty řeší problém neslučitelnosti objektového a relačního přístupu. Poskytují stejný komfort, jako ORM, ale vnitřně není třeba data převádět do tabulek, ukládají se rovnou jako objekty. Teoreticky neexistuje výkonnostní ani jiný důvod, proč by neměly nahradit databáze relační. V praxi se ale bohužel téměř nepoužívají a můžeme jen doufat, že se to časem změní.
Tabulka
základní stavební kámen všech databází. Sloupec tabulky (pole, položky). Popisuje jednu z vlastností popisované věci v tabulce. Řádek tabulky (záznam, starším slovem věta) – popisuje jednu konkrétní věc (např. informace o jednom člověku).
Ukládají data ve formě jednotlivých záznamů.
Dotazy
Získávají a zpracovávají data z tabulek, akční dotazy navíc tabulky modifikují, vytvářejí nebo přidávají do nich data.
Provádí dotaz do databázové tabulky, výsledkem jsou určitá data podle zadaných kritérií.
Formuláře
Usnadňují zadání a prohlížení databázových dat. Nabízejí uživatelštější, grafické rozhraní oproti tabulkám.
Sestavy
Graficky upravené výstupy z databáze, zpravidla určené k tisku na papír.
Prezentují vybraná data pro tištěnou podobu.

Makra
Usnadnění a automatizace často se opakujících úkolů. Více operací tvoří jeden celek a jsou součástí jednoho makra.
Cvičení
C1 – použití databází – tipovačka
C2 – základní pojmy v DB
Odpovězte na následující otázky:
- Vysvětlete pojmy:
- redundance
- konzistence
- integrita
- entita
- záznamy
- atributy
- primární klíč
- cizí klíč
- index
- Jaké typy relací jsou používány? Napište a vysvětlete na příkladu.
Více: