spatial database jakub michalko

49
Spatial database Jakub Michalko

Upload: bela

Post on 12-Jan-2016

63 views

Category:

Documents


0 download

DESCRIPTION

Spatial database Jakub Michalko. Agenda. Motivácia a popis priestorových databáz Dátový model priestorových databáz Operácie nad priestorovými dátami Príklady dotazov Organizácia dát. Motivácia. Sledovanie pohybu objektov Zobrazenie trasy, po ktorej som šiel. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Spatial database Jakub Michalko

Spatial databaseJakub Michalko

Page 2: Spatial database Jakub Michalko

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

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

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

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

6

Príklad SDBMS

Page 7: Spatial database Jakub Michalko

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
Page 9: Spatial database Jakub Michalko

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

10

GIS a SDBMS

Page 11: Spatial database Jakub Michalko

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

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
Page 14: Spatial database Jakub Michalko
Page 15: Spatial database Jakub Michalko

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

16

Dátový model podľa OGC

Page 17: Spatial database Jakub Michalko

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

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

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

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
Page 22: Spatial database Jakub Michalko

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

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

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

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
Page 27: Spatial database Jakub Michalko
Page 28: Spatial database Jakub Michalko

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Page 48: Spatial database Jakub Michalko

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

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