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

Slides:



Advertisements
Podobné prezentace
DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
Advertisements

DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
(instance konkrétní třídy)
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK Odpřednášeno
Tabulky v MS ACCESS Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jiří Novák.
CXPath Dotazování nad heterogenními XML zdroji s pomocí konceptuálního schéma Jan Vávra, 21. dubna 2004
Programování funkcí v Excelu
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Databázové systémy SQL Výběr dat.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
ÚVOD DO CPP 7 Dědičnost - pokračování
Analytické nástroje GIS
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Informatika pro ekonomy II přednáška 11
Databázové systémy I Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Principy překladačů Mezikód Jakub Yaghob.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Generování mezikódu Jakub Yaghob
PRÉCIS OD NESTRUKTUROVANÝCH KLÍČOVÝCH SLOV JAKO DOTAZŮ K STRUKTUROVANÝM DATABÁZÍM JAKO ODPOVĚDÍM Martin Lacina.
ADT Strom.
Lineární algebra.
Databáze Jiří Kalousek.
Prostorové databáze, prostorové indexy
Informatika I 3. přednáška
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Analýza informačního systému
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
LOGICKÉ ŘÍZENÍ GEORGE BOOLE
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Fakulta elektrotechniky a informatiky
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Objektové programování
Sémantická analýza Jakub Yaghob
Relační databáze.
1IT D OTAZOVACÍ JAZYKY V RELAČNÍCH DATABÁZÍCH Ing. Jiří Šilhán.
KOMBINAČNÍ LOGICKÉ FUNKCE
Informatika pro ekonomy II přednáška 10
SQL – základní pojmy Ing. Roman Danel, Ph.D.
Predikátová logika.
Databázové systémy Přednáška č. 3.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.
Analýza infromačního systému. Matice afinity ISUD matice – Insert (vkládání dat) – Select (výběr dat) – Update (aktualizace dat) – Delete (vymazání dat)
Databázové modelování
Relace, operace, struktury
Databázové systémy Informatika pro ekonomy, př. 18.
XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.
Databázové systémy SQL Výběr dat.
Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce
XML data na disku jako databáze Kamil Toman
Analýza informačního systému. Podrobně zdokumentovaný cílový stav Paramentry spojené s provozem systému – Cena – Přínosy – Náklady a úspory – …
CUBE - Operátor relační agregace
Databázové systémy Datové modely.
23/04/20151 LINQ (1) LINQ (Language Integrated Query) je součást MS.NET Frameworku umožňující jednotný přístup k datům a jejich zpracování deklarativ-
YOUR LOGO C# Entity Framework. YOUR LOGO  Entity framework nám poskytuje: -Vytváří objektový model na základě databázového schématu -Mapuje tabulky,
Databáze MS ACCESS 2010.
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
ZAL – 3. cvičení 2016.
Informatika pro ekonomy přednáška 8
A5M33IZS – Informační a znalostní systémy
Predikátová logika.
Analýza informačního systému
Formální sémantika SQL
Transkript prezentace:

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 {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 )}

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, p 1, false), (p, p 2, false), (p, p 3, true), (p, p 4, 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,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 })}

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. 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

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