Databáze - základní pojmy
Databáze je nástroj pro efektivní a spolehlivé ukládání informací a manipulace s nimi. Uchovává data o uceleném úseku reality. Představuje souhrn informací, jejich vzájemných vztahů a nástrojů pro práci s daty (definice dat, tvorba, úprava a kontrola dat, ...)
Entita je objekt reálného světa, který je schopen nezávislé existence a je jednoznačně odlišitelný od ostatních objektů. Je to v podstatě cokoli (osoba, věc, událost), o čem potřebujeme uchovávat informace. Entitou může být např. student, kniha, výrobek, půjčka. rezervace, ...
Informace uchováváme v tabulkách. Jeden řádek tabulky potom představuje jednu entitu (jeden záznam) .
Atribut je údaj, který o entitě evidujeme např. jméno, příjmení, datum narození. V databázích má určený název a datový typ.
Primární klíč je atribut, který jednoznačně určuje entitu. Každá tabulka, do které se odkazujeme z jiné tabulky, musí mít primární klíč.
Cizí klíč - "odkaz" na primární klíč jiné tabulky. Používá se k realizaci relací, k propojení tabulek. Je stejného datového typu jako primární klíč, na který odkazuje.
Indexování - nastavení pro atribut entity, které umožňuje urychlit vyhledávání informací v databázových systémech. V databázových systémech je řešeno použitím tzv. tabulky indexů. Vyhledávání použitím indexového souboru je mnohem efektivnější než klasické sekvenční hledání.
Relace
Relace představují vztahy mezi entitami.
Typy relací:
1 : 1 - každá instance z první množiny entit (M1) je spojena vztahem s nejvýše jednou instancí druhé množiny (M2). Jedná se o vztah, ve kterém na obou stranách vystupuje pouze jeden objekt dané tabulky. V realitě se vyskytuje zřídka. Např. : vztah "je třídní učitel" mezi tabulkami třídy a učitelé.
1 : N - každá instance z M1 může být spojena vazbou s více instancemi z M2, ale každá instance z M2 je spojena vazbou nejvýše s jednou instancí z M1. Jedná se o vztah, ve kterém jediný objekt na jedné straně je ve vztahu s jedním nebo více objekty. Např.: vztah "je studentem třídy" mezi množinami studenti a třídy.
M : N - Každá instance z M1 může mít vztah k N instancím z M2 a každá instance z M2 může mít vztah k M instancím z M1. Jde o obecný případ vztahu, ve kterém vystupuje více objektů na obou stranách. Např.: vztah "učitel učí předmět" mezi množinami předměty a učitelé.
Tento vztah je vhodné zjednodušit použitím další tabulky se vztahem 1 : N k oběma původním tabulkám (dekompozice).
Referenční integrita - nastavitelná vlastnost relace, která zabezpečuje aktuálnost všech odkazů. Při odstranění jednoho záznamu v tabulce kontroluje vazby, aby nevznikli prázdné odkazy v existujících relacích.
Analýza
Analýza je nejdůležitější částí při vytváření databázové aplikace.
Datová analýza (logická) je proces poznávání objektů reálného světa, jejich vlastností a vazeb. Výsledkem je v podstatě návrh tabulek, relací, datových typů, kontroly údajů, ...
Funkční analýza popisuje jednotlivé akce prováděné nad objekty. Zjednodušeně řečeno představuje model uživatelského prostředí pro manipulaci s daty a zobrazování dat. Musíme tedy např.určit jaké informace budeme používat pro hledání, zvolit způsob aktualizace nebo zobrazování dat.
Obě analýzy úzce souvisejí. Výsledkem analýzy je datový model, který je základem pro vytvoření databáze.
Po vypracování datového modelu můžeme přistoupit k samotné realizaci databáze ve zvoleném prostředí (Access, Oracle, MySql ...).
Praktické připomínky: Návrhu entit a jejich atributů je vhodné věnovat pozornost. Spolu s relacemi jsou základem pro správné fungování celé databáze. Jednotlivé atributy by měli být vnitřně nedělitelné např. pro evidenci jména a příjmení volíme dva atributy a ne jenom jeden (celé jméno), podobně u adresy (samostatně ukládáme ulici, město, ...).
Zvláštní pozornost věnujeme nastavení primárního klíče. Volíme hodnotu jedinečnou, ale pokud možno jednoduchou - není vhodné volit např. název firmy, může se totiž jednat o poměrně dlouhý text. Některé údaje zas nemůžeme použít kvůli ochraně osobních dat. v některých případech může být ale primární klíč vytvořen jako spojení dvou vlastností objektu.
Veškerá data, kromě odkazů na primární klíče, by v databázi měla být uložena právě jednou. Nebudeme např. uvádět cenu výrobku ve všech tabulkách, kde je výrobek uvedený. Přístup k atributům daného objektu nám umožní relace.