XML kutatási irányok

Preview:

DESCRIPTION

XML kutatási irányok. Információs Rendszerek Tanszéken folyó kutatások. Kutató Egyetem pályázat 2 csoport (hálózatok, adatbázisok) Heti 2 szeminárium 2010 februártól kezdve Lukovszki Tamás (hétfő 10-12, 2.519): hálózati topológiák Ács Zoltán Agócs Ádám Balaton Attila Laki Sándor - PowerPoint PPT Presentation

Citation preview

Master Informatique 2010.03.24. 1dr. Kiss Attila XML kutatási irányok

XML kutatási irányok

Master Informatique 2010.03.24. 2dr. Kiss Attila XML kutatási irányok

Információs Rendszerek Tanszéken folyó kutatások

• Kutató Egyetem pályázat• 2 csoport (hálózatok, adatbázisok)• Heti 2 szeminárium 2010 februártól

kezdve

• Lukovszki Tamás (hétfő 10-12, 2.519): hálózati topológiák

– Ács Zoltán– Agócs Ádám– Balaton Attila– Laki Sándor– Benczúr András, Kiss Attila– szakdolgozók

• Kiss Attila (péntek 9-11, 2.519): adatbázisok, XML, kockázatkezelés, projektütemezések matematikai modelljei

– Kósa Balázs– Nyitrai Erika– Varga Balázs– Menyhárt László– Szabó Gyula– Benczúr András– Rácz Gábor (szakdolgozó)– BsC-s, MsC-s hallgatók

Master Informatique 2010.03.24. 3dr. Kiss Attila XML kutatási irányok

Hogy néz ki egy XML dokumentum?Hogy néz ki egy XML dokumentum?<course>

<name>CS 501</name>

<instructor>Ron Charles</instructor>

<students>

<student name=“Alice“>

<a1>78</a1>

<a2>86</a2>

<midterm>91</midterm>

<project>87</project>

</student>

<student name=“Bob“>

<a1>69</a1>

<a2>71</a2>

<midterm>82</midterm>

<finalexam>60</finalexam>

</student>

</students>

</course>

3

Master Informatique 2010.03.24. 4dr. Kiss Attila XML kutatási irányok

AzAz XML XML dokumtumfadokumtumfaPath Expression:/course

Textual Representation:<course></course>

4

o1

o2

o5o3

o4

o7

o6

o9

o8

o11

o10 o12 o14

o13 o15 o17

o16

o18

o26

o25 o27o21

o24 o28o22o20

o19 o23

course

instructor

“Ron Charles”

name

“CS 501”

students

student student

@name

“Alice”

a1a2

midterm

project

“78” “86” “91” “87”

@name

“Bob”

a1

a2 midterm

finalexam

“69” “71” “82”

Path Expression:/course/name/text()

Textual Representation:<course> <name>CS 501</name></course>

“60”

Path Expression:/course/name

Textual Representation:<course> <name></name></course>

Master Informatique 2010.03.24. 5dr. Kiss Attila XML kutatási irányok

Klasszikus feladatok XML-re

• A klasszikus relációs adatbázis-kezelési technológiákat XML adatbázisokra is ki kell terjeszteni:– hatékony tárolás (natív vagy relációs

adatbázisban)– hatékony lekérdezés, karbantartás (indexeket is)– jogosultságok kezelése– tranzakció-kezelés– adatbányászat

Master Informatique 2010.03.24. 6dr. Kiss Attila XML kutatási irányok

Hatékony XML lekérdezések indexelési technikákkal

1. Értékek indexelése– az atomi értékeket (például: data(//emp/salary))

indexeljük– általában B+-fákat használunk

2. Szöveges indexelés– az XML dokumentumot közönséges szöveges

állománynak tekintjük– a kulcsszavak keresése invertált indexekkel segíthető

3. Strukturális címkézés (számozási sémák)– az előd/utód reláció gyors eldöntésére szolgál

4. Strukturális indexek– materializálja adott típusú ösvénykifejezések

eredményeit

Master Informatique 2010.03.24. 7dr. Kiss Attila XML kutatási irányok

A strukturális indexelési technikák

Master Informatique 2010.03.24. 8dr. Kiss Attila XML kutatási irányok

A struktúra tömörebb tárolása 1-indexszel

1

paper

2,4,8,13section

3,5,9,14

title

6,10algorithm

7proof 11

proof12

uses

15,16

17,18about

exp

1-index

1

paper

4 section

5 title 6

algorithm

7proof

8section

9title

10

11proof

12

uses

algorithm

13 section14

15

16

17

18

about

about

title2

section

3

title

expexp

Adatgráf

/paper/section/algorithm

Master Informatique 2010.03.24. 9dr. Kiss Attila XML kutatási irányok

Oracle XMLIndex

• Az XMLIndex 3 komponensből áll– Útvonalindex (path index) – Címkéző index (order index)– Értékindex (value index)

• Néhány eset, amikor nem használható:– felhasználó által definiált XPath függvények– child, descendant és attribute irányoktól

eltérő irányok– uniót ( | ) használó kifejezések

Master Informatique 2010.03.24. 10dr. Kiss Attila XML kutatási irányok

XMLIndex Path Table szerkezete

Column Data TypePATHID RAW(8)RID ROWIDORDER_KEY RAW(1000)LOCATOR RAW(2000)VALUE VARCHAR2(4000)

• A Locator a töredék gyorsabb eléréséhez szükséges mutató.

Master Informatique 2010.03.24. 11dr. Kiss Attila XML kutatási irányok

Az OrderKey (Dewey Order)

name

name child

person

person

hobby hobby

1.1 1.2

1

1.2.1

1.2.1.1 1.2.1.2 1.2.1.3

Master Informatique 2010.03.24. 12dr. Kiss Attila XML kutatási irányok

XMLIndex Path Table szerkezete

<PurchaseOrder> <Reference>SBELL-2002100912333601PDT</Reference> <Actions>

<Action> <User>SVOLLMAN</User> </Action> </Actions> . . . </PurchaseOrder>

<PurchaseOrder> <Reference>ABEL-20021127121040897PST</Reference>

<Actions> <Action> <User>ZLOTKEY</User> </Action>

<Action> <User>KING</User> </Action> </Actions> . . . </PurchaseOrder>

Master Informatique 2010.03.24. 13dr. Kiss Attila XML kutatási irányok

XMLIndex Path Table szerkezete

PATHID Indexed XPath

1 /PurchaseOrder

2 /PurchaseOrder/Reference

3 /PurchaseOrder/Actions

4 /PurchaseOrder/Actions/Action

5 /PurchaseOrder/Actions/Action/User

Master Informatique 2010.03.24. 14dr. Kiss Attila XML kutatási irányok

XMLIndex Path Table szerkezete

PATHID RID ORDER_KEY VALUE1 R1 1 ——2 R1 1.1 SBELL-

2002100912333601PDT

3 R1 1.2 ——

4 R1 1.2.1 ——

5 R1 1.2.1.1 SVOLLMAN

6 R2 1 ——7 R2 1.1 ABEL-

20021127121040897PST

8 R2 1.2 ——

9 R2 1.2.1 ——

10 R2 1.2.1.1 ZLOTKEY

4 R2 1.2.2 ——

5 R2 1.2.2.1 KING

Master Informatique 2010.03.24. 15dr. Kiss Attila XML kutatási irányok

Néhány kutatási téma 2010-es XML konferenciák tükrében

• XML Prague 2010, March 13th & 14th– XML Lifecycle (diffing, merging, change tracking, etc.) – Efficiency and performance in XML (verbosity, processing, overuse) – Hypermedia in XML (SMIL, SVG animations) – Spatial data and XML (WGS84, microformats) – XML all the time (XRX, XQuery web applications)

• DBKDA 2010 April 11-16, 2010 - Menuires, FranceXML-driven data, knowledge, databases:– Data /dissemination, distributed, processing, management/; – XML-data /storage, exchange, compress, metadata/; – XML-data and metadata management; – XML repositories; – Knowledge discovery from XML repositories; – XML-data processing /queries, indexing, management, retrieval, mining/; – XML data and knowledge /representation, discovery, mining, orchestration/;– XML-data in advances environments /clouds, P2P, multimedia, mobile,

finance, biotechnologies, geospatial, space/; – XML-data and process /data warehouse, workflow, web, learning, control/;

• Balisage: The Markup Conference 2010 August 03-06, 2010 Montreal, Canada – Xsd, XQuery, Xslt, Rdf, Sgml, Lmnl, Xsl Fo, Xtm, Svg, Math Ml, Owl, Tex

Mecs, Rng, Topic Maps, Document Modeling, Overlap, Ontologies, Xml, Ubl, Metadata

Master Informatique 2010.03.24. 16dr. Kiss Attila XML kutatási irányok

Advanced Techniques on XML Data Management

(XML-DM 2010)

July 15, 2010, Jiuzhai Valley, China * XML data integration * XML data storage and indexing * XML query languages and optimization * XML views and data publishing * XML applications in semantic web * XML data mining * XML change management * XML views and data mappings * XML data compression * XML in Web services * XML benchmark and performance studies * XML applications in new domains- sensor and

biological data management * XML in cloud computing

Master Informatique 2010.03.24. 17dr. Kiss Attila XML kutatási irányok

XML tömörítés - motiváció

• Egyre több XML adat keletkezik– Struktúrák ismétlődnek (címkék, útvonalak…)– Adatinfláció: az XML formában tárolt adatok mérete

nagyobb, mint a nyers adatoké– Tömörítés célja: tárméret csökkentése, adatátvitel

gyorsítása (hely, idő)

• Használjunk általános tömörítő algoritmust (például gzip-et)?– az XML adatok jellemző struktúráját elveszítjük,– nem lehet lekérdezni.

Master Informatique 2010.03.24. 18dr. Kiss Attila XML kutatási irányok

Tömörítés adatbázis-kezelőkben

• Oracle:– XOP - XML-binary Optimized Packaging

// Compress the Message Content CompressionAgent cagent = new CompressionAgent("oracle:xml:compression");

byte [ ] input = cagent.compress(message);

• DB2:– XML Inliningcreate table mytab1 (a int, b char(5), c clob inline length 1000);

Master Informatique 2010.03.24. 19dr. Kiss Attila XML kutatási irányok

Példa: Webszerver naplóállományok (Web Server Logs)

202.239.238.16|GET / HTTP/1.0|text/html|200|1997/10/01-00:00:02|-|4478|-|-|http://www.net.jp/|Mozilla/3.1[ja](I)202.239.238.16|GET / HTTP/1.0|text/html|200|1997/10/01-00:00:02|-|4478|-|-|http://www.net.jp/|Mozilla/3.1[ja](I)

<apache:entry>

<apache:host> 202.239.238.16 </apache:host>

<apache:requestLine> GET / HTTP/1.0 </apache:requestLine>

<apache:contentType> text/html </apache:contentType>

<apache:statusCode> 200</apache:statusCode>

<apache:date> 1997/10/01-00:00:02</apache:date>

<apache:byteCount> 4478</apache:byteCount>

<apache:referer> http://www.net.jp/ </apache:referer>

<apache:userAgent> Mozilla/3.1$[$ja$]$(I)</apache:userAgent>

</apache:entry>

<apache:entry>

<apache:host> 202.239.238.16 </apache:host>

<apache:requestLine> GET / HTTP/1.0 </apache:requestLine>

<apache:contentType> text/html </apache:contentType>

<apache:statusCode> 200</apache:statusCode>

<apache:date> 1997/10/01-00:00:02</apache:date>

<apache:byteCount> 4478</apache:byteCount>

<apache:referer> http://www.net.jp/ </apache:referer>

<apache:userAgent> Mozilla/3.1$[$ja$]$(I)</apache:userAgent>

</apache:entry>

ASCII File 15.9 MB (gzipped 1.6MB):

XML formájú apache web log mérete 24.2 MB (gzipped 2.1MB):

Master Informatique 2010.03.24. 20dr. Kiss Attila XML kutatási irányok

XML-specifikus tömörítők

• Vannak nem lekérdezhető tömörítők (például XMill):– Nagy darabokat tömörít.– Nagyon jó tömörítési arány

• Lekérdezhető tömörítők (például XGrind, XPRESS):– Kisebb szemcséket tömörít.– Gyengébb tömörítési arány és tömörítési idő– Egyszerű ösvénykifejezésekkel lekérdezhető

(atomi predikátum is használható)

Master Informatique 2010.03.24. 21dr. Kiss Attila XML kutatási irányok

XML tömörítés fontosabb jellemzői• Tömörítési arány, tömörítési idő, lekérdezhető-e, szükséges

memória mérete, stb.

Néhány tömörítési algoritmus

Master Informatique 2010.03.24. 22dr. Kiss Attila XML kutatási irányok

Ötlet

• Az XML fa struktúrájú.

• Különítsük el a fa struktúrát és azokat az adatokat, amiket a levelek tárolnak .

Kenyérfa (Hawaii)

Master Informatique 2010.03.24. 23dr. Kiss Attila XML kutatási irányok

XMill• Ez volt az első XML tömörítő

– SAX parser használ XML elemzésére– gzip tömörítőt használ– az adatokat tömörítés előtt konténerekbe

csoportosítja

• Az XML tömörítéshez három technikát használ– Az adatoktól leválasztott struktúrát külön tömöríti– Az adatokat típus szerint csoportosítja

(Elnevezés: szemantikus konténer).– A típusnak megfelelő tömörítővel külön tömöríti

az adatcsoportokat. (Elnevezés: szemantikus tömörítő használata).

• Letölthető:– www.cs.washington.edu/homes/suciu/XMILL

Master Informatique 2010.03.24. 24dr. Kiss Attila XML kutatási irányok

XMill felépítése:

Master Informatique 2010.03.24. 25dr. Kiss Attila XML kutatási irányok

Hogy működik az Xmill?

<apache:entry>

<apache:host> </apache:host>

. . .

</apache:entry>

<apache:entry>

<apache:host> </apache:host>

. . .

</apache:entry>

202.239.238.16

GET / HTTP/1.0

text/html

200

202.239.238.16

GET / HTTP/1.0

text/html

200

gzip: struktúra gzip: adatok

=1.75MB+

A struktúrát az adatoktól függetlenül tömörítjük:

Master Informatique 2010.03.24. 26dr. Kiss Attila XML kutatási irányok

Hogy működik az Xmill?

<apache:entry>

. . .

</apache:entry>

<apache:entry>

. . .

</apache:entry>

202.23.23.16

224.42.24.55

202.23.23.16

224.42.24.55

gzip: struktúra gzip: IP címek

=1.33MB+GET / HTTP/1.0

GET / HTTP/1.1

GET / HTTP/1.0

GET / HTTP/1.1

gzip: web műveletek

+

Típus szerint csoportosítjuk az adatokat.Egyszerű feltétel: Azonos címke azonos típus.Különböző címkék is jelenthetnek azonos típust:

<név>, <anyja neve>A konténereket XPath kifejezésekkel a felhasználó is definiálhatja.(Ez a lépés DataGuide XML indexszel gyorsítható.)

Master Informatique 2010.03.24. 27dr. Kiss Attila XML kutatási irányok

Hogy működik az Xmill?

gzip: struktúra + gzip: c1(adatok1) + gzip: c2(adatok2) + ... =0.82MB

Speciális (szemantikus) tömörítőket alkalmazunk.xmill -p //price=>i -p //state=>e file.xml

Például:• egészek kódolása 8, 16, vagy 32 biten (i)• növekmények tömörítése (di):

például 1999, 1995, 2001, 2000, 1995, ... esetén• listák, rekordok tömörítése: (e)

például 104.32.23.1 4 bájt• A felhasználó választhat a szemantikus tömörítők közül.

Master Informatique 2010.03.24. 28dr. Kiss Attila XML kutatási irányok

A struktúra tömörítése

• Cseréljük az adatértéket a konténer (negatív) sorszámával.• A zárócímkéket cseréljük le 0-ra.• A címkéket/attribútumokat cseréljük le (pozitív) egészekre.

<Book><Title lang=“English”>Data Compression</Title>

<Author>Gray</Author>

<Author>Reiter</Author>

</Book>

<Book><Title lang=“English”>Data Compression</Title>

<Author>Gray</Author>

<Author>Reiter</Author>

</Book>

<Book><Title lang=-1>-2</Title>

<Author>-3</Author>

<Author>-3</Autor>

</Book>

<Book><Title lang=-1 0>-2 0 <Author>-3 0 <Author>-3 0 0Book = 1, Title = 2, @lang = 3, Author = 4

1 2 3 -1 0 -2 0 4 -3 0 4 -3 0 0

Szótár nélkül 14 bájtSzótár alapú tömörítés:

minden új szó egy új bejegyzés a szótárban

Ismétlődő részstruktúrák esetén nagyon jó tömörítés érhető el.

Master Informatique 2010.03.24. 29dr. Kiss Attila XML kutatási irányok

Kísérleti eredmények (bit/bájt)

1. oszlop: gzip (ASCII)

2. oszlop: gzip (XML)

3. oszlop: XMILL (minden adat 1 konténerbe kerül)

4. oszlop: XMILL (minden címke 1 konténer)

5. oszlop: XMILL (a legjobb, amit más konténerre osztással el tudtak érni)

Master Informatique 2010.03.24. 30dr. Kiss Attila XML kutatási irányok

Lekérdezhető tömörítők

• XQzip: jellemzői:• SIT indexet használ a lekérdezés kiértékeléséhez• Blokkat tömörít: a hasonló adatokat blokkokba

teszi és a blokkokat tömöríti, ezáltal a keresés+visszaállítás költségét javítja

Master Informatique 2010.03.24. 31dr. Kiss Attila XML kutatási irányok

Strukturális indexfa (SIT)

• A strukturális ismétlődéseket megszünteti.• Két testvér csúcsot összevon, ha

– a gyökérből ugyanolyan úttal érhetők el– a leszármazottaikhoz tartozó útvonalak

rendezett listája megegyezik (dokumentum sorrend szerinti rendezésben).

• SIT index készítése:– Az XML fájl egyszeri lineáris végigolvasása.– Ha testvér gyökerű megegyező részfákat

találunk, akkor összevonjuk a részfákat.

Master Informatique 2010.03.24. 32dr. Kiss Attila XML kutatási irányok

/

d

b

d

a

b

d e

c c

e

/

d

a

b

d e

c

e

c

d

c b

d

SIT index készítése

0

1

2

3 4

5 6 7

8 9 10

0

1

2

3 4

5 6,6 7

8 9 10,8,10 ,9

,7

,10

Master Informatique 2010.03.24. 33dr. Kiss Attila XML kutatási irányok

XQzip működése

InputXML

Document

SAXParser

Compressor(gzip)

IndexConstructor

b1 a1 c1a2 ... bi ckaj

a c b...

a5c7 ... b9

Parser

Executor

BufferManager

SIT

Hashtable

Compressed blocks

Query Processor

Query

QueryResult

Buffer Pool

XQzip Repository

• Indexelő: elkészíti a SIT indexet• Tömörítő

– A szemantikusan összetartozó (például azonos címkéjű) értékeket blokkokba teszi, majd– minden blokkot gzip-pel tömörít.

• Query Processor: lekérdezés feldolgozó– Elemez– Végrehajt: a SIT indexet használva értékeli ki a lekérdezést– Pufferkezelés ( LRU algoritmussal)

Master Informatique 2010.03.24. 34dr. Kiss Attila XML kutatási irányok

SIT index készítésének költsége

N: az XML dokumentum elemeinek (címkék + attribútumok) száma

• Időbonyolultság:– Legrosszabb eset: O(N │SIT │)– Átlagos eset: O(N)

• Tárbonyolultság:– az összevonáshoz használt 2 részfa: ≤ 2│SIT │– Az index csúcsokban tároljuk az összevont

csúcsok azonosítóit: O(N)

Master Informatique 2010.03.24. 35dr. Kiss Attila XML kutatási irányok

Mekkora legyen a blokkméret ?• A blokkat gzip-pel tömörítjük.

• A két véglet:– Külön blokk minden értéknek– Egy blokkba az összes azonos címkéjű érték

• Hatás:– Kis blokk: lekérdezési idő ↑tömörítési arány↓– Nagy blokk: lekérdezési idő ↓tömörítési arány↑– A helyes arány tapasztalati minták segítségével

állítható be.

Master Informatique 2010.03.24. 36dr. Kiss Attila XML kutatási irányok

Mitől függ a blokkméret?

Minták az adathalmazra és lekérdezésekre.

• Adathalmazban a szövegek, számok, aránya, szövegek bonyolultsága

• Lekérdezések szelektivitása

• Különböző típusú minták alapján a tapasztalati optimális blokkméret 600-1000 rekord.

Master Informatique 2010.03.24. 37dr. Kiss Attila XML kutatási irányok

Blokkméret

0

1

2

3

4

5

6

7

8

9

10

10 100 1000 10000

Block Size (# data records)

Qu

eryi

ng T

ime

(sec

)

SwissP rot-L SwissP rot-M SwissP rot-H

XMark-L XMark-M XMark-H

OMIM-L OMIM-M OMIM-H

13.612.9

600

Master Informatique 2010.03.24. 38dr. Kiss Attila XML kutatási irányok

Milyen lekérdezésekre jó a XQzip?

• Minden XPath fel-le irány (axes) használható, az oldalirányok (preceding, following siblings) viszont nem.

• beágyazott, összetett predikátumok– and / or / not kifejezések

• Aggregáció: sum, count, average, max, min• Unió: például L1/(L2 + L3 + L4)

– L1 : //a[b = “Crete”] (prefix) L2 : c– L3 : d[f/count() >100] L4 : e[//g]

Master Informatique 2010.03.24. 39dr. Kiss Attila XML kutatási irányok

Lekérdezés kiértékelése

• Az indexfa mélységi bejárása alapján• A korábbi lekérdezések miatt kibontott blokkok a

pufferben maradnak, először ott keressük• Ha nincs ott, akkor a Hash tábla alapján

megtaláljuk azokat a tömörített blokkokat, amelyeket vissza kell állítani.

• Pufferkezelés: Least Recently Used módszerrel

Master Informatique 2010.03.24. 40dr. Kiss Attila XML kutatási irányok

A SIT index előnye

• Kísérleti eredmények alapján:

• Indexméret : 1%-a az eredeti méretnek

• A keresés kétszer gyorsabb, mint az F&B-index esetén.

• Az index készítése 3-szor gyorsabb mint az F&B-index esetén.

Master Informatique 2010.03.24. 41dr. Kiss Attila XML kutatási irányok

Tömörítési arány: 1- méret(tömörített XML)/méret(XML)

0

10

20

30

40

50

60

70

80

90

100

XMark OMIM DBLP SwissProt Treebank PSD Shakespeare Lineitem

Data Sources

Co

mp

ressio

n R

ati

o (

%)

XQzip+ XQzip XMill gzip XGrind

XQzip nagyjából olyan mint az XMill és gzip, de lekérdezhető.

XQzip+ tartalmazza a SIT index méretét, XQzip nem.

17% -kal jobb, mint az XGrind.

Master Informatique 2010.03.24. 42dr. Kiss Attila XML kutatási irányok

XCQ tömörítés

• Négy technikát használ– DTD fát és SAX eseményfolyam elemzést (DSP)– Parciális ösvényalapú adatcsoportosítás formátumot (PPB) – Blokkstatisztika lenyomatú indexelés (BSS) – elérési módszerek (Access Methods)

XCQCompression

Engine

XCQQueryingEngine

DTD

XMLdokumentum

tömörítettdokumentum

eredmény

XPath lekérdezés

DSP

PPG format BSS indexing Access

Methods

Master Informatique 2010.03.24. 43dr. Kiss Attila XML kutatási irányok

DTD fa és SAX (DSP)

• Cél: – A DTD sémaleírás felhasználása

• Előnyök:– Csak azt kell kódolni, ami DTD sémából nem

következik– Az útvonalak alapján csoportosítja az adatokat

Master Informatique 2010.03.24. 44dr. Kiss Attila XML kutatási irányok

DSP – Input és Output

A DTD fa

AdatfolyamDSP

Modul

Struktúrafolyam

SAX események folyama

Master Informatique 2010.03.24. 45dr. Kiss Attila XML kutatási irányok

Első lépés – a DTD fa készítése

<!ELEMENT library (entry*)><!ELEMENT entry (author, title, year, publisher?, (paper|course_note|book), num_copy)><!ELEMENT author EMPTY><!ATTLIST author name CDATA><!ELEMENT title (#PCDATA)><!ELEMENT year (#PCDATA)><!ELEMENT publisher (#PCDATA)><!ELEMENT paper EMPTY><!ELEMENT course_note EMPTY><!ELEMENT book EMPTY><!ELEMENT num_copy (#PCDATA)>

Key:

: PCDATA

library

author(name)

title year num_copy

paper

course_note

book

entry*

publisher? |

Master Informatique 2010.03.24. 46dr. Kiss Attila XML kutatási irányok

Minek mi felel meg a DTD fán?

<!ELEMENT library (entry*)><!ELEMENT entry (author, title, year, publisher?, (paper|course_note|book), num_copy)><!ELEMENT author EMPTY><!ATTLIST author name CDATA><!ELEMENT title (#PCDATA)><!ELEMENT year (#PCDATA)><!ELEMENT publisher (#PCDATA)><!ELEMENT paper EMPTY><!ELEMENT course_note EMPTY><!ELEMENT book EMPTY><!ELEMENT num_copy (#PCDATA)>

Key:

: PCDATA

library

author(name)

title year num_copy

paper

course_note

book

entry*

publisher? |

Master Informatique 2010.03.24. 47dr. Kiss Attila XML kutatási irányok

2. lépés DSP feldolgozás

• A következő XML dokumentumot fogjuk a DTD alapján feldolgozni.

• A feldolgozás során egy struktúrafolyam és egy adatfolyam keletkezik.

<library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>

Master Informatique 2010.03.24. 48dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “library”

Structure Stream:

Data Streams:

<library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>

entry*

publisher? |

Master Informatique 2010.03.24. 49dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “entry”

Structure Stream:

Data Streams:

T

Match!

<library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>

entry*

publisher? |

Master Informatique 2010.03.24. 50dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “author”, att0:name=“Tom”End element – “author”

Structure Stream:

Data Streams:

T

Match!

d0

, d0

d0: Tom

<library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>

entry*

publisher? |

Master Informatique 2010.03.24. 51dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “title”PCDATA – “Introduction to &#34;OS &#34;”End element – “title”

Structure Stream:

Data Streams:

T, d0, d1

d0: Tomd1: Introduction to &#34;OS &#34;

<library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>

entry*

publisher? |

Master Informatique 2010.03.24. 52dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

SAX Events:Start element – “year”PCDATA – “2003”End element – “year”Start element – “course_note”

Structure Stream:

Data Streams:

T, d0, d1, d2

d0: Tomd1: Introduction to &#34;OS &#34;d2: 2003

Not match

!

F

, F

<library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>

entry*

publisher? |

Master Informatique 2010.03.24. 53dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “course_note”End element – “course_note”

Structure Stream:

Data Streams:

T, d0, d1, d2, F

d0: Tomd1: Introduction to &#34;OS &#34;d2: 2003

p1

Not match

!

Match!

, p1

<library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>

p1

p0 p2

entry*

publisher? |

Master Informatique 2010.03.24. 54dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “num_copy”PCDATA – “3”End element – “num_copy”End element – “entry”

Structure Stream:

Data Streams:

T, d0, d1, d2, F, p1

d0: Tomd1: Introduction to &#34;OS &#34;d2: 2003d4: 3

<library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>

entry*

publisher? |

Master Informatique 2010.03.24. 55dr. Kiss Attila XML kutatási irányok

3 lépés – az output generálása

Struktúrafolyam

SZÓTÁRAz útvonalak és azonosítójuk.d0: /library/entry/author/@named1: /library/entry/title/text()d2: /library/entry/year/text()d3: /library/entry/publisher/text()d4: /library/entry/num_copy/text()

d0

d1

d2

d3

d4

Master Informatique 2010.03.24. 56dr. Kiss Attila XML kutatási irányok

A XCQ tömörítés• Négy technikát használ (a 2-3 technikát most átugorjuk)

– DTD fát és SAX eseményfolyam elemzést (DSP)– Parciális ösvényalapú adatcsoportosítás formátumot (PPB) – Blokkstatisztika lenyomatú indexelés (BSS) – elérési módszerek (Access Methods)

XCQCompression

Engine

XCQQueryingEngine

DTD

XMLdokumentum

tömörítettdokumentum

eredmény

XPath lekérdezés

DSP

PPG format BSS indexing Access

Methods

Master Informatique 2010.03.24. 57dr. Kiss Attila XML kutatási irányok

4. Elérési módszerek

• Cél– Lekérdezések kiértékelése a tömörítés alapján

• 4 féle lekérdezésre jó– Szelekciós– Strukturális– Strukturális aggregációs– Ösvényalapú aggregációs

Master Informatique 2010.03.24. 58dr. Kiss Attila XML kutatási irányok

Szelekciós

//entry[author/@name=“Jess” and publisher/text()=“ABC”]

Structure Stream

Szótár

d0: /library/entry/author/@named1: /library/entry/title/text()d2: /library/entry/year/text()d3: /library/entry/publisher/text()d4: /library/entry/num_copy/text()

d0

d1

d2

d3

d4

Master Informatique 2010.03.24. 59dr. Kiss Attila XML kutatási irányok

Strukturális

/library/entry/author

Structure Stream

Szótár

d0: /library/entry/author/@named1: /library/entry/title/text()d2: /library/entry/year/text()d3: /library/entry/publisher/text()d4: /library/entry/num_copy/text()

d0

d1

d2

d3

d4

Master Informatique 2010.03.24. 60dr. Kiss Attila XML kutatási irányok

Strukturális aggregációs

count(//entry)

Structure Stream

Szótár

d0: /library/entry/author/@named1: /library/entry/title/text()d2: /library/entry/year/text()d3: /library/entry/publisher/text()d4: /library/entry/num_copy/text()

d0

d1

d2

d3

d4

Master Informatique 2010.03.24. 61dr. Kiss Attila XML kutatási irányok

Ösvényalapú aggregációs

sum(//num_copy/text()=1)

Structure Stream

Szótár

d0: /library/entry/author/@named1: /library/entry/title/text()d2: /library/entry/year/text()d3: /library/entry/publisher/text()d4: /library/entry/num_copy/text()

d0

d1

d2

d3

d4

Master Informatique 2010.03.24. 62dr. Kiss Attila XML kutatási irányok

Tömörítési arány XMill-lel azonos

0

0.5

1

1.5

2

2.5

3

3.5

4

Com

pres

sion

rat

io (

bits

/byt

e)

Gzip

XMill

XCQ

XGrind

Master Informatique 2010.03.24. 63dr. Kiss Attila XML kutatási irányok

Tömörítési idő

Compression Time

0

10

20

30

40

50

60

70

80

90

Weblog SwissProt DBLP TPC-H XMark Shakespeare

Com

pres

sion

Tim

e (s

)

gzipXMillXCQXGrind

Master Informatique 2010.03.24. 64dr. Kiss Attila XML kutatási irányok

Visszaállítási idő

Decompression Time

0

5

10

15

20

25

30

35

40

45

50

Weblog SwissProt DBLP TPC-H XMark Shakespeare

Dec

ompr

essi

on T

ime

(s)

gzip

XMill

XCQ

XGrind

Master Informatique 2010.03.24. 65dr. Kiss Attila XML kutatási irányok

Lekérdezésekben jobb mint az XGrind

TPC-H

0

2

4

6

8

10

12

14

0.01% 0.40% 1.00% 10.00% 50% 75.00%Selectivity (%)

Res

pons

e T

ime

(s)

XCQ - exact

XGrind - exact

XCQ - range

XGrind - range

XMark

0

5

10

15

20

25

30

35

0.01% 0.40% 1.00% 10.00% 50% 75.00%Selectivity (%)

Res

pons

e T

ime

(s)

XCQ - exact

XGrind - exact

XCQ - range

XGrind - range

Weblog

0

5

10

15

20

25

0.01% 0.04% 1% 10% 50% 75%

Selectivity (%)

Res

pons

e T

ime

(s)

XCQ - exact

XGrind - exact

XCQ - range

XGrind - range

DBLP

0

5

10

15

20

25

30

0.02% 0.40% 1% 10% 50% 75%Selectivity (%)

Res

pons

e T

ime

(s)

XCQ - exactXGrind - exactXCQ - rangeXGrind - range

Master Informatique 2010.03.24. 66dr. Kiss Attila XML kutatási irányok

Néhány alapcikk az XML tömörítési témából

• XMILL: An Efficient Compressor for XML Data by Liefke and Suciu, in SIGMOD'2001

• P. M. Tolani and J. R. Haritsa. XGRIND: A Query-friendly XML Compressor. IEEE ICDE Conf., pp. 225-234, 2002.

• M. Girardot and N. Sundaresan. Millau: an encoding format for efficient representation and exchange of XML over the Web. WWW Conf., pp. 747-765, 2000.

• H. Ishikawa, S. Yokoyama, S. Isshiki and M. Ohta. Project Xanadu: XML- and Active-Database-Unified Approach to Distributed E-Commerce. Int. Workshop on DEXA, 2001.

• A.Arion, A. Bonifati, G. Costa, S. D’Aguanno, I. Manolescu, A. Pugliese, Efficient Query Evaluation over XML Compressed Data, EDBT 2004.

• JunKi Min, MyungJae Park, ChinWan Chung, XPRESS: A Queriable Compression for XML Data, EDBT 2004.

• Wilfred NG, Wai-Yeung LAM, Peter WOOD and Mark LEVENE. XCQ: A Queriable XML Compression System. Accepted and to appear: An International Journal of Knowledge and Information Systems, (2005).

Master Informatique 2010.03.24. 67dr. Kiss Attila XML kutatási irányok

http://webdocs.cs.ualberta.ca/~gleighto/research/xml-comp.html

Master Informatique 2010.03.24. 68dr. Kiss Attila XML kutatási irányok

Köszönöm a figyelmet!

Tömörített állomány

Recommended