900 likes | 1.02k Views
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í
E N D
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
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
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
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
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 ...
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
Čo je STQL? • STQL je rozšírením obľúbeného dotazovacieho jazyka SQL • STQL = Spatio-Temporal Query Language • STQL = časopriestorový dotazovací jazyk
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
ADT 1. • ADT = Abstract Data Types • Vytvorenie modelu z abstrakcie reality
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
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
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
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
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
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
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
Dve možné cesty • Diskusia v časovom datovom modelovaní • Tuple-timestamped • Attribute-timestamped
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
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
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
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
Č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”
Č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
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
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 -> α
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)
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)
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 }
Č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}
Č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
Č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
Č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
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
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
Dotazy v STQL • Časopriestorové dátové typy a operácie v STQL • Význam • Popis • Syntax
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
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
Model č. 1 flights(id:string, Route:Point) weather(kind:string, Extent:Region) Route – pohybujúcisa bod Extent – rozvíjajúci sa región
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)
Č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”
Č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”
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”
Časová projekcia • Otázka: Ako dlho trval let 207 ? • STQL dotaz: SELECT duration(dom(Route)) FROM flights WHERE id = “UA207”
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”