mendelu.org

Transkript

mendelu.org
GIS – Geografické informační systémy
GIS – Spatial SQL
Dotazy nad prostorovými daty
11 požadavků na prostorový dotazovací jazyk
Prostorové operace
Prostorové predikáty
Příklad užití
Spatial SQL
Potřeba vhodného jazyka pro kladení dotazů v prostorových databázích ­ různá řešení.
Pro dotazování existují tři typy dotazů:
 prostorové dotazy (pouze prostorové vlastnosti) Vypiš města vzdálená více než 50 km od Ostravy.  atributové dotazy (pouze na neprostorové vlastnosti)Kolik lidí žije v Moravskoslezském kraji?
 kombinované dotazy (jsou zahrnuty obě složky)
Vypiš všechny typy hnojiv použité na pozemcích sousedících s pozemkovým blokem 510786.
Spatial SQL
Klasické relační dotazovací jazyky není vhodné použít – není zde podpora pro prostorová data (chybí predikáty i operace).
Některé GIS obsahují funkce pro nahrazení takových operací.
Řešením se jeví rozšíření funkcionality SQL o práci s prostorovými daty.
Spatial SQL ­ požadavky
M. J. Egenhofer v roce 1994 v článku Spatial SQL: A Query and Presentation Language specifikoval minimální rozšíření SQL, tak aby:
1. byly zachovány principy SQL
2. bylo možné zacházet s prostorovými objekty na vysoké úrovni
3. byly vybudovány prostorové operace a vztahy Spatial SQL ­ komponenty
Na základě uvedených požadavků ­ dvě komponenty prostorového jazyka
1. dotazovací jazyk pro popis informací,
2. prezentační jazyk pro zobrazení výsledků dotazu.
Prostorový ADT ­ abstraktní geometrický datový typ "Spatial" s vhodnými operacemi a vztahy (uživatel nepracuje s přesnou strukturou prostorových dat, ale s abstrakcí).
Grafická presentace výsledku ­ presentace výsledku dotazu je v grafické formě i s vizualizací odpovídajících neprostorových dat.
Spatial SQL – 11 požadavků
Podle průzkumů bylo zjištěno 11 požadavků na prostorový dotazovací jazyk oproti konvenčním dotazovacím jazykům.
Spatial SQL – 11 požadavků
1. Abstraktní datový typ “Spatial” ­ zavedení ADT včetně odpovídajících operací a vztahů tak, aby uživatelé mohli zacházet s prostorovými daty na úrovni nezávislé na vnitřním kódování (bez znalosti x, y souřadnic).
2. Zobrazení výsledku dotazu v grafické podobě musí dovolit zobrazení i neprostorových atributů uložených v databázi.
Spatial SQL – 11 požadavků
3. Kombinování výsledku ­ možnost kombinace výsledku dotazu s výsledkem předchozích/ho dotazu/ů vede k dynamické interakci.
4. Kontext ­ pro zobrazení kontextu je u grafické prezentace nutná informace, která nebyla explicitně požadována, ale je nutná k interpretaci výsledku dotazu v umístění v prostoru. (Hledám­li v mapě Ostravu, je nutno ji mít zobrazenu s okolím, nikoli jako zobrazení tečky s nápisem Ostrava na bílé ploše.)
Spatial SQL – 11 požadavků
5. Ověřování obsahu ­ uživatelé potřebují mít kontrolu nad obsahem výsledku dotazu ­ zjištění, jakému dotazu odpovídá vykreslení ­ kvůli kombinování výsledku.
6. Výběr ukázáním ­ použití ukazovacího zařízení na výběr z výsledku dotazu umožňuje vytvořit referenci pro příští dotaz ­ typicky myší.
7. Manipulace se zobrazováním ­ rozlišení grafické reprezentace prostorových objektů i jejich částí pomocí barev, vzorů, intenzity a symbolů je mnohem komplexnější než popis pomocí tabulky a vyžaduje speciální jazykové nástroje.
Spatial SQL – 11 požadavků
8. Vysvětlivky ­ je nutná popisující legenda k jednotlivým druhům zobrazovaných objektů (jako u mapy).
9. Popisky – hrají pro uživatele důležitou roli při porozumění grafickému zobrazení ­ uživatel musí být schopen vybrat na jejich základě objekty i pomocí dotazovacího jazyka.
10. Volba měřítka – uživatelům musí být umožněna volba měřítka pro generování vhodné mapy.
11. Vymezení oblasti – vhodné nástroje pro volbu oblasti zájmu (nikoli celé mapy), nad kterou budou prováděny další dotazy.
Spatial SQL ­ požadavky
Snaha o oddělení dotazovacích a zobrazovacích (presentačních) instrukcí, neboť zabudování instrukcí přímo do dotazovacího jazyka by znamenalo přílišnou složitost jazyka, tím jeho obtížnou použitelnost.
Řešení ­ rozdělení každé instrukce do několika menších (typově různých) instrukcí.
Rozlišujeme 3 typy instrukcí.
Spatial SQL ­ instrukce
Vlastní uživatelský dotaz (user query) ­ popis množiny dat, která se mají zobrazit.
Dotazy pro rozdělení výsledku (display queries) dotazu do množin, z nichž každá bude zobrazena jiným způsobem (různé barvy apod.). Vlastní popis jak zobrazit data (display description).
3 typy instrukcí se spojí do dvou jazyků ­ vlastního dotazovacího a presentačního.
Spatial SQL – práce s instrukcemi
Postup při použití instrukcí:
1. Uživatel nastaví parametry zobrazovacího prostředí (zobrazovací instrukce). 2. Uživatel pokládá dotazy (výsledky se zobrazují dle předchozího nastavení, zobrazovací prostředí se nemění).
3. Uživatel (případně) změní parametry zobrazovacího prostředí (ale zobrazovaný obsah se nezmění). Spatial SQL
Prezentační jazyk ­ udává, jak zobrazit výsledky dotazu (“Ukaž budovy z výsledku dotazu jako černé čtverečky.”) včetně možnosti použít výrazy podobné klasickým dotazům pro detailní popis. (“Ukaž budovy z výsledku dotazu a červené čtverečky jsou rezidence a modré čtverečky komerční budovy”).
Dotazovací jazyk může sloužit jako část prezentačního jazyka. Spatial SQL
Návrh Egenhofera z roku 1994 ponechává práci s příkazy ve formátu SELECT ­ FROM – WHERE stejně jako v klasickém SQL, výsledky dotazu jsou relace.
Spatial SQL neobsahuje funkcionalitu pro editování dat.
Spatial SQL
SQL je rozšířeno o prostorovou doménu.
Zajišťuje se tak vysoká úroveň abstrakce prostorových dat, realizace pomocí řady prostorových operací a predikátů.
Spatial atribut (prostorový atribut) ­ atribut z domény spatial (bez závislosti na dimenzi)
Spatial relation (prostorová relace) ­ relace s tímto atributem Spatial SQL ­ prostorové operace
­ Jsou definovány jako funkce na prostorových objektech.
Unární prostorové operátory přistupují k jedné prostorové položce prostorové relace – buď topologické nebo aritmetické.
Topologické unární operátory ­ určují  dimension ­ dimenze objektu (0 pro body, 1 pro přímky/úsečky atd.),
 boundary ­ hranice objektu,
 interior ­ celý objekt mimo svou hranici (doslovně "všechny části objektu, které nejsou v jeho hranici").
Spatial SQL – unární operátory
Topologické operátory mají specializované varianty pro jednotlivé dimenze.
Například ­ plocha má definovány operace boundingNodes a boundingEdges ­ pro určení ohraničujících bodů/úseček.
Pro 1D a 2D objekty jsou definovány boundary, boundingNodes, boundingEdges, interior, interiorNodes, interiorEdges, interiorAreas. Spatial SQL – unární operátory
Aritmetické operace ­ unární operátory, závisí na dimenzi objektu:
 lenght (délka) pro 1D objekty  area (plocha) pro 2D objekty  volume (objem) pro 3D objekty Spatial SQL – prostorové operace
Kombinací topologických a aritmetických vlastností lze získat složitější operátory : Například:  perimeter (obvod) pro mnohoúhelník (the sum of the lengths of the boundingEdges),
 extreme coordinates (extrémní souřadnice),  complement (doplněk).  convex hull (konvexní obal). Spatial SQL – prostorové operace
Binární prostorové operátory ­ počítají hodnotu ze 2 prostorových položek prostorové relace.
Například:
 distance (vzdálenost) ­ výsledkem je nezáporné reálné číslo,
 direction (směr) ­ úhel udávající azimut. Na výsledky těchto operací je možné použít standardní agregační funkce SQL (min, avg). Spatial SQL – prostorové operace
Prostorové operátory se zapisují v prefixové notaci ­ jako funkce.
Například:  distance(city.geometry, highway.geometry)
 Operátory se mohou vyskytnout v klauzulích SELECT nebo WHERE jako část neprostorového predikátu. Používají se v dotazech na stejných místech jako agregační funkce.
Spatial SQL – prostorové predikáty
Binární prostorové predikáty (binary spatial relationships) jsou relace (v matematickém smyslu) mezi dvěma prostorovými atributy.
Výsledkem je Boolean hodnota. Mohou být použity jako predikáty v klauzuli WHERE. Zapisují se infixově; jsou definovány přímo nad generalizovanou doménou spatial.
Spatial SQL – prostorové predikáty
Binární topologické predikáty jsou založeny na množině průniku hranic a vnitřku dvou objektů. Specifikace jsou nezávislé na dimenzi a predikáty mohou být použity na dva objekty libovolných dimenzí:

disjoint (disjunktnost objektu),

meet (sousednost),

overlap (překrývání),

inside/contains (obsahování),

covers/coveredBy (překrytí),

equal (totožné objekty).
Ukázky implementací
intersect ­ protíná
are within a distance of ­ je do určité vzdálenosti od
share a line segment with ­ sdílí část linie
contain/completely contain ­ obsahuje (částečně, úplně)
are contained by/are completely within ­ je obsaženo
(částečně, úplně)
are crossed by the outline of ­ je protnuto obrysem
touch the boundary of ­ dotýká se hranice
are identical to ­ je identické
have their centoid in ­ má centroid (těžiště) v
Výběr úseků železnice procházejícíc lesem. Použito z http://gis.zcu.cz/
Spatial SQL – prostorové predikáty
Začlenění predikátů do Spatial SQL bylo požadováno nutností zvýšit úroveň abstrakce.Uživatelé se obejdou bez větších matematických znalostí.
Je­li použito uspořádání, pak je možné používat predikáty:
 left/right,  north/south,
 over/under. Definice prostorových dat
Podobně jako v klasickém SQL.
Definice tabulky cit y s neprostorovým atributem n am e a prostorovým geometry, kde cit y chápeme jako 2D objekt.
CREATE TABLE cit y
( n am e
ch ar (2 0 )
geo m et r y s p at ial_2 );
Definice tabulky s prostorovými daty
Definice tabulky cit y s dvojím chápáním jeho dimenze. Polygon pro rozlišní 1:10,000 a jako bod ve středu pro 1:1,000,000.
CREATE TABLE cit y
( n am e
ch ar (2 0 )
geo m et r y
s p at ial_2
gen er aliz ed Geo m et r y s p at ia l_0 );
Predikát PICK ­ výběr ukázáním
Predikát PICK ­ možnost formulovat dotazy s referencí na prostorové objekty viditelné na obrazovce. Lze jím kvalifikovat každý prostorový atribut ve WHERE klauzuli. Sémantika výběru závisí na prostorové dimenzi cíle ­ při odkazování na objekty vykreslené v 2D plánu může být cílem 0 či 1­rozměrný objekt nejblíže ukázání a nebo 2D objekt, který místo ­ bod při ukázání obsahuje.
Predikát PICK ­ výběr ukázáním
Nejasnosti jsou řeseny dle toho, jaký typ objektu uživatel v dotazu používá. Jsou­li 2 objekty požadovaného typu od ukázání stejně daleko (řídký případ), je uživateli nabídnut seznam možností, ze kterého může zvolit. Predikát PICK ­ výběr ukázáním
Máme k dispozici mapu států s hranicemi a velkými městy (zde jako body). Uživatel se dotazuje kliknutím do stejného bodu.
SELECT n a m e
FROM cit y
WHERE geo m et r y = PICK;
jm én o m ě s t a
SELECT n a m e
FROM co u n t r y
WHERE geo m et r y = PICK;
jm én o s t át u
GPL (Graphical presentation language)
GPL je zalozeno na myšlence tzv. display environment. Je to oddělený presentační jazyk pro manipulaci s grafickou presentací výsledku dotazu. Klíčovým pojmem je zde zobrazovací prostředí (graphical environment), které obsahuje nastavení způsobu, jak zobrazovat položené dotazy. V průběhu zpracovávání dotazu jsou tyto informace spojeny s uživatelským dotazem, aby podle nich mohl být vyrenderován výsledek. GPL Pokud uživatel zobrazovací prostředí nezmění pomocí GPL instrukce, každý dotaz produkuje výsledek (mapu) zobrazený stejným stylem.
GPL je možno chápat jako nadmnožinu SQL.
SQL dotazy jsou používány pro specifikaci, k čemu se vlastní GPL instrukce vztahuje. GPL
GPL obsahuje instrukce:
 SET ­ k nastavení konkrétních parametrů zobrazení
 CANCEL ­ ke zrušení nastavení parametrů
 SHOW ­ ukáže aktuální hodnotu daného parametru SET, CANCEL – PERMANENT, IMMEDIATELY
GPL (Graphical presentation language)
GPL obsahuje modifikátory:
 PERMANENT ­ příslušné SET/CANCEL se uloží pro příští práci se systémem.
 IMMEDIATELY ­ podle změny se překreslí aktuální výsledek dotazu (jinak jsou parametry použity až pro další dotaz). GPL GPL obsahuje i parametry pro nastavení
 zobrazovacího módu (the display mode),
 grafické prezentace(the graphical presentation),
 měřítko (the scale of the drawing),
 výřez (the window to be shown),
 kontext (the spatial context),
 zjištění obsahu kresby (the examination of the content).
Spatial SQL ­ ukázka
Je dána geografická databáze ČR obsahující:
 města (tabulka mesta),  ulice (tabulka ulice),  pozemky (tabulka pozemky),  budovy (tabulka budovy),
 údaje o městské hromadné dopravě (tabulka mhd).
Prostorový atribut zmíněných tabulek je vždy p o lo h a . Spatial SQL ­ příklad
Zadání ­ zobrazit mapu Naší ulice v Ostravě, včetně všech pozemků, budov.  Obytné budovy červeně,  komerční budovy zeleně,  hranice pozemku černou čarou,
 ulice širší 6m zobrazit šrafovaně.
Spatial SQL ­ příklad
Nastavení černé barvy hranic pozemku. (GPL)
SET LEGEND
COLOR black
FOR SELECT boundary(poloha)
FROM pozemky;
Spatial SQL ­ příklad
Obytné budovy červeně, komerční budovy zeleně. (GPL)
SET LEGEND
COLOR red, green
FOR SELECT obytne.poloha, komercni.poloha
FROM obytne budovy, komercni budovy
WHERE komercni.typ="Komercni" and obytne.typ="Obytny";
Spatial SQL ­ příklad
Šrafování ulic širších než 6 m. (GPL)
SET LEGEND
PATTERN cross­hatched
FOR SELECT interior(poloha)
FROM ulice
WHERE sirka > 6;
Spatial SQL ­ příklad
Nastavení výřezu jako obal všech ulic v Ostravě. (GPL)
SET WINDOW
SELECT poloha
FROM ulice
WHERE mesta.jmeno="Ostrava";
Spatial SQL ­ příklad
Nastavení kontextu ulic ­ pro zobrazení přilehlých pozemků a budov pro každou dotazovanou ulici a jmen ulic. (GPL)
SET CONTEXT
FOR ulice.poloha
SELECT pozemky.poloha, budovy.poloha, ulice.jmeno
FROM ulice, pozemky, budovy;
Spatial SQL ­ příklad
Nastavení módu pro vykreslování nové mapy. SET MODE new;
Tím je ukončeno vše pro zobrazovací prostředí.
Budeme pokládat konkrétní dotaz na Naši ulici.
Spatial SQL ­ příklad
Vykresli ulici "Naši" v Ostravě. (Spatial SQL)
SELECT ulice.poloha
FROM ulice, mesta
WHERE mesta.jmeno="Ostrava" and ulice.jmeno="Naše" and
ulice.poloha INSIDE mesto.poloha;
Spatial SQL ­ příklad
Nastavíme mód pro zvýraznení výsledku následujícího dotazu. (GPL)
SET MODE highlight;
Spatial SQL ­ příklad
Zvýraznění budovy na adrese "Naše 15". (Spatial SQL)
SELECT budovy.poloha
FROM budovy
WHERE adresa="Naše 15";
 M. J. Egenhofer: Spatial SQL: A Query and Presentation Language. (IEEE Transactions on Knowledge and Data Engineering, 6(1):86­­95, 1994)
 Troch, J.: http://jt.sf.cz
 J. Pokorný: Prostorové objekty a SQL. GIS Ostrava, 2001

Podobné dokumenty

Základní pojmy - WordPress.com

Základní pojmy - WordPress.com a výsledků výpočtu ALU - Arithmetic-logic Unit (aritmetickologická jednotka): jednotka provádějící veškeré aritmetické výpočty a logické operace. Obsahuje sčítačky, násobičky (pro aritmetické výpoč...

Více

Úvod do funkcionálního programování

Úvod do funkcionálního programování chybu. V netypovaných jazycích, kde se na synaktické úrovni nedají rozlišit výrazy smysluplné od nesmyslných, by však třeba výraz not 7 byl legálním programem. Teprve jeho výpočet (tj. až v době bě...

Více

Topologické operace ve vybraných software a geodatabázích

Topologické operace ve vybraných software a geodatabázích Tento model reprezentuje data ve formě tabulek. První komerční produkty se objevily koncem 70. a začátkem 80. let. Klíčovým krokem ve vývoji byl SQL, standardní dotazovací jazyk v relačních databáz...

Více

Počítačová grafika - Základní umělecká škola Bzenec

Počítačová grafika - Základní umělecká škola Bzenec Ve vektorové grafice je obrázek složen ze základních geometrických útvarů, jako jsou body, přímky, křivky a mnohoúhelníky. Tím naše výuka navazuje na předcházející předmět. Jeho zvládnutí je předpo...

Více

Manuál verze 4.2.4

Manuál verze 4.2.4 Sekce “Web“ je určena pro správu obsahu a struktury webové prezentace. Umožňuje přidávání, mazání a přesouvání dokumentů, které dohromady tvoří obsah prezentace. V postranním menu se zobrazuje sezn...

Více

Rozšiřující učivo

Rozšiřující učivo uv domit, jaké jsou prvky množiny B' a jak dále vypadá ono sjednocení), avšak připravili p ipravili bychom se o názorný obrázek. Ješt Ještě důležitější jší pro nás tyto diagramy budou, pustíme pust...

Více

Návod pro cvičení Bilko

Návod pro cvičení Bilko Nejprve připravíme tabulku, do níž vložíme několik základních kategorií pokryvu, na nichž se budeme seznamovat s problematikou řízené klasifikace. Jinak řečeno, musíme si ujasnit, jaké typy území s...

Více