Do databáze ukládáme data o sledovaných jevech. Můžeme si ji představit jako soubor tabulek. V záhlaví tabulky máme názvy sloupců (atributy), další řádky pak jsou jednotlivé záznamy.
Příklad tabulky:ID | auto | barva | motor |
1 | Felicie | Modrá | Dvouválec |
2 | Ferrari | Žlutá | Šestiválec |
15 | Trabant | Oprýskaná | Nefunkční |
Definice:
Datový model – je myšlenkový popis všech objektů, procesů, atributů a vztahů, které nás zajímají. Vytváříme jakési asociace mezi objekty a procesy.
Vytváříme pro lepší představu výsledné podoby databáze.
Používají se grafické symboly:
Entity - obdélník -> entity budou v databázi představovat názvy tabulek: zboží, zákazníci, dodavatelé, ...
Atributy - ovály -> to jsme nedělali, v databázi to jsou vlastně názvy sloupců
Vztahy - kosočtverce ->říkají, co jednotlivé atributy dělají: zákazníci objednávají zboží, dodavatelé dodávají zboží; ve výsledné databázi budou většinou také tvořit názvy tabulek.
Vztahy mezi entitami (tabulkami)
1:1 - jedna ku jedné - ke každému řádku jedné tabulky (entitě) můžeme přiřadit právě jeden řádek tabulky (entity) druhé: jeden žák má jen jeden čip na obědPředstavme si relace jako vztahy mezi jednotlivými tabulkami
Primární klíč - je důležitý pro jasné určení konkrétního záznamu (řádku), musí být jedinečný (nesmí se opakovat), musí být vyplněn, nesmí se měnit. Může to být jeden, nebo více sloupců.
Úprava do podoby co nejefektivnější.
Jedná se o zamezení redundace (zbytečného opakování) dat.
V praxi se jedná především o rozdělení do více tabulek.
Relace je v 1. normální formě, pokud platí, že veškeré hodnoty v relaci jsou skalární (jedinečné).
Každý atribut (sloupec) obsahuje pouze jednu hodnotu - proto nesmí existovat např. tabulka Třida, kde by ve sloupci žáci byli postupně všichni vyjmenováni odděleni čárkou.
ID | Nazev | tridni_ucitel | zaci |
1 | 6. C | Mirek Dušín | Oskar Bakaš, Ivana Černéková, Radka Čáhařevá |
2 | 8. A | Jiří z Poděbrad | Kryštof Jabko, Krystýna Mrazíková, Jakub Jenaga |
15 | 16. Q | Jan Paroubek | Tereza Koplanová, Veronika Kerosková, Klára Klapalová, Anna Mourrisonová |
ID | Nazev | tridni_ucitel | zak |
1 | 6. C | Mirek Dušín | Oskar Bakaš |
2 | 6. C | Mirek Dušín | Ivana Černéková |
3 | 6. C | Mirek Dušín | Radka Čáhařevá |
4 | 8. A | Jiří z Poděbrad | Kryštof Jabko |
5 | 8. A | Jiří z Poděbrad | Krystýna Mrazíková |
6 | 8. A | Jiří z Poděbrad | Jakub Jenaga |
15 | 16. Q | Jan Paroubek | Tereza Koplanová |
16 | 16. Q | Jan Paroubek | Veronika Kerosková |
17 | 16. Q | Jan Paroubek | Klára Klapalová |
18 | 16. Q | Jan Paroubek | Anna Mourrisonová |
Relace je v 1. normální formě a zároveň všechny její neklíčové atributy jsou závislé na celém primárním klíči.
V jazyce normálních lidí: pokud se nám začnou data ve sloupcích opakovat musíme vytvořit novou tabulku
Příklad druhé normální formy:ID | Nazev | tridni_ucitel |
1 | 6. C | Mirek Dušín |
2 | 8. A | Jiří z Poděbrad |
15 | 16. Q | Jan Paroubek |
ID_zaka | ID_tridy | zak |
1 | 1 | Oskar Bakaš |
2 | 1 | Ivana Černéková |
3 | 1 | Radka Čáhařevá |
4 | 2 | Kryštof Jabko |
5 | 2 | Krystýna Mrazíková |
6 | 2 | Jakub Jenaga |
15 | 15 | Tereza Koplanová |
16 | 15 | Veronika Kerosková |
17 | 15 | Klára Klapalová |
18 | 15 | Anna Mourrisonová |
Relace je ve 2. normální formě a zároveň všechny její neklíčové atributy jsou vzájemně nezávislé.
Česky řečeno: sloupce, které nejsou přímo závislé na primárním klíči dáme do zvláštní tabulky.
V našem případě tu žádný takový sloupec nemáme, ledaže bychom osamostatnili třídního učitele, ale to nemá valný smysl.