1 / 49

Spatial database Jakub Michalko

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.

bela
Download Presentation

Spatial database Jakub Michalko

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spatial database Jakub Michalko

  2. 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

  3. Motivácia • Sledovanie 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 trase • Hľadanie podobností • Na základe snímku pacientovej rezonancie nájdi v DB podobného pacienta.

  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

  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

  6. Príklad SDBMS

  7. GIS • GIS (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

  8. Existujúce implementácie • Hlavné 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í

  9. GIS a SDBMS

  10. 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

  11. 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)

  12. 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

  13. Dátový model podľa OGC

  14. OGC • Konzorcium 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/

  15. 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 cesty • Orientácia – akým smerom je daný objekt (cesta) orientovaný • Vzdialenosť – vychádzame z Euklidového priestoru

  16. 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

  17. Operácie nad priestorovými dátami Zá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

  18. Operácie nad priestorovými dátami Topologické funkcie / množinové operátory • Equal – 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 FALSE FALSE Touch: FALSE TRUE FALSE Disjoin: FALSE FALSE TRUE

  19. Operácie nad priestorovými dátami Topologické funkcie / množinové operátory • Cross – 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

  20. Operácie nad priestorovými dátami Topologické funkcie / množinové operátory • Cointains – vráti TRUE, ak geometria obsahuje inú geometriu • Ovelaps – ak prienik je neprázdny, ale jedna geometria neobsahuje druhú

  21. Operácie nad priestorovými dátami Analytické funkcie • Distance – vráti najkratšiu vzdialenosť medzi geometriami • Buffer – vráti geometriu, ktorej body majú vzdialenosť od vstupnej geometrie menšiu alebo rovnú vstupnej hodnote

  22. 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

  23. 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

  24. 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, Shape LineString); CREATE TABLE City( Name varchar(30), Country varchar(30), Pop integer, IsCapital boolean, Shape Point);

  25. Dotazy-príklady • Nájdi mená všetkých štátov, ktoré susedia s USA v tabuľke Country. SELECT C1.Name as neighbour FROM Country C1, Country C2 WHERE Touch(C1.Shape,C2.Shape)=TRUE AND C2.Name='USA'

  26. Dotazy-príklady • Ktoré mesto v tabuľke City je najbližšie ku akejkoľvek rieke? SELECT C1.Name, R1.Name FROM City C1, River R1 WHERE Distance(C1.Shape,R1.Shape) <= (SELECT min(Distance(C2.Shape,R2.Shape)) FROM City C2, River R2 )

  27. Dotazy-príklady • Nájdi všetky mestá do vzdialenosti 300 Km od rieky Mississippi. SELECT C.Name FROM City C, River R WHERE Overlaps(C.Shape,Buffer(R.shape,300))=TRUE AND R.Name='Mississippi'

  28. Dotazy-príklady • 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 SELECT C.Name, C.pop, Area(C.Shape) as „Area“ FROM Country C

  29. Dotazy-príklady • 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 SELECT R.Name,C.name,Length(Intersection(R.Shape,C.Shape)) FROM River R, Country C WHERE Cross(R.Shape,C.Shape)=TRUE

  30. Dotazy-príklady • Vráť HDP krajín(GDP) a vzdialenosť ich hlavných miest od rovníka. SELECT Co.GDP, Distance(Point(0,Ci.y),Ci.Shape) as „Distance“ FROM Country Co, City Ci WHERE Co.Name=Ci.Country AND Ci.IsCapital=TRUE

  31. Dotazy-príklady • 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). SELECT Co.Name FROM Coungtry Co, Country Co1 WHERE Touch(Co.Shape,Co1.Shape)=TRUE GROUP BY Co.Name HAVING Count(Co1.Name)=1

  32. 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

  33. Spracovanie dotazu - Úvod • Dotaz 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

  34. Spracovanie dotazu • Straté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

  35. Organizácia dát v SDBMS • Rekapitulá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é

  36. Organizácia dát v SDBMS • Dva 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

  37. Krivky vyplňujúce plochu • Problé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

  38. Z-krivka • Mortonov rozklad, alebo tiež Z-krivka (podľa tvaru rozkladu). Popísaná v roku 1966 zamestnancom IBM. • Poradie, akým jednotlivé plochy usporiadava: Poradie pre plochu 2x2 Poradie pre plochu 4x4

  39. Hilbertova krivka • Hilbertova krivka sa používa ako alternatíva k Z-krivke, lebo lepšie popisuje susedné plochy • Poradie, akým jednotlivé plochy usporiadava: Poradie pre plochu 2x2 Poradie pre plochu 4x4 2D 3D

  40. 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áta • Krité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

  41. R+strom • Vlastnosti • 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

  42. 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

More Related