GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CN 02 2. přednáška
Databáze Databáze je sdílená kolekce logicky uspořádaných dat (a popisu těchto dat - metadat), která je navržena tak, aby splňovala potřeby uživatele. Původní název databanka: určitý soubor uspořádaných informací (dat) Podnikový archiv Systém kartotéčních lístků v knihovně Informace o zákaznících podniku Informace o studentech a studijních oborech fakulty Kvalitně zpracovaný tahák Účel: co nejefektivnější zjišťování informací o vloţených jevech kdo napsal knihu Rumcajs a v které polici ji najdu? Počítačové databáze pouze umoţňují zpracovávat data efektivněji Interaktivní řazení a třídění dat, vyhledávání určitého textu, vyhledávání údajů splňujících sloţitou soustavu podmínek
Datová základna: soubor všech uţivatelských dat uloţených v databázi Databázový systém = data + nástroje pro práci s daty. Access. FoxPro, dbase. Paradox. Oracle. MySQL. SQL Server.. atd.. A v různé míře různé sw GIS
Základní dovednosti databázového systému Zaloţení evidence Naplnění daty Měnit zapsaná data Doplnit další sledované údaje Mazat data Zapisovat nová data Vypočítávat další údaje Řazení dat Výběr údajů Formuláře Tiskové sestavy Export / import Makra, moduly
Relační databázový model Vytváří vztah mezi sloupci a řádky Umožňuje vytvořit vztahy mezi jakýmikoliv dvěma soubory prostřednictvím nějakého společného pole Pro svou flexibilitu je hojně využíván Ještě existuje hierarchický a síťový model
Relační datový model reprezentuje mnoţina dvourozměrných tabulek: Na kaţdou tabulku se odkazujeme jejím jménem Kaţdý řádek reprezentuje datovou větu (record) a kaţdý sloupec pak datovou proměnnou Mnoţina datových proměnných (poloţek, fields) pak definuje datovou strukturu tabulky (structure).
Data a jejich uložení relační model Databáze kolekce databázových tabulek Př. Tabulka Hospody Id NAZEV CENA PROSTREDI ZAHRADKA 1 U tlustý báby 11 4,5 Ano 2 U suchý dásně 16 3 Ne 3 Pod kaštany 15 2 Ano 4 V Šakalově 15 1,5 Ne 5 U zloděje 25 2,5 Ano 6 Na mýtince 14 2 Ano Základní prvky: Sloupec (pole, field, atribut) Řádek (záznam, record) Hodnota (uţivatelská data)
Datové typy Musí být definován název a datový typ kaţdého sloupce Id NAZEV CENA PROSTREDI ZAHRADKA 1 U tlustý báby 11 4,5 Ano 2 U suchý dásně 16 3 Ne 3 Pod kaštany 15 2 Ano 4 V Šakalově 15 1,5 Ne 5 U zloděje 25 2,5 Ano 6 Na mýtince 14 2 Ano Text (znak, char, řetězec, string) libovolné znaky Číslo (numeric) pouze čísla určitého rozsahu, ve většině systémů podtypy Short Integer, Long integer, Float, Double Ano/Ne (Boolean, Logic) logické hodnoty true false Datum. Definice (návrh, zaloţení tabulky)
Nejběžnější datové typy 1. Text - textové poloţky mohou obsahovat všechny znaky, které lze zadávat z klávesnice. To znamená číslice, písmena, interpunkční znaménka a grafické symboly. Délka textové poloţky můţe být aţ 255 znaků, ale zabírá pouze prostor nutný pro uchování vloţených údajů. 2. Memo - tato poloţka můţe obsahovat všechny znaky, které lze zadávat z klávesnice. Délka této poloţky můţe být aţ 32 000, ale zabírá pouze prostor nutný pro uchování vloţených údajů. 3. Number - poloţka tohoto typu můţe obsahovat pouze číslice, desetinnou tečku nebo znaménko minus. Poloţek typu number můţe být více druhů: byte - obsahuje pouze kladné hodnoty typu integer (celá čísla) od 0-255 integer - celá čísla od -32 768 do 32 767 long integer - celá čísla od -2 147 483 678 do 2 147 483 647 single - číselné hodnoty v jednoduché přesnosti od -3.4*1038 do 3.4*10^38 double - číselné hodnoty v dvojité přesnosti od -1.797*10^308 do 1.797*10^308
4. Counter - poloţka tohoto typu uchovává hodnoty long integer, které jsou automaticky o jedna zvyšovány přidáním nového záznamu. 5. Date/Time - tato poloţka reprezentuje dny v kalendáři nebo hodiny. 6. Ano/Ne - poloţky tohoto typu obsahují logické hodnoty, které mohou být vyjádřeny jako 0/1, ano/ne, nebo true/false. 7. OLE object - tato poloţka uchovává data, která nejsou reprezentována znaky. Mohou to být například grafické objekty, zvukové záznamy, fotografie, video sekvence a pod.
Pojmenování objektů v databázi V databázi jsou objekty různého druhu (tabulka, sloupec, index.) Všechny musí být pojmenovány dle zásad: Název obsahuje jen písmena (bez diakritiky) a číslice a znaky _ Název musí začínat písmenem Název má omezenou délku (dle systému) Názvy objektů musí být v jedné databázi jedinečné (výjimky: indexy, sloupce v různých tabulkách) Název nesmí být shodný s rezervovaným slovem Název by měl být výstiţný Př. Sloupec pro datum narození: datum_nar, dat_nar, dnarozeni
Klíče Primární klíč Pole (nebo kombinace polí), které jednoznačně identifikuje záznam V kaţdém řádku má unikátní hodnotu, nemohou existovat dva řádky se stejným primárním klíčem Nesmí obsahovat hodnotu Null Má ho mít kaţdá tabulka Vybere se z tzv. kandidátních klíčů Cizí klíč Pole slouţící k propojení tabulky s jinou tabulkou Primární klíč z cizí tabulky Jednoduchý x složený klíč
Vztahy mezi tabulkami Databázi zpravidla tvoří více tabulek, mezi nimiţ jsou vztahy Mezi dvěmi tabulkami můţe být: 1 : 1 1 : N N : M Vztah mezi tabulkami nebo tabulka sama můţe být nazývána relací
1 : 1 Relace 1:1 Muzi.dbf ID Prijmeni Jmeno Narozeni 1 Novák František 23.9.1958 2 Podpěra Jan 15.11.1935 Zeny.dbf Monogamie ID Partner Prijmeni Jmeno Narozeni Sukne 153 1 Nováková Lada 14.7.1963 60 289 2 Podpěrová Alena 10.10.1980 30
1 : N Muzi.dbf Relace 1:N ID Prijmeni Jmeno Narozeni 1 Muhamad Ali-Baba 23.9.1958 2 Mustafa Abdul-Ali 15.11.1935 Zeny.dbf Polygamie ID Partner Prijmeni Jmeno Narozeni 152 1 Muhamad Seherezada 29.2.1951 153 1 Muhamad Alifa 14.7.1963 161 1 Muhamad Hala-Bala 10.10.1980 283 2.. 284 2..
Muzi.dbf ID_m Prezdivka 1 Divoch 2 Šmoula 3 Kikin 4 Moula 5 Dţejár 6 Ufoun 7 Bijec 8 Dugi 9 Mistr 10 Bredpit N : M Zeny.dbf ID_z Prezdivka 1 Micka 2 Kotě 3 Manka 4 Víla 5 Miselí 6 Dolly 7 Bobina 8 Mařena 9 Pamela 10 Těţká Barbora
Ţivot databáze 1. Analýza 2. Návrh Model vztahů entit Entita - je jednoznačně rozlišitelný, identifikovatelný a samostatné existence schopný objekt z reálného světa Atribut entity popisný údaj k entitě rozpoznat, co je v navrhované databázi entitou a jaké má mít atributy jaké mezi našimi entitami existují vztahy Jaké atributy patří k entitě, co bude tvořit primární a cizí klíče, jakého datového typu atribut je Popř. jakých hodnot můţe atribut nabývat 3. Implementace 4. Testování, provozování a údrţba
Dotazovací jazyk SQL u relačních databází 1. práce s daty je uskutečňována pouze relačními prostředky 2. databáze na logické úrovni je dána pouze relacemi 3. musí existovat přístupový mechanismus k uloţeným datům (název tabulky,název sloupce, hodnota přístupového klíče) 4. jsou definovány prázdné hodnoty 5. veškerý popis databázových objektů je uchován v relačních tabulkách, manipulace s daty je zaloţena na relační algebře 6. existuje jazyk pro definici dat včetně vytváření pohledů a podpory vstupů a výstupů 7. existují příkazy pro manipulaci s daty (příkazy - insert, delete, update) 8. je moţné definovat přístupová práva 9. logické relace jsou nezávislé na jejich fyzické reprezentaci (fyzická datová nezávislost) 10. funguje logická datová nezávislost
Příkazy SQL jazyka (Structured query language) Tabulku lze vytvořit tímto SQL příkazem Velká a malá písmena SQL jazyk nerozlišuje CREATE TABLE <jmeno tabulky> (<polozka> <typ> }<delka>), (<polozka> <typ> }<delka>)]...); Data do tabulky pak ukládáme po řádkách příkazem: INSERT INTO <jmeno tabulky> VALUES (<seznam konstant>);
CREATE TABLE vcelari ( jmeno TEXT(20), adresa TEXT(25), narozen DATE, kraj TEXT(15), poc_vcelstev INTEGER, litru_medu SINGLE); INSERT INTO vcelari VALUE ( Jaroslav Smutný, Veveří 95, 27.01.1970, Jihomoravský,5,20); INSERT INTO vcelari VALUE ( Jan Poláček, Grohova 78, 25.11.1950, Jihočeský,24,125);
K čemu slouţí indexy Představují pomocnou sloţku databáze, která uchovává informace jedné nebo několika poloţek v tabulce. Indexy slouţí k urychlení operací jako je setřídění a hledání záznamů podle klíčových poloţek. Takţe, indexové klíče jsou vhodné pro následující účely: k urychlení procesu zobrazení záznamu v jiném pořadí, neţ v jakém byly zadány k urychlení vyhledávání jednotlivých záznamů podle jednoznačných hodnot v klíčových poloţkách k urychlení dotazů, které vybírají záznamy podle obsahu klíčových poloţek k zamezení zadávání záznamů se stejnými indexovými klíči podporu vazeb mezi tabulkami k určení implicitního pořadí zobrazování záznamů Většina tabulek by měla mít minimálně jeden zvláštní klíč, který se nazývá primární klíč. Tento určuje implicitní pořadí zobrazení při prohlíţení záznamů a navíc slouţí jako jednoznačný identifikátor.
Příjmení Jméno Číslo věty Příjmení Smutný Adam Kadaňka Zvěřina Bílek Jaroslav Jan Pavel Pavel Miroslav 2 Adam 5 Bílek 3 Kadaňka 1 Smutný 4 Zvěřina databáze indexový klíč V jazyce SQL vypadá příkaz na indexování následovně: ORDER BY <seznam klíčů> SELECT * FROM vcelari ORDER BY litru_medu DESC; DESC - znamená sestupně
Jazyk SQL a relace mezi tabulkami V jazyce SQL vypadá příkaz na sestavení relace a dotazu následovně: SELECT <seznam sloupců> FROM <seznam tabulek> WHERE <podmínka spojení> Operace spojení je provedena příkazem SELECT tak, ţe v klauzuli FROM uvedeme seznam jmen spojovaných tabulek a v klauzuli WHERE uvedeme podmínku spojení.
Pozor - někteří zákazníci si mohou půjčit auto vícekrát, nebo, ţe půjčovna můţe mít více stanovišť, kde jsou auta zaparkována 1. po logické analýze problému prvotní struktura dat z_kód příjmení adresa a_kód model s_kód stanoviště cena půjčeno vráceno 2. po normalizaci zákazník z_kód příjmení adresa pronájem z_kód a_kód půjčeno vráceno pronájem a_kód model cena s_kód stanoviště s_kód stanoviště
Atributy v GIS vztah 1 : 1 Primární klíč Př. Plochy bezlesí navázané na atributovou tabulku porostní mapy Cizí klíč
Atributy v GIS 1 : N Př. Porostní mapa a hospodářská kniha Funkce RELATE!!! Nelze použít při klasifikaci; pro ni musíme nějak získat vztah 1 :1
Shapefiles Nejrozšířenější formát Široce podporován v různém software Nepodporuje topologii (narozdíl od Coverage nebo Geodatabase) Nepodporuje křivky (např. Bézierovy pouţívané v kartografii) Atributy ukládá ve formátu dbase - jistá omezení V kaţdém Shapele můţe být obsaţen pouze jeden typ geometrie Je sloţen z minimálně 3 souborů, můţe být víc
SHP - povinný, soubor s geometrií DBF - povinný, atributová tabulka ve formátu dbase SHX - povinný, soubor s indexem propojucícím geometrii a atributy PRJ - definice pouţitého souřadnicového systému v ESRI SBN - prostorový index SBX - prostorový index ATX - atributový index SHP.XML - metadata ve formátu XML QIX - quad-tree prostorový index
Nejjednodušší forma geografických dat Neukládají se topologické vztahy mezi různými prvky, případně třídami prvků Soubory typu shapefile zahrnují následující typy bodových prvků: 1. Body 2. Vícenásobné body 3. Jednoduché linie 4. Vícedílné linie 5. Jednoduché plochy 6. Vícedílné plochy
atributový index - vytvoří index nad vybraným atributem, slouţí k rychlejší práci s atributovou tabulkou ArcToolbox - Data Management Tools Indexes Add Attribute Index, přidá atributový index, je třeba vybrat příslušné atributy, které mají být indexovány, název indexu, zda jsou hodnoty indexu jedinečné a zda mají být hodnoty indexovány ve vzestupném pořadí. U Shapele není moţné volit název a parametry, index se pak vytvoří jako soubor shape.atribut.atx
prostorový index - vytvoří index nad geometrií ArcToolbox - Data Management Tools Indexes Add Spatial Index, přidá prostorový index, je třeba zvolit úrovně prostorového indexu (Spatial Grid 1 aţ 3). Vyuţito je totiţ indexování do gridu (pravidelné čtvercové sítě). U Shapele není moţné volit úrovně gridu, index se pak vytvoří jako soubory shape.sbx a shape.sbn.
Geodatabáze Personal geodatabase má tří klíčové komponenty: 1. feature classes 2. feature datasets 3. neprostorové tabulky (nonspatial features) Všechny tři komponenty jsou vytvořeny a spravovány v ArcCatalogu Jde o skutečný geodatabázový datový model Ukládá kaţdý prvek jako řádek v tabulce Vektorový tvar prvku je uloţen v tabulkových polích tvaru (shape) s atributy prvků v dalších polích Kaţdá tabulka ukládá třídu prvků V geodatabázi mohou být uloţeny také rastry i datové tabulky
Feature Class Feature class je mnoţina prvků shodného geometrického typu (bod, linie nebo polygon) a atributů vyjádřených ve shodném souřadnicovém systému Například všechny restaurace ve městě mohou být uloţeny v geodatabázi jako jeden feature class Geometricky by byly restaurace na mapě reprezentovány jako bod, jehoţ souřadnice by byly vyjádřeny ve zvoleném souřadnicovém systému V neprostorové tabulce by pak byly pro kaţdou restauraci uloţeny informace o její otevírací době, kapacitě, atd. Prvkové třídy mohou v geodatabázi existovat jako samostatně stojící prvkové třídy, nebo mohou být součástí nějakého feature dataset.
Feature Dataset Feature dataset je kolekce prvkových tříd (feature classes) Všechny prvkové třídy v rámci jednoho feature dataset musí mít shodný souřadnicový systém Feature dataset primárně slouţí k uloţení prvkových tříd, které mezi sebou mají topologické vztahy, jako například sousedství (přilehlost) Pro moţnost definovat pouţití topologického pravidla mezi prvkovými třídami, musí být tyto třídy součástí jednoho feature dataset. Nonspatial Tables Neprostorové tabulky obsahují atributová data, která mohou být asociována s prvkovými třídami Tyto tabulky obsahují pouze atributová data, neobsahují geometrické popisy prvků coţ je odlišuje od tzv. feature class tables, které obsahují alespoň jeden sloupec s geometrickým popisem prvků.
Další prvky personal geodatabase Domains - domény Domény zabraňují chybám při vstupu dat do geodatabáze Rovněţ slouţí ke kontrole hodnot atributů v existujících datech Domény definují mnoţinu přípustných hodnot, které lze do atributu vloţit Doména je definována buď výčtem hodnot či rozsahem Topology Prostorové vztahy mezi prvky jsou definovány pomocí topologie Definování topologických pravidel je nezbytné, pokud například modelujeme povodí řek. Pak je ţádoucí, aby na sebe jednotlivé prvky (vodní toky) této sítě navazovali apod, a tuto návaznost a jiné vlastnosti lze právě zajistit definováním odpovídajících topologických pravidel.
V geodatabázi jsou moţné tři typy topologií 1. geodatabase topology 2. map topology 3. topologie vytvořená pro geometrickou síť (network topology) ArcGIS obsahuje přes 20 topologických pravidel, pomocí kterých je moţné modelovat prostorové vztahy mezi prvky a vynutit si tak jejich dodrţení Všechny prvkové třídy podílející se na geodatabase topology (jinými slovy na prvky těchto prvkových tříd se vztahuje nějaké to topologické pravidlo) musí být obsaţeny ve shodném feature dataset
Základní geometrie pro třídy prvků geodatabáse jsou: 1. Body a vícenásobné body 2. Styčné body sítí 3. Linie 4. Segmenty sítí 5. Polygony Všechny třídy prvků typu bodů, linií a polygonů mohou mít: Více sloţek Souřadnice x,y,z nebo x,y,z,staničení
Liniové prvky jsou tvořeny hranami, kruhovými oblouky a Bézierovými křivkami
Polygonové prvky representují plochy. Jejich ohraničení můţe být sloţeno z: 1. Linií 2. Kruhových oblouků 3. Bézierových křivek Mohou být prosté uzavřené útvary nebo mohou mít vloţené ostrůvky
Shrnutí Formát geodatabase poskytuje rozsáhlou funkcionalitu a nabízí mnoho výhod pro GIS uţivatele. Z předchozího bychom si měli pamatovat, ţe: geodatabase je relační databáze, která ukládá geografická data. Rozlišujeme dva typy formátu ESRI geodatabase 1. personal 2. multiuser Klíčovými komponentami personal geodatabase jsou 1. Feature class 2. Feature dataset 3. Nonspatial tables
V geodatabázi můţeme definovat topologii (topology) a vztahy mezi prvky (relationship) V geodatabázi mohou být vytvořeny dva typy rastrových objektů raster dataset a raster catalog Multiuser geodatabase přímo ukládá rastrová data, zatímco personal geodatabase se na rastry odkazuje.
Topologie 1. Topologie popisuje vzájemné prostorové vztahy geometrických prvků 2. V oblasti GISů se tímto pojmem označují přímo vlastní prostorové vztahy geoprvků 3. V kaţdém moderním geografickém informačním systému je znalost topologie zaznamenaných geoprvků nezbytným předpokladem pro úspěšné zvládání poţadavků uţivatelů Má-li GIS poskytnout odpověď na otázky typu 1. "Které parcely leţí v okolí konkrétní silnice?" 2. "Jaká je rozloha lesů leţících v okruhu do 100 km od uvaţovaného místa výstavby nového závodu?" atd. pak je znalost prostorových vztahů geoprvků víc neţ nezbytná.
Základním kamenem pro práci s mapovými podklady (převzatými nebo nově vytvořenými) je kvalitně řešená topologie Úprava kresby topologickými operacemi zajišťuje stabilitu dat, která je nutnou podmínkou pro další práci s mapovými elementy a provádění analýz Při topologických operacích na kontrolu kresby jsou nejprve vybrány všechny elementy. Vytvoří se tzv. výběrová mnoţina. Tato můţe být definována oknem, ohradou nebo jinou metodou či speciálním příkazem Při příliš velkém rozsahu kresby jsou pak nároky jak z hlediska časového tak i z hlediska vyuţití pouţité techniky neúnosné. Tuto situaci řeší některé programy tím, ţe výběrovou mnoţinu je moţné rozdělit na podmnoţiny ( definovat počet sloupců a řádků ) a tím vytvořit jakousi plošnou síť
Mezi nejdůležitější opravné topologické operace patří: hledání a úprava duplicitních čar hledání podobných čar sniţování počtu vrcholů rozdělení lineárních elementů vyhledání rozestupů vyhledání přesahů
Vyhledání zlomků čar Vyhledání duplicitních čar Další topologické operace Vyhledání podobných čar Mapový podklad Vyhledání rozestupů Rozdělení lineárních elementů Vyhledání přesahů Snížení počtu vrcholů
Coverage Obsahuje primární, sloţené a sekundární typy prvků Primární jsou: 1. Identifikační body (labels) 2. Linie lomené čáry, koncové body se nazývají nody, vnitřní vrcholy vertex 3. Polygony Linie také mohou tvořit mnohoúhelníky, které representují např. typ půdy
Nody mohou mít atributy, takţe mohou representovat i bodové prvky v síti, např. uzávěr vody Nody jsou také důleţité ke sledování vzájemného propojení prvků Polygony representují oblasti, jsou ohraničeny liniemi včetně linií, které určují ostrůvky Kaţdý bod se nachází právě uvnitř jednoho Polygonu Mohou mít společné okraje B a C, ale nepřekrývají se Sloţené jsou sloţeny z primárních prvků a zahrnují: 1. Trasy/sekce 2. Regiony 3. Registrační body 4. Propojení 5. Anotace
Regiony jsou plošné prvky sloţené z polygonů. Na rozdíl od polygonů mohou být nesouvislé. Pevnina a ostrov mohou být značeny v mapě jako dva polygony, ale mohou patři do stejného regionu. Polygony A a D patří do regionu R1 Regiony R2 a R3 mají společný polygon C Příklad sekundárního prvku anotace Můţe být umístěna u bodu, mezi dvěma body nebo podél řady bodů Anotace je uloţena v geografických Souřadnicích, tedy si zachovává i měřítko souvstaţně k jiným prvkům
Registrační značky jsou geografické kontrolní body Representují známé místo na zemi Pouţívají se k registraci a transformaci souřadnic coverage Topologie slouţí k definování a pouţívaní vztahů vlastních geometrií prvků. Existují 3 hlavní topologické vztahy pro coverage: 1. Spojitost 2. Definice ploch 3. Přilehlost Coverage ukládají propojitelnost záznamem nodů, linie, které mají společný node, jsou spojené jde o tzv. liniovou topologii Kaţdá linie je mnoţinou propojených s výchozím a koncovým nodem
Zde jsou 3 linie 1,2,3 Linie začíná v node 10 jde k nodu 20 Je definována lomovými body a,b,c,d Linie 2 je spojena s 1 v nodech 10 a 20 Coverage definují plochy tak, ţe zaznamenávají seznam propojených linií, které tvoří hranice daného polygonu. Polygon A je definován liniemi 1 a 2.
Coverage ukoádají souvislosti tak, ţe uchovávají seznam polygonůna levé a pravé straně kaţdé linie. Polygony, které mají některou linií společnou, jsou související.
Závěry a doporučení pro sestavování geomodelů Je vhodné najít rozumný kompromis mezi pečlivostí při editaci dat a moţnostem automatické kontroly geometrické přesnosti a topologie Často je efektivnější pořizovat data v jednodušším software se základními kontrolami geometrie (např CAD), kontroly topologie a plnění atributových dat potom lze rychleji udělat v GIS Při nákupu dat je vhodné vyţádat si vzorek a ten otestovat na chyby geometrie a vybraná topologická pravidla Většina státních mapových děl pochází z CAD systémů a často nevyhovuje topologickým pravidlům nutným pro komplexnější úlohy (geocoding, síťové analýzy) Pokud máme k dispozici odpovídající software, často můţe být výhodnější cíleně koupit strukturálně jednodušší data (levnější) a přidanou hodnotu si vytvořit vlastními silami Na geometrické kvalitě vektorových dat velmi závisí správnost výsledku mnoha úloh (př. (extrém): data v jednotném záchranném systému, špatná volba trasy pro sanitku, hasiče...)