220 likes | 308 Views
Návrh Databází. Štěpán Šípal. Přehled témat hodiny. Dokonalé E-R diagramy Multiplicita v E-R diagramech Atomicita atributů Vícehodnotové atributy Normalizace Design databáze v DBDesigner 4. Dokonalé ER diagramy.
E N D
Návrh Databází Štěpán Šípal
Přehled témat hodiny • Dokonalé E-R diagramy • Multiplicita v E-R diagramech • Atomicita atributů • Vícehodnotové atributy • Normalizace • Design databáze v DBDesigner 4
Dokonalé ER diagramy • ER diagram je základem pro další návrh databáze, zobrazuje skutečný stav věcí. • Entita – objekt, abstraktní, nikoliv specifický • Entitou je pes, jejím výskytem je „Haryk“. • Všechny výskyty entit mají obdobné atributy, nikoliv však jejich hodnoty!
ER diagramy II. • Atribut entity je její vlastností, například „jméno“. • Jednotlivé hodnoty atributů („Haryk“) nás při modelování nezajímají. • Atributům můžeme určovat takzvané domény – slovně popíšete, jakých hodnot může u jednotlivých výskytů entity nabývat.
Relace v ER diagramech • Relace označují určitý vztah mezi jednotlivými entitami. • Musí být popsány a mohou mít vlastní atributy (relace mezi zákazníkem a zbožím bude „zakoupil“ s atributy kdy a za kolik). Zaměstnanec Pobočka Pracuje v
Relace v ER diagramech Noviny Automobil Mají reklamu na Atributy: odKdy Cena
Multiplicita • 1:1 – jednomu výskytu entity A náleží vždy jeden výskyt entity B (pobočka a její vedoucí manažer). • 1:n – jednomu výskytu entity A náleží více výskytů B (pobočka a zaměstnanci). • M:n – Jednomu výskytu A náleží více B a jednomu B více A (noviny a propagovaná auta).
Problémy s ER - pasti • Pokud od jedné entity existuje více vazeb s multiplicitou 1:n. Zaměstnanec Firma Pobočka n zam. 1 1 má n • Takovýto zápis je teoreticky správně, ale logicky nám neposkytuje informace o tom, v jaké pobočce zaměstnanec pracuje – musíme jej tedy předělat.
Vyřešení pasti • Přetvoříme tedy tuto past na „vláček“, kde se budou entity vázat jasněji: Zaměstnanec Pobočka Firma n zam. 1 n má 1
Atomicita atributů • Pokud jednotlivé atributy je možné dále rozložit, jsou to atributy tzv. složené • Například adresa – rozložitelné na ulici, město, PSČ, … • Atributy které nelze dále rozkládat nazýváme atomickými. • Rozhodnutí zda rozložit záleží na budoucím využití DB – obecně je lepší vždy mít atomické hodnoty.
Vícehodnotové atributy • Pokud nějaký atributy může mít více hodnot v jeden okamžik – například entita firmy může mít najednou tři telefonní čísla. • Je lépe takový atribut odpojit a vytvořit jej jako novou entitu ve vztahu 1:n. • Vytvoříme novou entitu telefonní čísla.
Co je normalizace • Normalizace je činnost, při které se snažíme vytvořit tabulky s minimálním nutným počtem atributů s jasným vztahem a s minimální redundancí (opakováním) dat. • Normalizace zabraňuje možných chybám při práci s DB.
Redundance dat a problémy změn Zaměstnanci Pobočky ZaměstnanciPobočky
Problémy při vkládání • Při vkládání dat • Do špatně navržené tabulky musíme zbytečně vkládat informace navíc (při vložení zaměstnance také adresu pobočky). • Pokud chceme vložit novou pobočku, která zatím nemá zaměstnance, musíme do atributů zaměstnance vložit samé „null“. • Tabulka obsahuje zbytečně redundantní data.
Problémy při odstraňování • Pokud chceme odstranit posledního zaměstnance určité pobočky z tabulky ZaměstnanciPobočky, údaje o této pobočce budou také smazány.
Problémy při změnách • Pokud chceme změnit adresu určité pobočky v tabulce ZaměstnanciPobočky, musíme změnit všechny záznamy, ve kterých se tato pobočka vyskytuje. • Může se snadno stát, že přidáme zaměstnance k pobočce a přiřadíme ji špatnou adresu.
První normální forma • Zajištění, aby v každé „buňce“ tabulky s daty byla pouze jedinečná hodnota. • Zjistíme chyby v tabulkách typu atributu „telefonní čísla“ s X možnými hodnotami. • Pro tyto atributy se vytvoří nové tabulky.
Druhá normální forma • Zjistíme, zda jsou všechny atributy závislé na primárním klíči. • Pokud nejsou, vytvoříme pro ně nové tabulky a rozumně je propojíme.
Třetí normální forma • Zajistíme, aby veškeré atributy byly na primárním klíči závislé přímo. • Tabulce nájemních domů je jméno nájemníka závislé na jeho id a teprve jeho id na primárním klíči domu. • Takovým atributům vytvoříme samostatnou tabulku.