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ů:
  1. Úč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.
  1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. 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é.
  1. 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í).
  1. 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.