1 / 90

STQL ( SpatioTemporal Query Language )

STQL ( SpatioTemporal Query Language ). Erik Horničák Martin Krupár Matúš Roštár. Obsah. Motivácia História Datový model Príklady dotazov v STQL Vizuálne dotazovanie. STQL Motivácia. Motivácia. Medzi časovými a priestorovými javmi je mnoho vzťahov a spojitostí

huy
Download Presentation

STQL ( SpatioTemporal Query Language )

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. STQL (SpatioTemporal Query Language) • Erik Horničák • Martin Krupár • Matúš Roštár

  2. Obsah • Motivácia • História • Datový model • Príklady dotazov v STQL • Vizuálne dotazovanie

  3. STQL Motivácia

  4. Motivácia • Medzi časovými a priestorovými javmi je mnoho vzťahov a spojitostí • Je snaha vytvoriť časopriestorový dátový model a časopriestorovú databázu, ktorá by postihovala geometrie meniace sa v čase • Hlavným cieľom je stanoviť DBMS dátový model a dotazovací jazyk, ktorý bude schopný manipulácie s časovo závyslými geometriami

  5. Podmienky na čas • Zameriavame sa na geometrie meniace sa v čase spojite • Tieto geometrické objekty nazývame pohybujúcimi sa objektami (moving objects) • Zahrnujeme aj jednoduchší teda diskrétny časový model, kde časový vývoj je daný časovou konštantou

  6. Podmienky na implementáciu • Chceme definovať abstraktný dátový typ rozšíriteľný do DBMS dátového modelu a do dotazovacieho jazyka • Náš model by mal byť v princípe nezávislý na zvolenom DBMS datovom modele a mal by byť zabudovateľný do dotazovacieho jazyka

  7. Abstrakcie dát • Rozlišujeme dve hlavné dátové abstrakcie • Pohybujúce sa body (moving points) – abstrakcia dát, pre ktoré je požadovaná len poloha a nie hranice. Napríklad ľudia, autá, zvieratá .... • Vyvíjajúce sa regióny (evolving regions) – abstrakcia dát, pre ktoré sú okrem polohy dôležité aj prípadné hranice. Napríklad búrky, lesné požiare, katastrálne mapy ...

  8. Platnosť abstrakcie dát • Uvažujeme 3 dimenzionálny priestor, kde za 2 dimenzie berieme osy x a y pre vyjadrenie polohy, a treťou dimenziou je čas • Takto definovaný model je však platný aj vo viac dimenzionálnych priestoroch

  9. Čo je STQL? • STQL je rozšírením obľúbeného dotazovacieho jazyka SQL • STQL = Spatio-Temporal Query Language • STQL = časopriestorový dotazovací jazyk

  10. STQL ako rozšírenie SQL • Ďalej ukážeme ako to rozšírenie funguje • Rozšírenie je postavené na ADT, teda na abstraktnom dátovom type použitom pre integráciu komplexných objektov do databáze

  11. ADT 1. • ADT = Abstract Data Types • Vytvorenie modelu z abstrakcie reality

  12. ADT 2. • Množina dátových hodnôt a asociovaných operácií, ktorá je špecifikovaná nezávisle na akejkoľvek čiastkovej implementácii • Dátová štruktúra môže byť prístupná len s definovanými operáciami

  13. ADT 3. • Formálna definícia ADT: • Exportuje typ • Exportuje množinu operácií. Táto množina sa nazýva interface • Operácie interfaceu sú jediný mechanizmus prístupu k typom dátovej štruktúry • Axiómy a predpoklady definujú použitie domény typu

  14. STQL operácie • Nami požadované operácie sú • Temporal Lifting of spatial operations = časové vyzdvihovanie priestorových operácií • Projections into space and time = projekcie do priestoru a času • Selection = selekcia • Aggregation = zoskupovanie • Ktoré popisujú časové zmeny priestorových vzťahov medzi objektami

  15. STQL História

  16. Worboys model (1994) • Priestorový dátový model bol zovšeobecnený na časopriestorový • Časopriestorové objekty boli definované ako tzv. Spatio-bitemporal complexes, ktorých priestorové vlastnosti boli popísané jednoduchými celkami a časové vlastnosti boli dané bitemporálnymi prvkami pripojenými ku každému objektu • Tento model nevedel riešiť spojitý čas

  17. Grunbach model (1998) • Model založený na obmezeniach • S-T objekty považuje za množinu bodov v multidimenziálnom priestore • Objekty sú popísané pomocou logických formulí (obmedzení) • Dotazy sú tiež logické formule • Tento model je veľmi obecný, ťažko sa implementuje • Nedá sa manipulovať s objektami, ktoré potrebujú nelineárne obmedzenia

  18. Dátový model - Úvod

  19. Erwig – Náš model • Definícia časového objektu je založená na pozorovaní, že všetko čo sa mení v čase môže byť definované ako ako funkcia času • Časová verzia objektu typu α je daná funkciou f:čas -> α • Časopriestorové objekty ako pohybujuce sa body alebo vyvýjajúce sa regióny sú považované za špeciálne inštancie časových objektov kde α je priestorový dátový typ pre body alebo regióny

  20. Yeh a Cambray model • Behavorial time sequences • Každý element sekvencie obsahuje geometrickú hodnotu, čas a funckiu chovania sa • Funkcia chovania sa (behavorial function) popisuje ako sa bude ďalej element vyvýjať do ďaľšej sekvencie • Časové sekvencie môžu byť použité v našom modely pre reprezentáciu časových objektov

  21. Dve možné cesty • Diskusia v časovom datovom modelovaní • Tuple-timestamped • Attribute-timestamped

  22. Tuple-timestamped • Tuple = Vo všeobecnosti zoznam objektov, ktoré môžu mať rôzne typy • Rozširuje schéma vzťahov o jeden alebo viac temporálnych atribútov, ktoré sú použité na popísanie životnosti(lifespan) alebo platnosti obdobia celého zoznamu (tuple) • Vždy keď sa atribút tuplu zmení, tuple sa zduplikuje a zmení • Informácia o objekte sa teda rozdelí do viacerých vzťahov • Nevyhovuje pre spojitý čas

  23. Attribute-timestamped • Nepridávame ďalšie atribúty • Zbierame informácie o objekte a dovolujeme komplexné hodnoty atribútob • Tieto komplexné hodnoty atribútov vytvárajú časovú dimenziu • A modelujeme ich ako funkcie z času do domény hodnoty • Attribute-timestamped model vyhovuje našemu pohľadu

  24. ADT vs. Attribute-timestamped • Náš model zapúzdruje časové (-priestorové) objekty ako ADT objekty, ktoré možeme jednoducho integrovane ako komplexné hodnoty do databáze • ADT model je presnejší ako Attribute-timestamped • ADT hodnoty sú nezávislé na DBMS dátovom modely a dotazovacom jazyku, pretože niesú modelované ako návrh DBMS dátového modelu a nezávisia na ňom

  25. Rozšírenie SQL • V STQL používame známu SELECT-FROM-WHERE klauzulu • Pre komplexnejsie a štruktúrovanejšie dáta ako body, krivky alebo regióny musíme rozšíriť množinu predikátov • Napríklad pre dva regióny:disjoint, meet, overlap, coveredBy, covers, inside, contains a equal • Dotazovací jazyk s týmito predikátmi sa volá Spatial SQL

  26. Časopriestorové predikáty • ST predikáty špecifikujú správanie sa dvoch ST objektov počas časovej periódy • Zavádzame koncept ST predikátov ako funkcií mapujúcich ST objekty do booleanov • Naviac popisujeme obecne pouzitelnu cestu ku konstrukcii ST predikátov zo Spatial predikátov pomocou “LIFTING-u” a “TEMPORAL AGGREGATION”

  27. Časopriestorové predikáty • Medzi pohybujúcim sa bodom a vyvyjajúcim sa regiónom identifikujeme 28 ST predikátov • Medzi dvoma vyvýjajúcimi sa objektami je to 2198 predikátov

  28. Dátový model

  29. Dátový model • Relačná schéma je definovaná R je daná ako • R(A1:D1, ...., An:Dn ), kde Ai je atribút s doménov hodnôt Di • Pre reláciu r je r: R(A1:D1, ...., An:Dn ) platí • Doménov môžu byť štandartné typy ale aj komplexnejšie typy zapúzdrené v ADT

  30. Pohybujúce sa objekty 1. • Modelujeme ST dáta ako abstraktný dátový typ, ktorý môžeme použiť v relácii • Relácia má len funkciu kontajneru, ktorý drží dáta v tuploch • Čas predpokladáme spojitý: čas = R • Časovú verziu hodnoty typu α, ktorá samení v čase, môže byť modelovaná ako časová funkcia typu τ(α) = time -> α

  31. Pohybujúce sa objekty 2. • Časová funkcia je základ algebraického dátového modelu časopriestorového dátového typu • Priestorové dáta, ako bod a región, sú reprezentované α • Príklad: Bod meniaci polohu v čase je elementom typu τ(bod) Región, ktorý sa pohybuje/rastie/zmenšuje sa je elementom typu τ(región)

  32. Temporal Lifting 1. • Značenie: • Nečasové verzie dáta značíme s malým písmenom • Časové verzie dát značíme s veľkým písmenom • Príklad: • Priestorová operácia vzdialenosť vezme objkety typu bod a región a vypočíta hodnotu typu real • Lifted verzia Vzdialenosť = ↑ vzdialenosť mapuje elementy typu Region = τ(región) a Bod = τ(bod) do typu Real = τ(real) Vzdialenosť: τ(bod) x Region = τ(región) -> τ(real)

  33. Temporal Lifting 2. • V princípe môžeme zobrať akúkoľvek nečasovú operáciu a “Lift” (zdvihnúť) ju, tak že pracuje na časových objektoch a vracia časové objekty ako výsledok • Pre každú f:α1 x ... x αn→ β je odpovedajúca “Lifted” verzia ↑f:τ(α1 ) x ... x τ(αn ) →τ(β) kde ↑f(S1, ..., Sn):={(t, f(S1(t), ..., Sn(t)))| t  času }

  34. Časopriestorové predikáty 1. • Časopriestorové predikáty sú funkcie hromadiace (aggregation) hodnoty priestorových predikátov tak ako sa vyvýjajú v čase • Ale časopriestorové predikáty možu byť myslené aj ako “Lifted” priestorové predikáty. Vracajúce časový boolean, ktorý je vždy pravdivý alebo len niekedy. • Časopriestorové predikáty sú teda funkcie typu τ(α) x τ(β)→ B (boolean), kde α,β{bod, región}

  35. Časopriestorové predikáty 2. • Príklad: • Zobere si ↑vnútri a môžeme definovať dva časopriestorové predikáty niekedy_vnútri a vždy_vnútri, ktoré sú pravdivé v niektorých časoch respektíve vždy • Otázka je čo keď bod vo vnútri regiónu má kratšiu životnosť ako región • Očakávame že predikát vždy_vnútri by mal byť pravdivý ... ale nie je

  36. Časopriestorové predikáty 3. • Podľa predchádzajúceho príkladu musíme prispôsobiť kvantifikáciu “Pre všetky” • Je potrebné nájsť pre každý z 8 hlavných predikátov čo máme najvhodnejšií prípad v životnosti objektov | prvý | druhý | zjednotenie | prienik Disjoint, Meet,Overlap | x Equal | x Covers, Contains | x CoveredBy, Inside | x

  37. Časopriestorové predikáty 4. • Časopriestorové predikáty sú zákldnými kameňmi jazyka pre špecifikovanie zmeny časopriestorových objektov • Ale so základnými predikátmi nie sme schopný popísať zmeny v topologických vzťahoch časopriestorových objektov • Potrebujeme operácie, ktoré nám umožnia tvoriť komplexnejšie predikáty

  38. Operácia zloženia • Značíme ako ► • Napríklad: Disjoint ► Meet definuje časopriestorový predikát, ktorý je pravdivý len pre dva objekty, ktoré boli rozpojené po nejakú dobu a potom sa na najeku dobu stretli • Možeme spájať aj priestorové s časopriestorovými Disjoint ► meet ► Inside

  39. Rozdelenie predikátov • Niektoré predikáty sú definované len pre časovú periódu: disjoint, overlap, inside, containts • Ostatné možu byť definovnané aj časovej perióde a aj v časovom bode: equal, meet, covers, coveredBy

  40. Dotazy v STQL • Časopriestorové dátové typy a operácie v STQL • Význam • Popis • Syntax

  41. Návrh STQL • Nie celkom nový dotazovací jazyk -> zapúzdrenie do SQL • Výhody: • Jednoduchosť • SQL je dobre známy dotazovací jazyk • Možnosť používania ako štandartných SQL dotazov, tak aj priestorových, časových alebo časopriestorových dotazov

  42. Zavedenie STQL do SQL 1) priestorové dátové typy a operácie 2) časopriestorové operácie získané metódou „temporal lifting“ 3) časová selekcia 4) priestorová a časová projekcia 5) časopriestorová agregácia 6) základné časopriestorové predikáty 7) nástroje na vytváranie komplexnejších predikátov

  43. Model č. 1 flights(id:string, Route:Point) weather(kind:string, Extent:Region) Route – pohybujúcisa bod Extent – rozvíjajúci sa región

  44. Modely č.2 a 3 forest(forestname:string, Territory:Region) forest_fire(firename:string, Extent:Region) fire_fighter(fightername:string, Location:Point) ----------------------------------------- birds(swarm: string, Movement:Point)

  45. Časová selekcia (1) • Otázka: Kde sa nachádzalo lietadlo letu číslo 207 United Airlines o 8:00 ? • STQL dotaz: SELECT Route(8:00) FROM flights WHERE id = “UA207”

  46. Časová selekcia (2) • Otázka: Kde sa nachádzalo to isté lietadlo medzi 7:00 a 9:00 ? • STQL dotaz: SELECT Route(7:00..9:00) FROM flights WHERE id = “UA207”

  47. Priestorová projekcia • Otázka: Akou trasou letelo dané lietadlo medzi 7:00 a 9:00 ? • STQL dotaz: SELECT trajectory(Route(7:00..9:00)) FROM flights WHERE id = “UA207”

  48. Časová projekcia • Otázka: Ako dlho trval let 207 ? • STQL dotaz: SELECT duration(dom(Route)) FROM flights WHERE id = “UA207”

  49. Agregácia (1) • Chceme zistiť najväčšiu oblasť sneženia pre všetky časové okamžiky SELECT Area(max(Extent)) FROM weather WHERE kind = “snow”

  50. Definícia funkcie max

More Related