Informační systémy
Tomáš Vaníček Stavební fakulta ČVUT B407 vanicek@fsv.cvut.cz
Pojem informační systém Data Informace Znalosti (Moudrost)
Pojem informační systém Data Informace Znalosti (Moudrost) Informační systém Znalostní systém
Databázový systém Jeden ze způsobů, jak realizovat informační systém Uživatelské rozhraní DBMS/ SŘBD Aplikační pg
Modely bází dat Síťový model Hierarchický model Realční model Objektový model Objektově relační model
Relační model databáze Kartézský součin množin A1,A2,…,An je množina všech uspořádaných n-tic (a1,a2….an), kde ai je z množiny Ai Relace mezi množinami A1,A2,…,An je libovolná podmnožina kartézského součinu těchto množin Množiny A1,A2,…,An nazýváme množinami atributů
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
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ý
Normální formy 1. normální forma 2. normální forma 3. normální forma …
1. Normální forma Každý atribut relační tabulky je atomický (nedělitelný)
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ý
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ý
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)
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 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
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ý
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í.
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ý
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ý
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ý
E-R diagram Entity – Relation diagram, diagram entit a vztahů mezi nimi Entity – objekty, které chci v databázi popisovat, mohou nabývat různých hodnot, mít instance Relace (vztahy) – závislosti mezi entitami Nezaměňovat s pojmem relace jako podmnožina kartézského součinu množin popisovaná relační tabulkou
Kardinalita relace 1:1 1:n (jedna ku libovolnému počtu) Například vztah obec leží v okrese m:n (libovolný počet ku libovolnému počtu) Například vztah student si zapsal předmět Mohou existovat i jiné kardinality, například 2:n vztah fotbalové mužstvo a zápas fotbalové ligy
ER diagram OSOBY OBCE OKRESY
Jak realizovat vztahy z ER diagramu 1:1 odkazem pomocí klíče jedné tabulky umístěného do navazující tabulky (cizí klíč) Často lze vyřešit prostým spojením tabulek 1:n odkazem pomocí klíče tabulky na straně 1 do tabulky na straně n (cizí klíč) m:n Nelze prostředky relačních databází realizovat, je třeba rozložit na dvě relace typu 1:n
ER diagram STUDENTI PREDMETY
ER diagram STUDENTI ZAPISY PREDMETY
Příklad Navrhneme databázi popisující zápasy českých fotbalových soutěží, jednotlivé registrované hráče, účast hráčů v zápasech a počet vstřelených gólů. Hráč může být během jedné sezóny registrován ve více klubech a to i v různých soutěžích
Entity?
Entity SOUTEZ HRAC KLUB ZAPAS
Relace ? SOUTEZ HRAC KLUB ZAPAS
Relace SOUTEZ HRAC KLUB ZAPAS Hráč je registrován v klubu m:n Klub hraje soutěž 1:n Kluby hrály zápas 2:n ZAPAS Hráč hrál zápas m:n
Relaci 1:n mezi klubem a soutěží můžeme realizovat pomocí cizího klíče (identifikátor soutěže umístit do tabulky klubů) SOUTEZ HRAC Hráč je registrován v klubu m:n KLUB Kluby hrály zápas 2:n ZAPAS Hráč hrál zápas m:n
Relace typu m:n realizujeme pomocí vazebních tabulek REGISTRACE SOUTEZ HRAC KLUB Kluby hrály zápas 2:n ZAPAS ÚČAST
Relace typu 2:n realizujeme pomocí dvou relací 1:n (domácí, hosté) REGISTRACE SOUTEZ HRAC KLUB ZAPAS ÚČAST
Návrh atributů tabulek HRAC Registrační číslo Jméno Příjmení Věk ...
Návrh atributů tabulek SOUTĚŽ Identifikátor Název KLUB Město Identifikátor soutěže (cizí klíč)
Návrh atributů tabulek ZÁPAS Identifikátor Identifikátor klubu domácích (cizí klíč) Identifikátor klubu hostů (cizí klíč) výsledek REGISTRACE Identifikátor hráče (cizí klíč) Identifikátor klubu (cizí klíč) Časová platnost
Návrh atributů tabulek ÚĆAST Identifikátor Identifikátor hráče (cizí klíč) Identifikátor zápasu (cizí klíč) Počet gólů Hodnocení …
Geografické informační systémy
Digitální mapy Rastrové obrázky (například www.mapy.cz) Vektorové obrázky Geografické databáze
Vektorová geografická data Vrstva (hladina, coverage, layer)
Typy geografických dat Data polohová Data popisná Data topologická Metadata
Geometrické typy objektů Body Linie (lomené čáry) Plochy (polygony) (3D tělesa) …
Měřítko mapy Měřítko analogové mapy Měřítko digitální mapy
Manipulace s geografickými daty Získávání dat Ukládání dat Zobrazování dat Analýzy dat
Získávání dat Přímé geodetické měření GPS Dálkový průzkum Země Laserové skenování
Typy GIS programů DeskTop GIS GIS server Analytické nadstavby GIS Prohlížečka dat Internetový mapový server Samostatné GIS programy Rozšíření obecných RDBMS Rozšíření obecných CAD systémů
Geografická analýza – příklady atributových dotazů Jaká je rozlohou největší obec ve Středočeském kraji? Kolik obcí v bývalých moravských krajích (KRAJ1960 3700 a 3800) má v názvu slovo Český/Česká/České? V kolika obcích v ČR vzrostl počet obyvatel mezi roky 1991 a 2002 o více než 60%?
Geoprocesing Metrické operace Množinové operace Obalová zóna (buffer) Sjednocení Průnik Rozdíl
Příklady geografické analýzy - geoprocesing 1. kolik železničních stanic v ČR je v lese? 2. kolik obcí v ČR (bodová vrstva) je dál než 10 km od nejbližší železniční stanice? 3. kolik se nachází v ČR souvislých ploch větších než 50 km2 pro které platí, že jsou dále než 5 km od obcí (bodová vrstva) a dále než 10 km od nejbližší železnice?
Další příklad V obci je e třeba vybudovat obecní studnu, místo pro ní musí splňovat následující podmínky Být na obecní louce Být maximálně 100m od lesa Být maximálně 50m od silnice Být alespoň 150m od kravína
Zapsáno pomocí pseudokódu Vyber z tabulky landuse typ louka -> louka Vyber z majitele kdo=obec -> obecni Vyber z landuse typ = les -> les Vyber z landuse typ = kravin -> kravin Buffer kravin, 150m -> ukravina Buffer les, 100m -> ulesa Buffer silnice, 50m -> usilnice Intersect usilnice,ulesa,louka,obecni -> p1 Subtract p1,ukravina -> studna
Vaše úkoly Popište slovně situaci části IS v podniku, kde pracujete a zachyťte tuto situaci pomocí ER diagramu (cca 5-7 tabulek) V obci chtějí vybudovat koupaliště, které musí být maximálně 100m od potoka, 200-500m od zástavby a na obecním pozemku. K dispozici jsou plošné vrstvy landuse a majitelů pozemků a liniová vrstva vodotečí. Zapište pomocí pseudokódu postup geografické analýzy
Odevzdání úkolů Tyto úkoly je třeba odevzdat osobně ve zkouškových termínech, které budou oznámeny na intranetu Masarykova ústavu.