stql ( spatiotemporal query language )

90
STQL (SpatioTemporal Query Language) Erik Horničák Martin Krupár Matúš Roštár

Upload: huy

Post on 02-Feb-2016

54 views

Category:

Documents


0 download

DESCRIPTION

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í - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: STQL  ( SpatioTemporal Query Language )

STQL (SpatioTemporal Query Language)

Erik Horničák

Martin Krupár

Matúš Roštár

Page 2: STQL  ( SpatioTemporal Query Language )

Obsah

● Motivácia

● História

● Datový model

● Príklady dotazov v STQL

● Vizuálne dotazovanie

Page 3: STQL  ( SpatioTemporal Query Language )

STQL Motivácia

Page 4: STQL  ( SpatioTemporal Query Language )

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

Page 5: STQL  ( SpatioTemporal Query Language )

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

Page 6: STQL  ( SpatioTemporal Query Language )

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

Page 7: STQL  ( SpatioTemporal Query Language )

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

Page 8: STQL  ( SpatioTemporal Query Language )

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

Page 9: STQL  ( SpatioTemporal Query Language )

Čo je STQL?

● STQL je rozšírením obľúbeného dotazovacieho jazyka SQL

● STQL = Spatio-Temporal Query Language

● STQL = časopriestorový dotazovací jazyk

Page 10: STQL  ( SpatioTemporal Query Language )

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

Page 11: STQL  ( SpatioTemporal Query Language )

ADT 1.

● ADT = Abstract Data Types● Vytvorenie modelu z abstrakcie reality

Page 12: STQL  ( SpatioTemporal Query Language )

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

Page 13: STQL  ( SpatioTemporal Query Language )

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

Page 14: STQL  ( SpatioTemporal Query Language )

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

Page 15: STQL  ( SpatioTemporal Query Language )

STQL História

Page 16: STQL  ( SpatioTemporal Query Language )

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

Page 17: STQL  ( SpatioTemporal Query Language )

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

Page 18: STQL  ( SpatioTemporal Query Language )

Dátový model - Úvod

Page 19: STQL  ( SpatioTemporal Query Language )

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

Page 20: STQL  ( SpatioTemporal Query Language )

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

Page 21: STQL  ( SpatioTemporal Query Language )

Dve možné cesty

● Diskusia v časovom datovom modelovaní

➔ Tuple-timestamped➔ Attribute-timestamped

Page 22: STQL  ( SpatioTemporal Query Language )

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

Page 23: STQL  ( SpatioTemporal Query Language )

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

Page 24: STQL  ( SpatioTemporal Query Language )

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

Page 25: STQL  ( SpatioTemporal Query Language )

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

Page 26: STQL  ( SpatioTemporal Query Language )

Č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”

Page 27: STQL  ( SpatioTemporal Query Language )

Č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

Page 28: STQL  ( SpatioTemporal Query Language )

Dátový model

Page 29: STQL  ( SpatioTemporal Query Language )

Dátový model

● Relačná schéma je definovaná R je daná ako

● R(A1:D

1, ...., A

n:D

n ),

kde Ai je atribút s doménov hodnôt D

i

● Pre reláciu r je r: R(A1:D

1, ...., A

n:D

n ) platí

● Doménov môžu byť štandartné typy ale aj komplexnejšie typy zapúzdrené v ADT

r⊆D1× ...×D n

Page 30: STQL  ( SpatioTemporal Query Language )

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 -> α

Page 31: STQL  ( SpatioTemporal Query Language )

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)

Page 32: STQL  ( SpatioTemporal Query Language )

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)

Page 33: STQL  ( SpatioTemporal Query Language )

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, ..., S

n):={(t, f(S

1(t), ..., S

n(t)))| t

času }

Page 34: STQL  ( SpatioTemporal Query Language )

Č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}

Page 35: STQL  ( SpatioTemporal Query Language )

Č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

Page 36: STQL  ( SpatioTemporal Query Language )

Č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

Page 37: STQL  ( SpatioTemporal Query Language )

Č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

Page 38: STQL  ( SpatioTemporal Query Language )

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

Page 39: STQL  ( SpatioTemporal Query Language )

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

Page 40: STQL  ( SpatioTemporal Query Language )

Dotazy v STQL

● Časopriestorové dátové typy a operácie v STQL– Význam– Popis– Syntax

Page 41: STQL  ( SpatioTemporal Query Language )

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

Page 42: STQL  ( SpatioTemporal Query Language )

Zavedenie STQL do SQL

1) priestorové dátové typy a operácie2) časopriestorové operácie získané metódou

„temporal lifting“3) časová selekcia4) priestorová a časová projekcia5) časopriestorová agregácia6) základné časopriestorové predikáty7) nástroje na vytváranie komplexnejších

predikátov

Page 43: STQL  ( SpatioTemporal Query Language )

Model č. 1

flights(id:string, Route:Point)weather(kind:string, Extent:Region)

Route – pohybujúci sa bodExtent – rozvíjajúci sa región

Page 44: STQL  ( SpatioTemporal Query Language )

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)

Page 45: STQL  ( SpatioTemporal Query Language )

Č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 flightsWHERE id = “UA207”

Page 46: STQL  ( SpatioTemporal Query Language )

Č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 flightsWHERE id = “UA207”

Page 47: STQL  ( SpatioTemporal Query Language )

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 flightsWHERE id = “UA207”

Page 48: STQL  ( SpatioTemporal Query Language )

Časová projekcia

● Otázka: Ako dlho trval let 207 ?● STQL dotaz:

SELECT duration(dom(Route))FROM flightsWHERE id = “UA207”

Page 49: STQL  ( SpatioTemporal Query Language )

Agregácia (1)

● Chceme zistiť najväčšiu oblasť sneženia pre všetky časové okamžiky

SELECT Area(max(Extent))FROM weatherWHERE kind = “snow”

Page 50: STQL  ( SpatioTemporal Query Language )

Definícia funkcie max

inak

)area()area(ak ),(max

))}(),((max|),{(:)(max

2

2 1 121

212,1

r

rrrrr

tRtRrtimetrtRR

geo

geost

Page 51: STQL  ( SpatioTemporal Query Language )

Agregácia (2)

● alternatívna verzia toho istého dotazu:

SELECT max(Area(Extent))FROM weatherWHERE kind = “snow”

Page 52: STQL  ( SpatioTemporal Query Language )

Operácie získané metódou „temporal lifting“ (1)

● temporal lifting umožňuje z každej priestorovej operácie spraviť časopriestorovú

● príklad: celková plocha lesov zničených ohňom menom „The Big Fire“SELECT sum(size) FROM

(SELECT size AS area(trajectory(Intersection(Territory,

Extent)))FROM forest_fire, forestWHERE firename = “The Big Fire” AND

ever(Intersects(Territory, Extent)))

Page 53: STQL  ( SpatioTemporal Query Language )

Temporal lifting (2)

● Chceme zistiť časy požiarov väčších ako 500km2 a zároveň ich umiestnenie v tieto momenty.

SELECT Extent(dom(at(Area(Extent)>500,

true)))FROM forest_fireWHERE not(isempty(dom(at(Area(Extent)>500, true))))

Page 54: STQL  ( SpatioTemporal Query Language )

Temporal lifting (3)

● Otázka: Ako dlho bol požiarnik Fero Taraba obklopený ohňom „The Big Fire“ a akú vzdialenosť za týchto podmienok prekonal ?SELECT duration(dom(

Intersection(Location,TheBigFire)))length(trajectory(Intersection(Location,TheBigFire)))

FROM fire_fighterWHERE fightername = “Fero Taraba”

Page 55: STQL  ( SpatioTemporal Query Language )

Temporal lifting (4) - konštanty

● chceli by sme sa dozvedieť, kedy sa lietadlo letu UA207 nachádzalo nad Eiffelovou vežou

● STQL dotaz:

SELECT dom(Intersection(Route, ^EiffelTower))

FROM flightsWHERE id = “UA207”

Page 56: STQL  ( SpatioTemporal Query Language )

Časopriestorové predikáty – motivácia (1)

● Úloha: Zistite čas, kedy lietadlo letu UA207 vletelo do hurikánu.

● nemožné riešiť napr. v TempSQL (založený na atribútoch s časovými razítkami)

● môžeme riešiť v STQL takto:SELECT min(dom(Intersection(Route,Extent)))

FROM flights

WHERE id = “UA207” AND kind = “hurricane”

Page 57: STQL  ( SpatioTemporal Query Language )

Časopriestorové predikáty – motivácia (2)

● Trochu všeobecnejšia úloha: Zistite všetky časy, kedy nejaké lietadlo vletelo do nejakého hurikánu.

● Túto úlohu môžeme riešiť pridaním podmienok do where sekcie predchádzajúceho dotazu (kvôli null hodnotám), jednoduchšie to však je pomocou predikátov

Page 58: STQL  ( SpatioTemporal Query Language )

Časopriestorové predikáty – motivácia (3)

● Otázka: Ktoré lietadlá vošli do hurikánu ?● tzn. lietadlo a hurikán najprv nemali spoločný

žiadny bod, potom sa dotýkali a nakoniec lietadlo bolo vo vnútri hurikánu (v tomto poradí)

● Riešenie pomocou predikátu insideSELECT id FROM flights, weatherWHERE kind = “hurricane” AND not(Route(min(dom(Route))) inside

Extent(min(dom(Route)))) AND Route(max(dom(Route))) inside Extent(max(dom(Route)))

Page 59: STQL  ( SpatioTemporal Query Language )

Časopriestorové predikáty – motivácia (4)

● Nedostatky predchádzajúceho riešenia:– je pomerne zložité – pracné počítanie konkrétneho

bodu a regiónu v počiatočnom aj koncovom čase– nepresnosť - na začiatku musí byť lietadlo mimo

hurikánu a na konci vo vnútri– nie je možné určiť, či lietadlo priamo vošlo do

hurikánu, alebo sa ešte pohybovalo po jeho hranici

Page 60: STQL  ( SpatioTemporal Query Language )

Časopriestorové predikáty (1)

● Časopriestorové predikáty integrujeme do SQL pomocou:– 8 základných predikátov:

● disjoint, meet, overlap, coveredBy, covers, inside, contains a equal

– nástrojov na vyvíjanie komplexnejších predikátov z jednoduchších

Page 61: STQL  ( SpatioTemporal Query Language )

Časopriestorové predikáty (2)

● Predchádzajúci príklad môžeme vyriešiť pomocou operátoru časovej kompozície (>>):

SELECT id FROM flights, weatherWHERE kind = “hurricane” AND Route Disjoint>>meet>>Inside Extent

Page 62: STQL  ( SpatioTemporal Query Language )

Definovanie vlastných predikátov (1)

● v STQL je možné definovať aj vlastné predikáty:

p-def -> DEFINE p-name AS p-expr p-expr -> p-basic | p-name | p-expr >> p-expr | p-expr | p-expr | rev(p-expr)

Page 63: STQL  ( SpatioTemporal Query Language )

Definovanie vlastných predikátov (2)

● Môžeme si napríklad definovať predikát Enters:DEFINE Enters AS Disjoint>>meet>>Inside

● Predchádzajúci dotaz by sme potom mohli prepísať nasledovne:

SELECT id FROM flights, weatherWHERE kind = “hurricane” ANDRoute Enters Extent

Page 64: STQL  ( SpatioTemporal Query Language )

Definovanie vlastných predikátov (3)

● Ďalšie príklady vlastných predikátov:

DEFINE Leaves AS rev(Enters)DEFINE Crosses AS Enters>>LeavesDEFINE Bypasses AS Disjoint>>Meet>>Disjoint

Page 65: STQL  ( SpatioTemporal Query Language )

Ekvivalentná definícia

● Predikát Crosses by sme mohli definovať aj takto:

DEFINE Crosses

AS Disjoint>>meet>>Inside>>meet>>Disjoint

● Definície sú ekvivalentné, pretože:– rev(Enters) = Inside>>meet>>Disjoint– Inside>>Inside = Inside

Page 66: STQL  ( SpatioTemporal Query Language )

Časopriestorové predikáty – príklad (1)

● Otázka: Ktoré lety preleteli cez snežnú búrku alebo sa jej tesne vyhli ?

● STQL dotaz:

SELECT id FROM flights, weatherWHERE kind = “snowstorm” AND

Route Crosses|Bypasses Extent

Page 67: STQL  ( SpatioTemporal Query Language )

STQL a GROUP BY

● Chceme zistiť, koľko lietadiel vošlo resp. nevošlo do hmly

● Riešenie:

SELECT COUNT(*) FROM flights, weatherWHERE kind = “fog”GROUP BY Route Enters Extent

Page 68: STQL  ( SpatioTemporal Query Language )

Predikát True (1)

● Predikát True sa v STQL značí “_”● Otázka: Ktoré lesy boli kompletne zničené

ohňom ?● Riešenie:

SELECT name

FROM forest, fire

WHERE Territory _>>Inside|Equal Extent

Page 69: STQL  ( SpatioTemporal Query Language )

Predikát True (2)

● Otázka: Ktoré kŕdle letia spolu, rozdelia sa a potom sa znovu stretnú ?

● Riešenie:

DEFINE Remeets AS_>>Meet>>Disjoint>>Meet>>_

SELECT A.swarm, B.swarmFROM birds (A), birds (B)WHERE A.Movement Remeets B.Movement

Page 70: STQL  ( SpatioTemporal Query Language )

Vizuálne dotazovanie

● Motivácia

● Typy vizuálneho dotazovania

● Náčrtkový model dotazovania

● Príklady

Page 71: STQL  ( SpatioTemporal Query Language )

Motivácia

● máme silný dotazovací jazyk● ale kto ho bude používať ?● aj neprogramátori – letový dispečer, ...● neprogramátor nemá záujem o učenie sa

nového jazyka (SQL, STQL, ... )● vzniká potreba vizuálnej nadstavby nad

dotazovacími jazykmi

Page 72: STQL  ( SpatioTemporal Query Language )

Existujúce vizuálne nástroje

● v súčasnosti existuje rada nástrojov, ktorá sa snaží s menším, či väčším úspechom spravovať SQL

● Pozorovanie : žiadny z nich nie je dostatočne silný na zvládnutie zložitejších dotazov !

● Pozorovanie 2 : letový dispečer typicky nepotrebuje zložitý dotaz, jeho dotazy sú jednostranne zamerané

Page 73: STQL  ( SpatioTemporal Query Language )

Sada dotazov

● 1. možnosť vizuálneho dotazovania je implementovať sadu dotazov

● sada dotazov je pevne „zadrátovaná“ a ušitá na mieru

● plusy : jednoduchosť● mínusy : prísne obmedzenia pre užívateľov,

obmedzenie funkčnosti

Page 74: STQL  ( SpatioTemporal Query Language )

Iný prístup

● obecnejší postup● prístup, ktorý umožný vyjadrovať akékoľvek

dotazy● vizuálny jazyk a dotazovacie prostredie

– založený na kreslení načrtkov trás jednotlivých objektov

– náčrtky sú následne preložené do dotazov v STQL

Page 75: STQL  ( SpatioTemporal Query Language )

Základné rysy vizuálneho jazyka

● vizuálny jazyk je založený na myšlienke, že dokážeme analyzovať 2-dimenzionálne dráhy pohybujúcich sa objektov a zistiť v časovom vývoji ich vzájomný vzťah

● dizajn jazyka je podložený myšlienkou zjednodušenia objektových dráh na ich podstatné vlastnosti

Page 76: STQL  ( SpatioTemporal Query Language )

Príklad

● Náčrtok pre časopriestorový predikát Inside>>meet>>Disjoint

Page 77: STQL  ( SpatioTemporal Query Language )

Spôsoby spracovania

● v súčasnosti existujú dva základné spôsoby interpretovania vizuálnych náčrtkov

● 1. Náčrtky priamo zakomponovať do jazyka

● 2. Rozšírenie notácie o popisky

Page 78: STQL  ( SpatioTemporal Query Language )

Náčrtky priamo zakomponovať

● náčrtky budú zakomponované v dotazovacom jazyku

● náčrtky budú nahradzovať časopriestorové predikáty

● tento prístup vedie k heterogénnym vizuálnym jazykom ( spätná kompatibilita )

Page 79: STQL  ( SpatioTemporal Query Language )

Rozšírenie notácie o popisky

● rozumnejší prístup

● vo vizuálnej notácií je možnosť pridať textový popisok k objektu

● textové popisky majú identifikovať objekty v databáze, ktorých atribút korešponduje s načrtovanou trasou

Page 80: STQL  ( SpatioTemporal Query Language )

Rozšírenie notácie o popisky -Príklad

● príklad vletenia lietadla do hurikánu

Page 81: STQL  ( SpatioTemporal Query Language )

Rozšírenie notácie o popisky

● mená priradené ku grafickým objektom sú interpretované ako relácie, ktorých časopriestorové objekty sú zobrazované

● v našom prípade sa jednalo o Route a Extend● v zátvorkách sa nachádzajú podmienky● tieto podmienky sú jednoducho pridané do

WHERE klauzule

Page 82: STQL  ( SpatioTemporal Query Language )

Rozšírenie notácie o popisky - Záver

● spolu s preložením nakreslenej trasy, môže byť vizuálny dotaz ako celok preložený do dotazu v jazyku STQL

● takýto prístup je už implementovaný a funguje !● volá sa query-by-trace

Page 83: STQL  ( SpatioTemporal Query Language )

QBT - príklady

● GUI

Page 84: STQL  ( SpatioTemporal Query Language )

QBT – príklady 2

● časová osa

Page 85: STQL  ( SpatioTemporal Query Language )

QBT – príklady 3

● 3 prípady ukončenia

Page 86: STQL  ( SpatioTemporal Query Language )

QBT – príklady 4

● 2 regiony

Page 87: STQL  ( SpatioTemporal Query Language )

QBT – príklady 5

● dodržanie časovej osi, predikát True

Page 88: STQL  ( SpatioTemporal Query Language )

QBT – príklady 6

● 2 moving points

Page 89: STQL  ( SpatioTemporal Query Language )

Celkové zhrnutie

● na základe ADT prístupu je možné rošíriť SQL o časopriestorovú rovinu na STQL

● STQL neporušuje výhodné vlastnosti SQL a zahrňuje ich ( napr. GROUP BY )

● základná črta časopriestorvých databáz – temporal lifting

● definovali sme nové vlastné predikáty a ukázali sme účinný mechanizmus na vytváranie ďaľších

Page 90: STQL  ( SpatioTemporal Query Language )

Referencie

● Erwig, M., Schneider, M., STQL – A spatio-temporal query language

● Erwig, M., Schneider, M., Abstract and discrete modeling of spatio-temporal data types

● Erwig, M., Schneider, M., Developments in spatio-temporal query languages

● Erwig, M., Schneider, M.,A visual language for spatio-temporal query languages

● www.google.com :)