Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

VISUAL - Grafický dotazovací jazyk David Hoksza. Obsah  Model systému, práce se systémem  VISUAL do OQL  VISUAL do Komplexní algebry  D-VISUAL.

Podobné prezentace


Prezentace na téma: "VISUAL - Grafický dotazovací jazyk David Hoksza. Obsah  Model systému, práce se systémem  VISUAL do OQL  VISUAL do Komplexní algebry  D-VISUAL."— Transkript prezentace:

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’,,) 


Stáhnout ppt "VISUAL - Grafický dotazovací jazyk David Hoksza. Obsah  Model systému, práce se systémem  VISUAL do OQL  VISUAL do Komplexní algebry  D-VISUAL."

Podobné prezentace


Reklamy Google