Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilAlžběta Jarošová
1
VISUAL - Grafický dotazovací jazyk David Hoksza
2
Obsah Model systému, práce se systémem VISUAL do OQL VISUAL do Komplexní algebry D-VISUAL
3
Vlastnosti Vizuální návrh dotazů Objektový návrh Převod do OQL Prostorové dotazy
4
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í
5
OOS model I dotazy jsou objekty Při vyhodnocování spolu komunikují objekty
6
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í, …
7
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
8
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)
9
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
10
Objekt Základní primitivum Skládá se z: Atomických objektů (integer, …) Komplexních objektů Kolekcí (množina, sekvence, …)
11
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
12
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
13
Schéma DB
14
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í
15
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)
16
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ů
17
Příklad dotazu
18
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)
19
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ů
20
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ý
21
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)
22
Příklad prostorových vztahů F …rámeček (frame) P …částice (particle) W …okno (window) A …anotace (neprostorový objekt)
23
Kompoziční vztah E …experiment A’ …anotace
24
Vztah třída-podtřída
25
Příklad prostorový a kompozičních vztahů
26
Neúplná cesta V případě, kdy neexistuje nejednoznačnost v cestě k objektu, je možno nezadávat celou cestu, např.:
27
Operátor odhnízdění V minulém příkladě pouze neklastrované částice Zavedení operátoru odhnízdění, který “zploští” hierarchii:
28
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
29
Interní dotazy Má pouze výstupní parametry Vstupní parametry jsou implicitně děděné z dotazu, ve kterém je interní dotaz definován
30
Příklad interního dotazu
31
Metody Uživatelské metody vyjádřeny ikonami a čárami, které je spojují Ikona metody je spojena s jejími parametry tlustou čarou
32
Metody – příklad
33
Množinové operátory (1)
34
Množinové operátory (2)
35
VISUAL do OQL Lze provést mapování VISUALu do OQL VISUAL jako front-end k OQL
36
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ů
37
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ů
38
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
39
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á
40
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í
41
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))
42
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
43
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
44
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ů
45
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)
46
Příklad převodu do OQL
47
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ů
48
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í
49
KA - Kompoziční hierarchie (1) Pro převod kompozičních hierarchií je vytvořen graf z grafické reprezentace
50
KA - Kompoziční hierarchie (2) Aplikace odhnízdění na každou větev grafu {f} F {c 1,c 2 } C {p 1,p 2,p 3 } P1 {p 4,p 5 } c 1 {p 6,p 7 } c 2 Cesta (F-C-P2) = {(f, c 1, p 4 ), (f, c 1, p 5 ), (f, c 2, p 6 ), (f, c 2, p 7 )} Cesta (F-P1) = {(f, p 1 ), (f, p 2 ), (f, p 3 )}
51
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
52
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ě
53
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
54
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
55
KA – Aplikátor metod pro metody
56
KA – Aplikátor metod pro metody - příklad SP – predikát selekce Výstup SP = {(p, p 1, false), (p, p 2, false), (p, p 3, true), (p, p 4, false)}
57
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í)
58
KA – Aplikátor metod pro agregační funkce (2)
59
KA – Aplikátor metod pro agregační funkce - příklad
60
KA – Aplikátor metod pro množinové operace
61
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,F 1 ) jsou: (E, GROUP 1 ) = {(e 1,{f 1,f 2,f 3 }), (e 2,{f 4,f 5 }), (e 3,{f 6 })} (E, GROUP 2 ) = {(e 1,{f 1,f 2,f 3 }), (e 2,{f 4 })}
62
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)
63
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. S 1 θ 3 S 2, kde θ 3 { , , , , }, S 1, S 2 jsou množiny 4. S 1 θ 4 S 2 = , kde θ 4 { , ,-}, S 1, S 2 jsou množiny a značí prázdnou množinu 5. S = , kde S je množina 6. S = I k, kde S je množina stupně k, I je množina celých čísel, I i = IxI i-1, I>1, a x značí kartézský součin
64
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
65
Množiny v D-VISUAL Množina je: množina konstant definovaných operátorem {,} pozitivní predikát formule tvaru Množinové operátory: –Pro manipulace s množinami , , - –Operátory porovnání , , , , –Operátory náležení ,
66
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ů
67
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)
68
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),
69
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’,,)
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.