XML data na disku jako databáze Kamil Toman

Slides:



Advertisements
Podobné prezentace
OZD: Hašování RNDr. Michal Žemlička.
Advertisements

Algoritmy zpracování textů II
DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
Nový přístup k aplikacím Vema
Štěpán Šípal Gymnázium Čakovice. Dnešní témata  Vznik XHTML a předchůdci  Základní prvky XHTML dokumentu  Tagy a atributy  Elementy a jejich druhy.
CXPath Dotazování nad heterogenními XML zdroji s pomocí konceptuálního schéma Jan Vávra, 21. dubna 2004
Serialization (převod) Úvod 1 SGML W3C HTML 1.x. HTML4.0 xHTML 1.0. xHTML 2.x HTML 5 (xHTML 5) HTML 4.0 xml (xHTML 1.0) xHTML je dobřé zformovaný (well-formed)
Aplikační a programové vybavení
 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.
Fakulta elektrotechniky a informatiky
SAS Jan Blaťák Laboratoř vyhledávání znalostí Fakulta informatiky Masarykova Univerzita, Brno
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
T OOL FOR C OLLABORATIVE XML S CHEMA I NTEGRATION Jiří Meluzín.
Algoritmy zpracování textů II
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.
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.
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.
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.
DOK.
Úvod do databází Databáze.
1IT Relační datový model
, InforumJiří Šilha, LANius s.r.o. Nové možnosti komunikace knihovních systémů firmy LANius s.r.o. Client-server varianta systému CLAVIUS ®
1IT S ÍŤOVÝ DATOVÝ MODEL Ing. Jiří Šilhán. S ÍŤOVÝ DATOVÝ MODEL Je historicky nejstarším datovým modelem. Jeho základem jsou vzájemně propojené množiny.
Organizace a zpracování dat I
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z:  některé fráze nebo slova se opakují  existuje.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
METADATA „Tvoří velice důležitou složkou geodat (prostorově lokalizovatelných dat) “ Renata Hrabinová.
Sémantická analýza Jakub Yaghob
Relační databáze.
Databázové systémy Architektury DBS.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Informatika pro ekonomy II přednáška 10
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
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
Dokumentace informačního systému
Ukládání heterogenních dat pomocí rozvolněných objektů Michal Žemlička.
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
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.
Kompresní algoritmus LZW Dokumentografické informační systémy.
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ů.
Infrastruktura pro dotazování nad sémantickými daty Jiří Dokulil, Jakub Yaghob, Filip Zavoral Katedra softwarového inženýrství, MFF UK Praha
DBXplorer Systém pro vyhledávání nad relačními databází podle klíčových slov. zpracovala Margarita Vishnyakova.
1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský
Vícerozměrný přístup pro indexování XML dat
Prostorové datové struktury
Petr Šmíd Obsah prezentace Co je to XML ?
Úvod do XML 2. část Zdeněk Žabokrtský (s využitím materiálů z
Tvorba metainformačního systému pro prostorová data s využitím Internetových technologií Zpracovatel: Tomáš Duchoslav Vedoucí: Dr. Ing. Bronislava Horáková.
Metrické indexování vektorových modelů v oblasti Information Retrieval
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský
Perzistence XML dat Kamil Toman
Rezervační systém v prostředí XUL Zdeněk Novák, Petr Ondrejka.
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 ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
XML a datový standard Zdeněk Jirkovec Softwarové Aplikace a systémy.
Úvod do databázových systémů
Databázové systémy a SQL
Fulltextové vyhledávání
Informatika pro ekonomy přednáška 8
Optimalizace SQL dotazů
Analýza velkých dat strukturovaně či nestrukturovaně?
Transkript prezentace:

XML data na disku jako databáze Kamil Toman

Cíl ● Návrh systému pro práci s perzistentními XML daty, zpracování možných přístupů při implementaci databázových operací. ● Vytvoření experimentální databázové aplikace.

XML data ● Existující rozsáhlé soubory XML dat – Z různých zdrojů – Kolekce dokumentů – dokumenty odpovídající stejnému DTD ● Model dat – ohodnocený, orientovaný strom – Uzly – elementy, atributy, textové uzly – Hrany – modelují vztah otec-syn jednotlivých uzlů ● Potřeba XML dotazovacího jazyka

XML dotazovací jazyky ● XPath – navigace ve struktuře dokumentu – Obecná konstrukce: osa::test [ predikát [... ] ]... – Zobecněné cesty jmen ● /hra//název – Korelované cesty jmen ● /hra[.//název/text()=„Hamlet“]/obsazení – Složitější dotazy využívající metadata ● „or“) ]/řádek

XML dotazovací jazyky ● XQuery – komplexní XML DJ, podobnost s SQL – Funkcionální návrh, pro adresaci využívá jazyk XPath – Pracuje s n-ticemi, používá konstruktory, iterátory, proměnné, uživatelské funkce včetně rekurzivních – { for $a in document( zdroj/bib.xml )//kniha, $b in document( půjčovna.xml )//kniha where $a/název = $b/název return {$a/název} {$b/cena} }

Vyhodnocení XML dotazů ● Obecné „navigační metody“: – Shora-dolů, zdola-nahoru, hybridní – Využití hodnotových nebo strukturálních indexů – Využití DTD

Vyhodnocení shora dolů ● /play//speech[speaker=“Hamlet“]/line ● Nalezení všech elementů play hnízděných v kořenovém elementu, ● v podstromu play nalezení elementů speech ● Vybrání jen těch, které obsahují potomka speaker, jehož obsahem je text „Hamlet“ ● Přechodem z vybraných elementů speech nalezneme hnízděné elementy line

Vyhodnocení zdola nahoru ● Nalezení všech elementů s textem „Hamlet“ ● Ověření názvu speaker ● Průchodem ke koření ověření příslušnosti k cestě /play//speech ● Nalezení elementu line průchodem shora dolů

Hybridní vyhodnocení ● Vyhodnocení levé části dotazu shora dolů /play//speech/speaker ● Vyhodnocení pravé části zdola nahoru line/parent::speaker ● Vyhodnocení průniku obou množin a dopočítání restrikce na textovou hodnotu „Hamlet“ ● Dohledání příslušných elementů line

Vyhodnocení XML dotazů ● Strukturální spojení – Nový typ operace využívající strukturálního očíslování k zjištění vztahu předek-potomek – Lze jej používat jen omezeně, např. pro vyhodnocení zobecněných cest jmen: ● Nalezení počátečních množin v některém z indexů ● Postupné slučování nalezených uzlů podle vztahu odvozeného z identifikátorů jednotlivých uzlů

Strukturální vyhodnocení ●

Strukturální očíslování uzlů ● Efektivnější konstrukce jsou často založeny na speciálním kódování vztahů uzlů XML dokumentu – Prefixové očíslování Nevýhoda: dlouhé identifikátory – Intervalové očíslování Nevýhoda: obtížnost aktualizace

Příklad ● Jan Novák

Dietzovo očíslování

Intervalové očíslování

k-ární úplný strom

k-ární strom - alternativa

Strukturální prefixové schéma

Uložení XML dat ● Potřeba se přizpůsobit tomu, jak budeme k datům přistupovat – Uložení v relačním nebo objektově-relačních systému ● Výhody – využití současných technologií ● Nevýhody – absence XML dotazovacího jazyka, obtížnost a nízká efektivita vyhodnocení složitějších strukturálních dotazů – Přímé uložení ● Výhody – lepší zachycení struktury dat, vyšší efektivita při použití XML dotazovacího jazyka ● Nevýhody – potřeba vývoje nového typu datového úložiště

Způsoby indexování ● DataGuide XML stromu T je takový strom D, že každá cesta jmen ve zdrojovém stromu T má právě jednu instanci v D a každá cesta jmen v D je také cestou jmen v T.

Příklad - DataGuide

Index SphinX

Adaptivní index - APEX

Implementované řešení - SXQDB ● Nativní XML úložiště – Perzistentní DOM ● Dovoluje přístup k libovolným uzlům ● Poskytuje strukturální informaci z DTD ● K přístupu k uzlům využívá B-stromy ● Aktualizace – předpokládá se duální očíslování uzlů ● Modul pro zpracování dotazů ● Podporuje základní konstrukce XQuery ● Zjednodušené vyhodnocování s důrazem na zpracování výrazů XPath

Závěr – Zvolené řešení umožňuje vyhodnocení všech základních konstrukcí XQuery – Přístup k jednotlivým uzlům XML stromu je efektivní – Úložiště lze doplnit indexy pro urychlení zpracování dotazů – Možnosti rozšíření: komplexnější modul pro vyhodnocování dotazů, logický optimalizátor

Srovnání s dalšími XML DB ● Srovnávací DB - kolekce XML dokumentů představující souborné dílo Shakespeara – Velikost: 7,9MB – Počet elementů: ~ – Počet hodnot elementů: ~

Srovnání s dalšími XML DB ● Serializace celé kolekce: Q1: { / } ● Výsledky: – XMLCollection >30min(* 502,042s) – SXQ-DB11,924s – eXists ,050s

Srovnání s dalšími XML DB ● Serializace jednotlivého dokumentu: Q2: { document('src/hamlet.xml') } ● Výsledky: – XMLCollection502,099s – SXQ-DB0,435s – eXists ,105s

Srovnání s dalšími XML DB ● Nalezení elementu SPEECH, který nemá potomka STAGEDIR a zároveň obsahuje podelement SPEAKER s textem „Hamlet“ v dokumentu Hamlet: Q3: { document('src/hamlet.xml') }//SPEECH[ not(exists(.//STAGEDIR)) and SPEAKER/text() = „Hamlet“] } Výsledky: – XMLCollection380,099s – SXQ-DB0,166s – eXists ,643s

Srovnání s dalšími XML DB ● Nalezení elementu PERSONA, který je v podstromu elementu PERSONAE, který má otcovský element PLAY v dokumentu HAMLET Q4: { document('src/hamlet.xml') /PLAY/PERSONAE//PERSONA } ● Výsledky: – XMLCollection2,356s – SXQ-DB0,011s – eXists ,073s

Srovnání s dalšími XML DB ● Nalezení elementu SPEECH, který obsahuje podelement LINE s textem obsahujícím řetězec „Quarrelsome“ v dokumentu „As You Like It“: Q5: { document('src/as_you.xml')//SPEECH[ contains(LINE/text(), „Quarrelsome“)] } ● Výsledky: – XMLCollection-- – SXQ-DB0,063s – eXists ,214s (* 0,040s)

Srovnání s dalšími XML DB ● Nalezení elementu SPEECH, který obsahuje podelement LINE s textem obsahujícím řetězec „Quarrelsome“ v celé kolekci: Q6: { //SPEECH[contains( LINE/text(),„Quarrelsome“)] } ● Výsledky: – XMLCollection-- – SXQ-DB3,847s – eXists ,809s (* 0,107s)