XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.

Slides:



Advertisements
Podobné prezentace
KIV/ZIS Cvičení 6 SQL - SELECT.
Advertisements

ŘÍDÍCÍ STRUKTURY - PODMÍNKY
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
VY_32_INOVACE_4.3.IVT1.15/Oc Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jaroslav Ochodek CZ.1.07/1.5.00/ Tvorba webových.
CXPath Dotazování nad heterogenními XML zdroji s pomocí konceptuálního schéma Jan Vávra, 21. dubna 2004
Vstupy a výstupy v JavaScriptu Vstup: použitím metody prompt objektu window čtením hodnot z položek formuláře Výstup : použitím metody alert objektu window.
David Pejčoch XML (Extensible Markup Language) Semistrukturovaná data Obecný značkovací jazyk Vyvinut a standardizován konzorciem W3C Zjednodušená.
Příkazy Přednáška č. 4. Příkazy (statements)  Příkaz – dílčí krok programu (část kódu – zpravidla jeden řádek)  Program – posloupnost příkazů  Příkazy.
Fakulta elektrotechniky a informatiky
JUI - 1. přednáška Funkcionální programování Úvod do jazyka Lisp RNDr. Jiří Dvořák, CSc.
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
Práce s Xml ● Základní moduly pro práci s XML: – Xml.dom – Document Object Model API – Xml.dom.minidom ● Základní objekt je Dokument – stromová struktura.
Object Query Language (OQL)
Programování v Pascalu Přednáška 7
Programování PA - 2.
Materiály k přednášce Úvod do programování Ondřej Čepek.
Dotazovací jazyk pro setříděná data Tereza Cihelková, Matěj Klonfar.
VISUAL - Grafický dotazovací jazyk David Hoksza. Obsah  Model systému, práce se systémem  VISUAL do OQL  VISUAL do Komplexní algebry  D-VISUAL.
PRÉCIS OD NESTRUKTUROVANÝCH KLÍČOVÝCH SLOV JAKO DOTAZŮ K STRUKTUROVANÝM DATABÁZÍM JAKO ODPOVĚDÍM Martin Lacina.
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Informatika I 3. přednáška
Procedury a funkce Základní charakteristika a použití v programu.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
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.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Databázové systémy II Přednáška č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Rozumíme si s MDX Š.Havlíček.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
Cvičení.
Návrh a tvorba WWW Cvičení 4
XML Schema Irena Mlýnková. Obsah XML – úvod, příklad, základní pojmy DTD – přehled XML Schema – podrobně.
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í.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
STROMY Datová struktura sestávající z uzlů
Internetové publikování Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)
UNIX Shell skripty Roman Danel VŠB TU Ostrava, Hornicko – geologická fakulta.
Databázové modelování
Využití XML v DB aplikacích Michal Kopecký Výběr ze slajdů k 7. přednášce předmětu Databázové Aplikace (DBI026) na MFF UK.
RDF a RQL Roman Krejčík. RDF a RQL RDF – Resource Description Framework –Jazyk pro ukládání informací v XML –RDF Schema RQL – RDF Query Language –Dotazování.
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
Databázové systémy Informatika pro ekonomy, př. 18.
Automatizovaná podpora výběru nástroje pro dobývání znalostí Jakub Štochl.
XML data na disku jako databáze Kamil Toman
1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský
SQL Další dotazy a pohledy Databázové systémy. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
4. Typ pole 4.1 Jednorozměrná pole
CUBE - Operátor relační agregace
Teorie zpracování dat RELAČNÍ DATOVÝ MODEL.
Petr Čermák Michal Danihelka
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-
Petr Šmíd Obsah prezentace Co je to XML ?
Úvod do XML S využitím materiálů z Zdeněk Žabokrtský.
1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský
Perzistence XML dat Kamil Toman
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
XML a datový standard Zdeněk Jirkovec Softwarové Aplikace a systémy.
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Výukový materiál zpracován v rámci projektu
Databázové systémy a SQL
Algoritmizace a programování
TNPW1 JavaScript Ing. Jiří Štěpánek.
Databázové systémy a SQL
Typ pole (1) Proměnná typu pole představuje kolekci proměnných stejného datového typu, které mohou být označovány společným jménem (identifikátorem) Pole.
C# přehled vlastností.
Transkript prezentace:

XQuery Dotazovací jazyk XML Daniel Privalenkov

O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů

K čemu je dobrý XML Umožňuje výměnu informací mezi internet-aplikacemi nezávisle na způsobu ukládání dat Flexibilita v reprezentaci různých informací Data jsou „samovysvětlující“

Proč potřebujeme speciální dotazovací jazyk pro XML Relační data:  pravidelná struktura  jednorozměrné  většinou „hustá“ … XML data  nepravidelná struktura  velmi často vnořené elementy  často řídká …

Syntaxe XQuery Vyjádření pomocí XML Optimalizovaná pro lidí

Datový model Posloupnost – uspořádaná množina prvků (může být i prázdná) Prvek – uzel nebo atomická hodnota Atomická hodnota – hodnota nějakého základního typu definovaného v XML Existuje 7 druhů uzlů: element, atribut, text, dokument, komentář, instrukce, namespace

Uzly mohou mít další uzly jako své potomky Některé uzly mají jména nebo typovou hodnotu Typová hodnota – posloupnost (i prázdná) atomických hodnot uzly mají přiřazeny identitu Mezi všemi uzly existuje celková hierarchie – tzv. uspořádání dokumentu (document order) Posloupnosti mohou být heterogenní Posloupnost nemůže být prvkem jiné posloupnosti

Error hodnota – vzniká jako výsledek vyhodnocení výrazu, který obsahuje chybu

Převod XML na datový model Validace schématu (Schema validation) – XML -> DM Serializace – DM -> XML

Výrazy XQuery je CASE sensitive Komentáře: {-- ………. --} Literály – např. 47, 4.7, 4.7E3 atd. Konstruktor – vytvoření atomických hodnot konkrétního typu např. date(“ ”) Závorky, - konkatenace dvou posloupností, Např. 1,2,3 = (1,2,3) = 1 to 3 = ((1,2),(), 3)

Proměnné - $jmeno_promenne Let – spojuje proměnné a pak vyhodnocuje vnitřní výraz let $start := 1, $stop := 3 return $start to $stop Volání funkcí substring(“Martha Washington”, 1, 6)

Výrazy cesty (path expressions) Posloupnost výrazů oddělených lomítkem Krok = výraz mezi lomítky Výsledkem kroku je posloupnost uzlů Celkovým výsledkem je výsledek posledního kroku Každý krok je vyhodnocen v kontextu konkrétního uzlu – kontextový uzel Osový krok

Osy: child, descendant, parent, attribute, self, descendant-or-self 2 syntaxe path výrazů: abbreviated unabbreviated

Příklady P1 Napište seznam všech položek nabízených na prodej Smithem document(“items.xml”)/child::* /child::item[child::seller = “Smith”] /child::description document(“items.xml”)/*/item[seller = “Smith”] / description

P2 Napište seznam všech elementů typu description, které se nacházejí v dokumentu items.xml document(“items.xml”)//description

P3 Najděte atribut statusu položky, která je rodičem zadané proměnné $description

Predikáty Výraz v hranatých závorkách např. item[seller = “Smith”] Operátory porovnání hodnot: eq, ne, lt, le, gt, ge Obecné porovnávací operátory: =, !=, >, >=, <, <= Operátory porovnání uzlů: is, isnot

Operátory porovnání pořadí uzlů > Logické operátory and, or negace: not

Konstruktory elementů

{$i} {max($bids[itemno=$i]/[bidamount)}

{ $b/itemno, $b/bid-amount }

Computed element constructor element {name($e)} data($e)*2}

Computed attribute constructor Attribute {if $p/sex =“M” then “father” else “mother} {$p/name}

Iterace a třídění for $n in (2,3) return $n + 1 for $m in (2,3), $n in (5,10) return {$m} times {$n} is {$m * $n}

Př. Pro každou položku, která má více než 10 nabídek vygenerujte element „populární nabídka“, který bude obsahovat číslo položky, popis a počet nabídek for $i in document(“items.xml”)/*/item let $b := document(“bids.xml”)/*/bid[itemno = $i/itemno] where count ($b) > 10 return { $i/itemno, $i/description, {count($b)} } sortby bid-count descending

Aritmetika Základní operace: +,-,*, div, mod Agregační funkce: sum, avg, count, max, min Aplikace těchto operací na prázdnou posloupnost vrací prázdnou posloupnost

Operace nad posloupnostmi union - sjednocení intersect - průnik except – rozdíl

Př. Sestrojte nový element nedávné velké nabídky, který bude obsahovat kopie všech nabízených elementů z bids.xml takové, že mají bid-amount větší než 1000 a datum po 1. lednu 2002 document(“bids.xml”)/*/bid[bid-amount > ] interesects document(“bids.xml”)/*/bid[bid-date > date(“ ”)]

Podmínky if then else if then $part/wholesale else $part/retail

Kvantifikace every satisfies some satisfies Př. Najděte položky v items.xml, pro které všechny nabídky byly dvakrát větší než rezervovaná cena. Vraťte kopie všech těchto elementů „zabalené“ do nového elementu, který se bude jmenovat podhodnocená cena. for $i in document(“items.xml”) where every $b in document(“bids.xml”)/*/bid[itemno = $i/itemno] satisfies $b/bid-amount > 2 * $i/reserve-price return $i

Funkce define function highbid(element $item) returns decimal { max(document(“bids.xml”) //bid [itemno = $item/itemno]/bidamount) } highbid(document(“items.xml”)//item[itemno = “12”)