Spatial database Jakub Michalko
description
Transcript of Spatial database Jakub Michalko
![Page 1: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/1.jpg)
Spatial databaseJakub Michalko
![Page 2: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/2.jpg)
2
AgendaMotivácia a popis priestorových databázDátový model priestorových databázOperácie nad priestorovými dátamiPríklady dotazovOrganizácia dát
![Page 3: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/3.jpg)
3
MotiváciaSledovanie pohybu objektov
Zobrazenie trasy, po ktorej som šiel. Zobrazenie oblastí v mapách
Oblasti, ktoré boli zatopenéHľadanie najbližšieho objektu
Nájdi najbližšiu čerpaciu stanicu na mojej traseHľadanie podobností
Na základe snímku pacientovej rezonancie nájdi v DB podobného pacienta.
![Page 4: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/4.jpg)
4
Spatial vs. Non-spatial data„Nepriestorové“ dáta / dotazy
Meno, telefónne číslo, adresa, rozmer, email Vypíš kiná, ktoré premietajú každý deň
Príklad priestorových dát / dotazov
Snímky zo satelitu (TB dát za deň),snímky počasia, rieky, polia, mestá
Lekárske snímky 3D model proteinu Vypíš kiná v okolí piatich kilometrov
![Page 5: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/5.jpg)
5
Čo je SDBMS?SDBMS (Spatial Database Management System) je softvérový modul, ktorý
Pracuje zo základným DBMS Podporuje priestorové dátové modely, priestorové dátové
typy (SDT - spatial data types) a dotazovací jazyk, ktorý s nimi pracuje
Podporuje indexovanie priestorových dát, efektívne algoritmy pre operácie nad priestor. dátami a pravidlá pre optimalizáciu dotazov
![Page 6: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/6.jpg)
6
Príklad SDBMS
![Page 7: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/7.jpg)
7
GISGIS (Geographical Information System) je softvér pre zobrazovanie a analýzu priestorových dát pomocou priestorových analytických funkcií, ako napríklad:
Search – vyhľadávanie podľa podobností, alebo oblastí Location analysis – vrstvy, plochy oddelené cestami Terrain analysis – Svah, povodie, odvodňovacie siete Flow analysis – spojenie, najkratšia cesta Distribution – šírenie zmien, vzdialenosť, najbližší sused Statistics - centralita, autokorelácia, indikácia podobnosti,
topológia Measurement – vzdialenosť, obvod, tvar, susednosti, smer
![Page 8: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/8.jpg)
![Page 9: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/9.jpg)
9
Existujúce implementácieHlavné existujúce implementácie SDBMS
PostGIS – PostgreSQL SQL Server 2008 - Microsoft Spatial Oracle – Oracle MySQL 5+ - Oracle(pôvodne SUN), neodporúča sa pre
veľmi málo funkcií
![Page 10: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/10.jpg)
10
GIS a SDBMS
![Page 11: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/11.jpg)
11
AgendaMotivácia a popis priestorových databázDátový model priestorových databázOperácie nad priestorovými dátamiPríklady dotazovOrganizácia dát
![Page 12: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/12.jpg)
12
Dátový model priestorových objektov
Existujú dva pohľady na to, ako reprezentovať priestor:
Objekty v priestore
Mesto, cesty, križovatky...
Priestor samotný
Akým spôsobom ho reprezentovať tak, aby sme o každom jeho bode vedeli niečo povedať (bitmapa)
![Page 13: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/13.jpg)
![Page 14: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/14.jpg)
![Page 15: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/15.jpg)
15
Dátový model priestorových objektov
Ďalšie dátové typy:Surface – povrch.
Odvodený dátový typ. Je to plocha s priradenými
hodnotami v každom bode
Volume – objem.
3D objekt moc nepoužíva kvôli
náročnosti na výpočetný výkon
![Page 16: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/16.jpg)
16
Dátový model podľa OGC
![Page 17: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/17.jpg)
17
OGCKonzorcium OGC (Open Geospatial Consortium)
Medzinárodná štandardizačná organizácia Vzniku OGC predchádzal projekt OpenGIS (1994), ktorý
mal za úlohu vytvoriť vytvoriť jednotné rozhranie OGIS (Open Geodata Interoperability Specification)
Vznikla za účelom spolupráce na vývoji a implementácii štandardov
tvorené prevažne zástupcami z komerčnej sféry
http://www.opengeospatial.org/
![Page 18: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/18.jpg)
18
Dátový model priestorových objektov
Pre dotazy je dôležité, aby model dokázal popísať, aká je:Topológia – ktoré objekty sú susediace, ktoré objekty sa prekrývajú
Sieť – popis ciest, hľadanie najkratšej cestyOrientácia – akým smerom je daný objekt (cesta) orientovaný
Vzdialenosť – vychádzame z Euklidového priestoru
![Page 19: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/19.jpg)
19
AgendaMotivácia a popis priestorových databázDátový model priestorových databázOperácie nad priestorovými dátamiPríklady dotazovOrganizácia dát
![Page 20: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/20.jpg)
20
Operácie nad priestorovými dátamiZákladné funkcie, pracujúce nad všetkými priestorovými objektami
SpatialReference() - vráti základný súradnicový systém geometrie
Export() - vráti geometriu v inej reprezentácii IsEmpty() - vráti TRUE ak objekt je prázdny (= NULL) IsSimple() - vráti TRUE ak je jednoduchý (sám so sebou nemá presečník)
TRUE FALSE
![Page 21: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/21.jpg)
![Page 22: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/22.jpg)
22
Operácie nad priestorovými dátamiTopologické funkcie / množinové operátoryEqual – vráti TRUE ak sú obe geometrie zhodnéDisjoint – vráti TRUE ak sa hranice a vnútro geometrie nepretínajú
Intersect – vráti TRUE ak sa hranice a vnútro geometrie pretínajú
Touch – vráti TRUE, ak sa pretínajú len hranice, ale nie vnútro
Intersect: TRUE FALSEFALSE
Touch: FALSE TRUEFALSE
Disjoin: FALSE FALSETRUE
![Page 23: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/23.jpg)
23
Operácie nad priestorovými dátamiTopologické funkcie / množinové operátoryCross – vráti TRUE ak výsledkom prieniku geometrií je množina bodov
Within – vráti TRUE ak je celá geomatria vnútri inej a nepretína ju
![Page 24: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/24.jpg)
24
Operácie nad priestorovými dátamiTopologické funkcie / množinové operátoryCointains – vráti TRUE, ak geometria obsahuje inú geometriu
Ovelaps – ak prienik je neprázdny, ale jedna geometria neobsahuje druhú
![Page 25: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/25.jpg)
25
Operácie nad priestorovými dátamiAnalytické funkcieDistance – vráti najkratšiu vzdialenosť medzi geometriami
Buffer – vráti geometriu, ktorej body majú vzdialenosť od vstupnej geometrie menšiu alebo rovnú vstupnej hodnote
![Page 26: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/26.jpg)
![Page 27: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/27.jpg)
![Page 28: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/28.jpg)
28
Zhrnutie - obmedzeniaŠpecifikácia OGIS je obmedzená v popisovaní priestorových dát
Priestorová informácia je často uvádzaná v terénnom (2D/2,5D) modely (na ktoré sa zameriava)
Obmedzené operácie v SQL – len SELECT-PROJECT-JOIN
GROUP BY a HAVING predstavuje problém
![Page 29: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/29.jpg)
29
AgendaMotivácia a popis priestorových databázDátový model priestorových databázOperácie nad priestorovými dátamiPríklady dotazovOrganizácia dát
![Page 30: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/30.jpg)
30
Dotazy-príklady
CREATE TABLE Country(Name
varchar(30), Cont
varchar(30),Pop
integer,GDP
Number,Shape
Polygon);
CREATE TABLE River(Name varchar(30),Origin varchar(30),Length Number,ShapeLineString);
CREATE TABLE City(Name
varchar(30),Country
varchar(30),Pop
integer,IsCapital boolean,Shape Point);
![Page 31: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/31.jpg)
31
Dotazy-príkladyNájdi mená všetkých štátov, ktoré susedia s USA v tabuľke Country.
SELECT C1.Name as neighbourFROM Country C1, Country C2WHERE Touch(C1.Shape,C2.Shape)=TRUE
AND C2.Name='USA'
![Page 32: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/32.jpg)
32
Dotazy-príklady
SELECT C1.Name, R1.NameFROM City C1, River R1WHERE Distance(C1.Shape,R1.Shape) <=
(SELECT min(Distance(C2.Shape,R2.Shape))
FROM City C2, River R2)
Ktoré mesto v tabuľke City je najbližšie ku akejkoľvek rieke?
![Page 33: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/33.jpg)
33
Dotazy-príkladyNájdi všetky mestá do vzdialenosti 300 Km od rieky Mississippi.
SELECT C.NameFROM City C, River RWHEREOverlaps(C.Shape,Buffer(R.shape,300))=TRUE
AND R.Name='Mississippi'
![Page 34: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/34.jpg)
34
Dotazy-príklady
SELECT C.Name, C.pop, Area(C.Shape) as „Area“FROM Country C
Vráť mená, populáciu a veľkosť plochy všetkých krajín.
Pre výpočet veľkosti plochy sa používa funkcia Area, ktorá ma vstupný parameter Polygon a vracia číslo – obsah polygónu.
Area môže brať pri výpočte plochy do úvahy či mapa je „nakreslená“ na guľu
![Page 35: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/35.jpg)
35
Dotazy-príklady
SELECT R.Name,C.name,Length(Intersection(R.Shape,C.Shape))FROM River R, Country CWHERECross(R.Shape,C.Shape)=TRUE
Pre každú rieku a každú krajinu vráť dĺžku rieky v danej krajine, ktorou prechádza.
Podobne ako Area sa v tomto prípade použije funkcia Length, ktorá vráti dĺžku krivky
![Page 36: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/36.jpg)
36
Dotazy-príklady
SELECT Co.GDP, Distance(Point(0,Ci.y),Ci.Shape) as
„Distance“FROM Country Co, City CiWHERE Co.Name=Ci.Country AND Ci.IsCapital=TRUE
Vráť HDP krajín(GDP) a vzdialenosť ich hlavných miest od rovníka.
![Page 37: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/37.jpg)
37
Dotazy-príklady
SELECT Co.NameFROM Coungtry Co, Country Co1WHERE Touch(Co.Shape,Co1.Shape)=TRUEGROUP BY Co.NameHAVING Count(Co1.Name)=1
Vráť mená krajín, ktoré majú len jedného suseda. Krajiny sa pokladajú za susedné, ak majú spoločnú hranicu na zemi (Island napríklad nemá suseda).
![Page 38: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/38.jpg)
38
AgendaMotivácia a popis priestorových databázDátový model priestorových databázOperácie nad priestorovými dátamiPríklady dotazovOrganizácia dát
![Page 39: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/39.jpg)
39
Spracovanie dotazu - ÚvodDotaz možno rozdeliť na dva typy:
Single-scan – jednoduchý dotaz, kde ku každému záznamu v tabuľke sa pristupuje najviac jeden krát
Multi-scan – (dotaz cez viac tabuliek) kde k záznamom sa môže pristupovať viac krát, v najhoršom prípad za každým, keď kontrolujeme podmienku, ktorú má spĺňať. Typicky JOIN.
Problém
JOIN musí existovať aj pre priestorové dáta Ako by mal JOIN pracovať, aby bol efektívny
![Page 40: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/40.jpg)
40
Spracovanie dotazuStratégia (výber objektov z dotazovanej oblasti):
Vyber obdĺžniky, ktoré obsahujú objekty, z daného regiónu Prefiltruj ich, či skutočne sú v danom regióne
![Page 41: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/41.jpg)
41
Organizácia dát v SDBMSRekapitulácia:
GIS – pracuje s hlavnou pamäťou SDBMS – pracuje so sekundárnou pamäťou
Problémy SDBMS:
Väčšinou veľký objem dát v SDBMS Rýchly prístup k záznamom Rýchle prevádzanie operácií HW obmedzenia (CPU, veľkosť primárnej pamäte) Dáta sú viacrozmerné
![Page 42: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/42.jpg)
42
Organizácia dát v SDBMSDva spôsoby, ktorými sa rieši organizácia dát na disku
Pomocou plochu-vyplňujúcich kriviek – celý priestor je rozdelený do rovnako veľkých oblastí (2D/3D mapa)
Indexáciou – rôzne typy R-stromov
![Page 43: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/43.jpg)
43
Krivky vyplňujúce plochuProblémy:
Usporiadanie na priestorových dátach nie je prirodzene dané
Veľa efektívnych vyhľadávaní je založené práve na usporiadaných dátach
Krivky vyplňujúce plochu
Zavádzajú usporiadanie oblastí vo viacrozmernom priestore
Umožňujú použitie zaužívaných efektívnych vyhľadávaní (vo viac-rozmernom priestore)
Najbežnejšie sú Hilbertova a Mortonova Z-krivka
![Page 44: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/44.jpg)
44
Z-krivkaMortonov rozklad, alebo tiež Z-krivka (podľa tvaru rozkladu). Popísaná v roku 1966 zamestnancom IBM.
Poradie, akým jednotlivé plochy usporiadava:
1 2
3 4
1 2 5 6
3 4 7 8
9 10 13 14
11 12 15 16Poradie pre plochu 2x2 Poradie pre plochu 4x4
![Page 45: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/45.jpg)
45
Hilbertova krivkaHilbertova krivka sa používa ako alternatíva k Z-krivke, lebo lepšie popisuje susedné plochy
Poradie, akým jednotlivé plochy usporiadava:
2D 3D
1 4
2 3
1 2 15 16
4 3 14 13
5 8 9 12
6 7 10 11Poradie pre plochu 2x2 Poradie pre plochu 4x4
![Page 46: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/46.jpg)
46
Indexácia pomocou R-stromov Hlavná myšlienka:
Použiť hierarchickú kolekciu obdĺžnikov pre organizáciu priestorových dát
Zovšeobecniť B-strom pre priestorové dátaKritériá rozdelenia členov rodiny R-stromov
Obsluha veľkých priestorových objektov Možnosť prekývania sa obdĺžnikov Duplikácia objektov, ale obdĺžniky musia byť disjunknté
Výber obdĺžnikov pre vnútorne uzly Hladujúci algoritmus: R-strom, R+strom Algoritmus pre minimálne prekrývanie sa: packed R-tree
![Page 47: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/47.jpg)
![Page 48: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/48.jpg)
48
R+stromVlastnosti
Vyváženosť Vnútorné uzly sú obdĺžniky
Detské obdĺžniky sú vnútri rodičovských
Obdĺžnky sú disjunktné Listy sa prekrývajú s rodičovskými
obdĺžnikmi (môžu trčať mimo) Objekt sa môže vyskytovať vo
viacerých uzloch Vyhľadávanie rovnaké ako v R-
strome
![Page 49: Spatial database Jakub Michalko](https://reader035.fdocuments.net/reader035/viewer/2022081418/56814588550346895db26d15/html5/thumbnails/49.jpg)
49
Literatúra
Spatial databases - A tour, Shashi Shekar, Sanjay Chawla
Spatial databases Tips and Tricks, OpenGeo, http://workshops.opengeo.org/postgis-spatialdbtips
Spatial databases – Technologies, Techniques and Trends, Yannis Manolopuolos, Apostols N. Papadopulos & Michael Gr. Vassilakopoulos
PostGIS - http://postgis.refractions.net/docs