Informační systémy 1
Tomáš Vaníček Stavební fakulta ČVUT B407 vanicek@fsv.cvut.cz 2
Pojem informační systém Data Informace Znalosti (Moudrost) 3
Pojem informační systém Data Informace Znalosti (Moudrost) Informační systém Znalostní systém 4
Databázový systém Jeden ze způsobů, jak realizovat informační systém Uživatelské rozhraní DBMS/ SŘBD Aplikační pg 5
Relační model databáze Příslušnost konkrétní n-tice v relaci chápeme jako zápis existence konkrétního invidua s příslušnými vlastnostmi Jednotlivé prvky relace zapisujeme jako záznamy do řádků tabulky Jednotlivé množiny atributů do sloupců relační tabulky 6
Relační tabulka JMENO OBEC OKRES KRAJ Petr Vopička Klatovy Plzeňský Josef Pokorný Železná Ruda Antonín Semerád Zdice Beroun Středočeský Ladislav Lejbl Broumy Miroslav Růžička Jan Novák Hradec Králové Královéhradecký Martin Hessler Doksy Kladno Česká Lípa Liberecký 7
Normální formy 1. normální forma 2. normální forma 3. normální forma … 8
1. Normální forma Každý atribut relační tabulky je atomický (nedělitelný) 9
Je tabulka v 1.NF? JMENO OBEC OKRES KRAJ Petr Vopička Klatovy Plzeňský Josef Pokorný Železná Ruda Antonín Semerád Zdice Beroun Středočeský Ladislav Lejbl Broumy Miroslav Růžička Jan Novák Hradec Králové Královéhradecký Martin Hessler Doksy Kladno Česká Lípa Liberecký 10
Tabulka je v 1.NF JMENO PRIJMENI OBEC OKRES KRAJ Petr Vopička Klatovy Plzeňský Josef Pokorný Železná Ruda Antonín Semerád Zdice Beroun Středočeský Ladislav Lejbl Broumy Miroslav Růžička Jan Novák Hradec Králové Královéhradecký Martin Hessler Doksy Kladno Česká Lípa Liberecký 11
2. Normální forma V tabulce existuje atribut Ak tokový, že hodnoty všech ostatních atributů Ai pro i≠k jsou funčně závislé na hodnotách atributu Ai. Hodnota atributu Ai jednoznačně identifikuje popisovaný objekt Atribut Ai nazýváme primární klíč Pokud primární klíč v tabulce přirozeně neexistuje, můžeme ho do tabulky uměle doplnit (ID) 12
Je tabulka v 2.NF ? JMENO PRIJMENI OBEC OKRES KRAJ Petr Vopička Klatovy Plzeňský Josef Pokorný Železná Ruda Antonín Semerád Zdice Beroun Středočeský Ladislav Lejbl Broumy Miroslav Růžička Jan Novák Hradec Králové Královéhradecký Martin Hessler Doksy Kladno Česká Lípa Liberecký 13
Není, je třeba doplnit ID Je tabulka v 2.NF ? JMENO PRIJMENI OBEC OKRES KRAJ Petr Vopička Klatovy Plzeňský Josef Pokorný Železná Ruda Antonín Semerád Zdice Beroun Středočeský Ladislav Lejbl Broumy Miroslav Růžička Jan Novák Hradec Králové Královéhradecký Martin Hessler Doksy Kladno Česká Lípa Liberecký Není, je třeba doplnit ID 14
Teď už tabulka v 2.NF je ID JMENO PRIJMENI OBEC OKRES KRAJ 1 Petr Vopička Klatovy Plzeňský 2 Josef Pokorný Železná Ruda 3 Antonín Semerád Zdice Beroun Středočeský 4 Ladislav Lejbl Broumy 5 Miroslav Růžička 6 Jan Novák Hradec Králové Královéhradecký 7 Martin Hessler Doksy Kladno 8 Česká Lípa Liberecký 15
3. Normální forma V databázi (soustavě tabulek) neexituje atribut Ak, jehož hodnoty by se daly funkčně odvodit z hodnot ostatních atributů. V databázi neexistují redundantní data. Redundantní data způsobí zvýšení objemu dat a tím pádem zvýšení nákladů pro manipulaci s databází Existence redundance dát též může způsobit narušení identity (nerozpornosti) databáze. Redundance dat nemusí být vždy škodlivá, občas se naopak do databáze umělě zavádí. 16
Tabulka není ve 3.NF ID JMENO PRIJMENI OBEC OKRES KRAJ 1 Petr Vopička Klatovy Plzeňský 2 Josef Pokorný Železná Ruda ? 3 Antonín Semerád Zdice Beroun Středočeský 4 Ladislav Lejbl Broumy 5 Miroslav Růžička 6 Jan Novák Hradec Králové Královéhradecký 7 Martin Hessler Doksy Kladno 8 Česká Lípa Liberecký 17
Pro odstranění redundance je třeba vytvořit nové tabulky ID_OBCE JMENO OKRES 1 Klatovy KT 2 Železná Ruda 3 Zdice BE 4 Broumy 5 Beroun 6 Hradec Králové HK 7 Doksy KD 8 CL ID_OKR NAZEV KRAJ KT Klatovy Plzeňský BE Beroun Středočeský HK Hradec Králové Královéhradecký 18
A upravit původní tabulku ID_OBCE JMENO OKRES 1 Klatovy KT 2 Železná Ruda 3 Zdice BE 4 Broumy 5 Beroun 6 Hradec Králové HK 7 Doksy KD 8 CL ID JMENO PRIJMENI OBEC 1 Petr Vopička 2 Josef Pokorný 3 Antonín Semerád 4 Ladislav Lejbl 5 Miroslav Růžička 6 Srp 7 Jan Novák 8 Martin Hessler 9 ID_OKR NAZEV KRAJ KT Klatovy Plzeňský BE Beroun Středočeský HK Hradec Králové Královéhradecký 19