VISUAL - Grafický dotazovací jazyk

Post on 08-Jan-2016

20 views 2 download

description

VISUAL - Grafický dotazovací jazyk. David Hoksza. Obsah. Model syst ému, práce se systémem VISUAL do OQL VISUAL do Komplexní algebry D-VISUAL. Vlastnosti. Vizuální návrh dotazů Objektový návrh Převod do OQL Prostorové dotazy. Význačné prvky VISUAL. - PowerPoint PPT Presentation

Transcript of VISUAL - Grafický dotazovací jazyk

VISUAL-

Grafický dotazovací jazyk

David Hoksza

Obsah

Model systému, práce se systémem VISUAL do OQL VISUAL do Komplexní algebry D-VISUAL

Vlastnosti

Vizuální návrh dotazů Objektový návrh Převod do OQL Prostorové dotazy

Význačné prvky VISUAL

1) Objektově orientovaný specifikační model

2) Klient-server model dotazů

3) Jednotná interpretace a násobné vykonání

4) Jednotné vyhodnocení metod, agregačních funkcí a množinových operací

OOS model

I dotazy jsou objekty Při vyhodnocování spolu komunikují objekty

Výhody OOS modelu

Jednotnost Sdílení dotazů Paralelní/Distributivní zpracování dotazů Omezení času zpracování dotazu Synchronizované zpracování dotazu Bezpečnost Hierarchie, dědičnost, přetěžování, …

Klient-server model dotazů

Objekt jehož služby jsou využívány – server Objekt, který vyžaduje služby jiného dotazu

– klient Každý dotaz (mimo hlavního) – server i

klient

Jednotná interpretace, násobné vykonání

Vykonání (pod)dotazu lze provést několika způsoby – komplexní algebra, OQL, … (a to v rámci jednoho dotazu)

Jednotné vyhodnocení

Společné vlastnosti metod, agregačních funkcí, množinových operátorů

Existence operátoru “Method Aplier” pracující s těmito vlastnostmi

Jednotná metoda optimalizace

Objekt Základní primitivum

Skládá se z: Atomických objektů (integer, …) Komplexních objektů Kolekcí (množina, sekvence, …)

Oblast zájmu (doména) (1) V této prezentaci – vlastnosti materiálu Termíny:

Částice (Perticles) Porucha (Fracture) Dělení částic (Particle splitting) Mřížka (Grid) – plocha rozdělena mřížkou Rámeček (Frame) – mikrosnímek v mřížce Shluk (Cluster) – velikost, hustota, okraje Experiment navíc obsahuje

– grafy, histogramy, audio, video, komentáře, sekvence mřížek, čas počátku a konce experimentu

Doména (2) Každý rámeček obsahuje čas vzniku (z

mřížky) Částice se mohou dělit (singleEvolve), nebo

spojovat (splitEvolve) v průběhu času

Schéma DB

Dotazy Typy dotazů:

Hlavní dotaz Externí dotaz Interní dotaz

Části dotazů: Objekt hlavičky dotazu Objekt tělo dotazu

V jednom okně může být více ikon dotazů se stejným jménem, pak je výsledkem jejich sjednocení

Hlavička dotazu Obsahuje:

Jméno dotazu Parametry (seznam vstupních a výstupních atributů) Specifikaci výstupního typu

Vstupní parametry se liší podle typu dotazu: Interní dotazy

– Nemá vstupní parametry (pouze implicitní) Hlavní a externí dotazy

– Parametry v závorce za jménem spolu s typy (VISUAL je silně typovaný jazyk)

Tělo dotazu Může obsahovat:

Ikonizované objekty Podmínkové okénka Reference na interní a externí dotazy

Podmínkové okénka obsahují Aritmetické výrazy

– Za operandy mohou mít agregační funkce operující na dotazech

Množinové výrazy– Mohou se odkazovat na výstupy dotazů

Příklad dotazu

Ikonizované objekty Čtyři typy ikonizovaných objektů:

Doménové objekty – obsahuje:• Jméno proměnné• Specifikaci typu• Doménu (volitelně)• Grafickou reprezentaci

Objekty metod Rozsahové objekty (range objects) Prostorové objekty (spatial enforcement region

objects)

Vztahy mezi objekty Typy vztahů:

Prostorový vztah Kompoziční vztah (compostition membership) Vztah kolekce (collection membership) – nastává:

1) Vnější objekt reprezentuje volání dotazu

2) Vnější objekt má atribut, který je kolekcí vnitřních objektů

Prostorové vztahy (1) Prostorový atribut

– Atribut doménového objketu specifikující geometrické souřadnice objektu

Prostorový objekt– Objekt obsahující prostorový atribut

Neprostorový objekt– Objekt, který není prostorový

Prostorové vztahy (2) Prostorové vztahy mezi prostorovými

objekty jsou vyjádřeny zvýrazněnou oblastí uvnitř těla dotazu

Pro různé domény se zvýrazněné oblasti mohou různě uživatelsky definovat podle jejich významu

Tyto oblasti nazýváme “prostorovými oblastmi” (spatial-enforcement region)

Příklad prostorových vztahů

F …rámeček (frame)

P …částice (particle)

W …okno (window)

A …anotace (neprostorový objekt)

Kompoziční vztah

E …experiment

A’ …anotace

Vztah třída-podtřída

Příklad prostorový a kompozičních vztahů

Neúplná cesta V případě, kdy neexistuje nejednoznačnost

v cestě k objektu, je možno nezadávat celou cestu, např.:

Operátor odhnízdění V minulém příkladě pouze neklastrované

částice Zavedení operátoru odhnízdění, který

“zploští” hierarchii:

Externí dotazy Podobný koncept jako procedury a funkce Jsou volány z těla dotazu ikonou s názvem

externího dotazu Při volání musí být předávané parametry

svázané s nějakou proměnnou volajícího dotazu

Interní dotazy

Má pouze výstupní parametry Vstupní parametry jsou implicitně děděné z

dotazu, ve kterém je interní dotaz definován

Příklad interního dotazu

Metody

Uživatelské metody vyjádřeny ikonami a čárami, které je spojují

Ikona metody je spojena s jejími parametry tlustou čarou

Metody – příklad

Množinové operátory (1)

Množinové operátory (2)

VISUAL do OQL

Lze provést mapování VISUALu do OQL VISUAL jako front-end k OQL

Mapování do OQL

Je třeba vyřešit mapování:

Objektu hlavního dotazu Externích a interních dotazů Návratových typů Podmínkových okének Grafických objektů

Mapování hlavního dotazu V OQL nejsou metody pro explicitní

předávání parametrů Parametry externích objektů musí být

konstruovány jako nově vytvořené objekty v hlavním dotazu

Atributy interních dotazů budou přístupné v interním dotazu jako vázané, díky tomu, že v OQL je viditelnost z podbloků

Mapování externích a interních dotazů

Všechny vstupní parametry konstruovány v hlavním dotazu

Externí dotazy jsou konvertovány na interní dotazy

Výstupní parametry jsou ukládány do objektu vytvořeného vnějším objektem

Mapování návratových hodnot

VISUAL povoluje různé návratové typy, stejné jako OQL

Sémantika návratových typů a operací mezi nimi je stejná

Mapování podmínek Různé typy podmínek mapovány do

různých struktur OQL Aritmetické výrazy

– Mapovány do “where” části výrazu ”select from where” Výrazy náležení

– Náležení je mapováno do operátoru “in”

– Nenáležení mapováno jako kombinace unárního operátoru “not” a testování náležení

Množinový výrazy– VISUAL obsahuje , , , – Existuje více způsobů mapování

Mapování množinových výrazů

1. Mapování pomocí binárních množinových operací (union, intersect, except):

• A B na (((A - B) = {}) and ((B - A) != {}))• A B na ((A - B) = {})• A B na (((A - B) = {}) and ((B - A) = {}))

2. Mapování pomocí univerzálního a existenčního kvantifikátoru

• A B na (for all x in A:(x in B)) and (exists x in B:(not (x in A))))

• A B na (for all x in A:(x in B))• A B na ((for all x in A:(x in B)) and ((for all x in B:(x in A))

Mapování grafických objektů

Vztahy a objekty, které je třeba mapovat:

Doménový grafický objekt uvnitř doménového grafického objektu

Doménový grafický objekt uvnitř dotazového grafického objektu

Ikony metod, prostorová okna, prostorové ikony

Doménový objekt uvnitř doménového objektu

Kompoziční hierarchie Oba objekty jsou v kartézském součinu (za

“from”) a určení náležení je v “where” Př.:

Select … from …e:Experiment, F:Frame where F.experimentIn( ) = e

Doménový objekt uvnitř dotazu

Typy objektů určují návratovou hodnotu dotazu

Mapováno pomocí “select from where” – from a where určují tělo dotazu– select odpovídá doménovým objektům– Počet selectů je určen počtem vnitřních objektů

Ikony metod, prostorová okna, prostorové oblasti

Metody jsou mapovány do booleovských funkcí, které se uplatňují ve “where” části dotazu

Prostorová okna mají smysl pouze tehdy, když jsou v prostorové oblasti

Prostorové vztahy jsou mapovány na funkce v OQL (porovnávají souřadnice)

Příklad převodu do OQL

Převod z VISUAL do komplexní algebry (1)

Komplexní algebra vyhodnocuje odspoda nahoru

Kvůli efektivitě Tři fáze:

1) Překlad hlavičky dotazu

2) Překlad těla dotazu

3) Připojení poddotazů

Převod z VISUAL do komplexní algebry (2)

Před převodem je vytvořen orientovaný graf, kde vrcholy jsou dotazy a hrany vedou do poddotazů

Graf je topologicky setříděn Je-li nalezen cyklus => chyba Dotazy jsou vyhodnocovány v opačném

pořadí k topologickému setřídění

KA - Kompoziční hierarchie (1)

Pro převod kompozičních hierarchií je vytvořen graf z grafické reprezentace

KA - Kompoziční hierarchie (2)

Aplikace odhnízdění na každou větev grafu

{f} F

{c1,c2} C

{p1,p2,p3} P1

{p4,p5} c1

{p6,p7} c2

Cesta (F-C-P2) = {(f, c1, p4), (f, c1, p5), (f, c2, p6), (f, c2, p7)}

Cesta (F-P1) = {(f, p1), (f, p2), (f, p3)}

KA - Operátor odhnízdění a hierarchie

Řeší se stejně jako v obecném případě, ale nejdřív je aplikován operátor odhnízdění

- zde je potřeba přidat nové proměnné pro členy, které nejsou v hierarchii

KA - Spojení dotazů (1)

Dotaz A využívá služby dotazu B při třech akcích:

Volání metody (zahrnuje přímé volání dotazů skrz ikony)

Počítání agregačních funkcí Vyhodnocování množinových operátorů

Všechny akce jsou prováděny jednotně

KA - Spojení dotazů (2) Všechny tři akce mají společné:

Mají vstupní kolekci Jsou to aplikace metod (funkcí) na členy vstupní

kolekce Produkují výstupní kolekci obsahující výsledky

aplikace metody na členy vnitřní kolekce

=> Aplikátor metod => Jednotnost optimalizačních metod pro

metody (funkce), agregační funkce, množinové operace

KA – Aplikátor metod Černá skříňka

Vstup– “Vstupní funkce” - metoda, agregační funkce,

množinová operace

– „Vstupní množina“ – doména související funkce• Obsahuje přirozené spojení domén parametrů vstupní

funkce – to může být více, než vstupní funkce žádá => projekce

– Obecná projekce – umožňuje duplikaci vstupních parametrů na rozdíl od klasické projekce

– Výstup má tvar nový_element.výstup_funkce, kde “.” je zřetězení a nový_element je element vzniklý přirozeným spojením

KA – Aplikátor metod pro metody

KA – Aplikátor metod pro metody - příklad

SP – predikát selekce

Výstup SP = {(p, p1, false), (p, p2, false), (p, p3, true), (p, p4, false)}

KA – Aplikátor metod pro agregační funkce (1)

Používá se GROUP-By šablona, která říká, které hodnoty “groupovacích” atributů se budou uvažovat

Na výstup jdou atributy z šablony spolu s výstupem => odpadá problém s prázdným dotazem (i COUNT(prázdná tabulka) nic nevrací)

KA – Aplikátor metod pro agregační funkce (2)

KA – Aplikátor metod pro agregační funkce - příklad

KA – Aplikátor metod pro množinové operace

KA - Aplikátor metod pro množinové operace – př.

GROUP1 a GROUP2 jsou nové atributy vytvořené Group-by-template

Výstupy group operátoru na Frames(E,F) a Frames_With_Cluster(E,F1) jsou:

(E, GROUP1) = {(e1,{f1,f2,f3}), (e2,{f4,f5}), (e3,{f6})}

(E, GROUP2) = {(e1,{f1,f2,f3}), (e2,{f4})}

D-VISUAL Nosný jazyk VISUAL Tvořen pravidly => D(atalog)-VISUAL Podobný relačnímu kalkulu s množinami

(RC/S) Umožňuje rekurzi Nemá univerzální kvantifikátor (nahrazuje jej

množinovými operátory)

Predikáty D-VISUAL (1)1. X θ1 Y , kde θ1 {=, , <, , >, }, X,Y jsou konstanty nebo

proměnné

2. X θ2 S, kde θ2 {,}, X je konstanta nebo proměnná a Y je množina

3. S1 θ3 S2 , kde θ3 {,,,,}, S1, S2 jsou množiny

4. S1 θ4 S2 = , kde θ4 {,,-}, S1, S2 jsou množiny a značí prázdnou množinu

5. S = , kde S je množina

6. S = Ik, kde S je množina stupně k, I je množina celých čísel, Ii = IxIi-1, I>1, a x značí kartézský součin

Predikáty D-VISUAL (2) Používá pozitivní a negativní (nevestavěné

predikáty) R(X) a ¬R(X), kde R je relace a X je vektor proměnných a konstant

Množiny v D-VISUAL Množina je:

množina konstant definovaných operátorem {,} pozitivní predikát formule tvaru <pravidlo1,,…, pravidlok>

Množinové operátory:– Pro manipulace s množinami

, , -

– Operátory porovnání ,,,,

– Operátory náležení ,

Program D-VISUAL Skládá se z množiny pravidel typu “hlava:-

tělo” Hlava je pozitivní predikát a tělo je

konjunkce predikátů

Bezpečné výrazy v D-VISUAL

Aby D-VISUAL neprodukoval nekonečné výsledky, nebo nevyhodnocoval nekonečně dlouhou, zavádíme omezení:

Proměnná z hlavičky se objeví také v těle dotazu Všechny proměnné v těle dotazu (mimo těch, které

jsou pouze v množinách) jsou omezené. Proměnná x je omezená, když:

– X je členem pozitivního predikátu mimo množinu v těle– X je členem X S, kde S je množina bez X v libovolném

ze svých pravidel– X je členem X = Y a Y je omezená

Každé pravidlo definující množinu splňuje (a) a (b)

Příklady D-VISUAL (1) experiment(eid, first-time, last-time), frame(fid, ftime, parent, eid), cluster(cid,fid, centroid_X,

centroid_Y), particle(pid, fid, centroid_X,

centroid_Y), particle-in-cluster(pid, cid), splitEvolves(pid, pid),

Příklady D-VISUAL (2) Particles_In_Window(P) :- experiment(e,,), frame(F,,,e),

particle(P,F,X,Y), window_Xlow X, X window_Xhigh, window_Ylow Y, Y window_Yhigh

Experiment_With_All_Frames_Having_Clusters(E) :- experiment(E,,), Frames(E,F1) :- experiment(E,,), frame(F1,,,E)<Frames_With_Cluster(E,F2) :- experiment(E,,), frame(F2,,,E), cluster(C,F2,,)

Frames_With_No_Clusters(F) :- experiment(e,,),frame(F,,,e), F Frames_With_Cluster(F’) :- frame(F’,,,), cluster(C,F’,,)