690 likes | 817 Views
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.
E N D
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 • 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í
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
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ů
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á: • Vnější objekt reprezentuje volání dotazu • 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
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
Metody • Uživatelské metody vyjádřeny ikonami a čárami, které je spojují • Ikona metody je spojena s jejími parametry tlustou čarou
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ů • 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))
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ž jsouv prostorové oblasti • Prostorové vztahy jsou mapovány na funkce v OQL (porovnávají souřadnice)
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ů
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)}