1 / 69

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.

gyala
Download Presentation

VISUAL - Grafický dotazovací jazyk

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • Objektově orientovaný specifikační model • Klient-server model dotazů • Jednotná interpretace a násobné vykonání • 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á: • Vnější objekt reprezentuje volání dotazu • 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ů • 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) = {})) • 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ž jsouv 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: • Překlad hlavičky dotazu • Překlad těla dotazu • 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 {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)}

More Related