Normální formy Projekt OBZORY Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Normální formy Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond
Motivace Efektivně uložená data Zajištění konzistence Omezení možnosti vzniku anomálií Efektivní vyhledávání
Nekonzistence Může vzniknout jakýmkoli dotazem INSERT/UPDATE/DELETE Pokud máme ta samá data uložená na více místech
Normální formy Zabraňují vzniku nekonzistencí Celkem známe 7 NF Progresivní (pro dosažení 3.NF musíme nejdříve provést 1.NF a 2.NF) V této prezentaci budeme pracovat pouze s 1-3. NF Pokud mluvíme o normalizované tabulce, většinou jde o 3. NF
Historie 1. NF – 1970 – Edgar F. Codd 2. NF – 1971 – Edgar F. Codd
1. NF Hodnoty v každém poli jsou atomické (pouze jedna informace v jednom sloupci) Neopakují se sloupce, které by skladovaly stejnou informaci Každá tabulka má unikátní klíč (množina atributů, která jednoznačně určuje záznam)
1. NF Tabulka znázorňující objednávky, každá objednávka obsahuje více řádků Odpovídá tabulka pravidlům 1. NF?
1. NF Zajistíme atomicitu Odpovídá tabulka pravidlům 1. NF?
1. NF Určíme primární klíč Odpovídá tabulka pravidlům 1. NF?
1. NF Ano, odpovídá Struktura tabulky po 1. NF:
2. NF Všechna pravidla z 1. NF Opakující se data mezi jednotlivými záznamy se musí přesunout do samostatné tabulky Tabulky se na sebe odkazují pomocí cizího klíče
2. NF Odpovídá tabulka 2. NF?
2. NF order_date – závislé jen na order_id customer_x – není závislé ani na jedné části PK item_description, item_price – závislé pouze na item_id item_qty – závislé na obojím item/order_total_price – duplicitní hodnota
2. NF Odpovídají tabulky 2. NF?
2. NF orderds odpovídá order_items ne
2. NF Odpovídají tabulky 2. NF?
2. NF Ano, odpovídají
3. NF Všechna pravidla z 2. NF Odstranit všechny sloupečky, které nejsou závislé pouze na primárním klíči
3. NF Odpovídají tabulky 3. NF?
3. NF Všechny informace customer_x patří do separátní tabulky, spojení přes FK Odpovídají tabulky 3. NF?
3. NF Ano, odpovídají Ještě přidáme další FK:
3. NF
Kde nepoužívat NF? Výkonová omezení Nad normalizovanými daty je obtížné provádět rozsáhlé agregační funkce -> „dopočítávané sloupce“ NoSQL databáze (Mongo, CouchDB)
Použité zdroje a literatura An Introduction to Database Normalisation <http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html> 3 Normal Forms Database Tutorial <http://phlonx.com/resources/nf3/> Wikipedia: Database Normalisation <http://en.wikipedia.org/wiki/Database_normalization>
Tato prezentace byla vytvořena v rámci projektu OBZORY Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Tato prezentace byla vytvořena v rámci projektu OBZORY Autor: Václav Purchart Předmět: Tvorba webových aplikací Datum: 23. 3. 2011 Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond