4.4
Návrh databáze
Správně navržená databáze poskytuje přístup k aktuálním a přesným informacím. Protože správný návrh je nezbytný pro dosažení našich cílů při práci s databází, je třeba dodržovat zásady správného návrhu databáze. Je třeba se rozhodnout, jaké informace potřebujeme, jak tyto informace rozdělit do příslušných tabulek a sloupců a jaké jsou vzájemné vztahy mezi těmito tabulkami. Výsledkem pak bude databáze, která bude vyhovovat našim potřebám a snadno se přizpůsobí změnám.
Některé zásady při tvorbě databáze jsou velice důležité a musíme si je rozmyslet hned na začátku. V dalších krocích by nám mohly způsobovat problémy. První důležitá zásada spočívá v tom, že duplicitní informace (nadbytečná data) jsou špatné, protože zabírají úložný prostor a zvyšují pravděpodobnost chyb a nesrovnalostí. Druhou důležitou zásadou je potřeba klást důraz na správnost a úplnost informací. Pokud databáze obsahuje nesprávná data, pak všechny informace, které z databáze vypisujeme, obsahují nesprávné informace. Výsledkem může být to, že zákazníkovi budeme tvrdit, že na skladě máme určitý počet výrobků, ale to nebude pravda.
Je tedy nezbytně nutné o návrhu databáze přemýšlet velice zevrubně již od začátku. Každá správně navržená databáze jistě rozdělí data do tabulek založených na typických objektech, aby se snížily nadbytečné údaje, poskytuje přístup s informacemi, které uživatel vyžaduje, zajišťuje integritu všech dat a uspokojí potřeby uživatele při práci s daty.
Shrňme si zásady návrhu databáze do následujících bodů:
- Účel databáze
Je dobré zapsat si účel, ke kterému bude databáze sloužit, na papír – co od databáze očekáváme, kdo bude databázi požívat atd. Pro malou databázi (domácí podnikání) například můžeme napsat něco jednoduchého jako "Databáze studentů udržuje seznam informací o studentech, jejich prospěchu za účelem vytváření reportů ohledně studia." Pokud je databáze složitější nebo je používána mnoha lidmi, jak se často vyskytuje v podnikovém prostředí, účel by mohl být zapsán do několika odstavců a kromě jiného by měl zahrnovat, kdy a jak bude každá osoba používat databázi.
- Vyhledání a uspořádání požadovaných informací
Pokud chceme vyhledat a uspořádat požadované informace, je potřeba začít se stávajícími informacemi. Můžeme například zaznamenat objednávky na nákupy v účetní knize nebo vést informace o zákaznících na papírových formulářích v kartotéce. Ideální je shromáždit si tyto dokumenty a seznámit se s každým typem vedené informace. Pokud nemáme k dispozici žádné podklady, je nutné uvažovat nad tím, jak daný formulář vytvořit, co všechno by měl daný formulář obsahovat. Nutností je identifikace jednotlivých položek. Předpokládejme například, že v současné době vedeme seznam zákazníků na zákaznických kartách. Zkoumáním těchto karet zjistíme, že každá karta obsahuje jméno zákazníka, adresu, město, stát, poštovní směrovací číslo a telefonní číslo. Každá z těchto položek představuje potenciální sloupec v tabulce.
- Rozdělení dat do tabulek
Chceme-li informace rozdělit na tabulky, je třeba vybrat hlavní entity nebo předměty. Například po zjištění a uspořádání informací pro databázi prodeje produktů může předběžný seznam vypadat tak, že hlavní osoby, které jsou zde uvedeny, jsou produkty, dodavatelé, zákazníci a objednávky. Proto má smysl začít s těmito čtyřmi tabulkami: jedna pro fakta o výrobcích, jedna pro fakta o dodavatelích, jedna pro fakta o zákaznících a jedna pro fakta o objednávkách. Ačkoli toto jistě nejsou všechny tabulky v databázi, je to dobrý výchozí bod. Dále pokračujeme ve vylepšování tohoto seznamu, dokud se nedobereme ke konečnému návrhu.
- Vytvoření sloupců tabulky
Chceme-li vytvořit sloupce v tabulce, je třeba se rozhodnout, jaká data bude tabulka obsahovat. Například pro tabulku Zakaznici, to jsou atributy Jmeno, Adresa, Mesto, E-mail, Telefon. Každý záznam v tabulce obsahuje stejnou sadu atributů, takže pro každý záznam je možné uložit pouze informace, které obsahují jméno, adresu, město, email a telefon. Další informace z této tabulky není možné získat. Pokud bychom chtěli získat víc informací o zákaznících (například jaký mají titul) je třeba příslušné atributy do tabulky přidat.
- Určení primárních klíčů
Každá tabulka by měla obsahovat sloupec nebo kombinaci sloupců, které jednoznačně identifikují každý řádek uložený v tabulce. Jedná se často o jedinečné (umělé) identifikační číslo, jako je číslo zaměstnance nebo sériové číslo. V terminologii databázových systémů se tato informace nazývá primární klíč tabulky.
- Nastavení vztahů mezi tabulkami
Důležitým krokem, který je pro funkční databázi nesmírně důležitý, je zjistit, jaký vztah mají data v jedné tabulce s daty v jiných tabulkách. Tyto tabulky je nutné propojit a to buď přidáním sloupců do tabulek, nebo je třeba vytvořit nové tabulky, aby byly vztahy jasně dané.
- Upřesnění a odladění návrhu
Jakmile jsou tabulky, sloupce a vztahy, které potřebujeme, vytvořené, je třeba databázi odzkoušet na testovacích datech. Je třeba naplnit tabulky daty a s těmito daty pracovat – vytvořit dotaz, přidávat nové záznamy, aktualizovat záznamy, rušit záznamy, atd. Tímto způsobem objevíme potenciální problémy – například chybějící sloupce v tabulkách (chybí nám data, která potřebujeme), přebytečné sloupce (data se dají zjistit z jiných sloupců) nebo zjistíme, že databáze obsahuje tabulku, která se musí rozdělit do dvou tabulek (odstranění duplikací).
- Normalizace databáze
Pravidla pro normalizaci dat je možné použít jako další krok návrhu. Normalizace se používá k tomu, abychom zajistili, že jsou tabulky správně strukturované. Proces uplatňování pravidel pro návrh databáze vede k vytvoření konzistentní databáze.