Title: XML adatb
1XML adatbázisok strukturális indexelése(Structura
l indexes of XML Databases)
- dr. Kiss Attila
- kiss_at_inf.elte.hu
2Az eloadás vázlata
- Motiváció XML alapú virtuális obszervatóriumok
- XML dokumentumok lekérdezéseinek kiértékelése
- XML dokumentumok indexelése
- Strukturális indexek
- Strukturális indexek alkalmazása osztott XML
dokumentumok esetén - XML adatbázisokkal kapcsolatos további kutatási
feladatok - Összefoglalás
3- Motiváció XML alapú virtuális obszervatóriumok
- XML dokumentumok lekérdezéseinek kiértékelése
- XML dokumentumok indexelése
- Strukturális indexek
- Strukturális indexek alkalmazása osztott XML
dokumentumok esetén - XML adatbázisokkal kapcsolatos további kutatási
feladatok - Összefoglalás
4Nagy tudományos adatbázisok
- Nagyon nagy adathalmazokat elsosorban
méromuszerek állítanak elo - Szenzorok
- Teleszkópok
- Részecskegyorsítók
- Génlapok
5Virtuális obszervatóriumok
- A tudományos közösségek felismerték, hogy együtt
hatékonyabban tudják feldolgozni, elemezni az
adathalmazokat. - Ha csatlakoznak egy Virtuális Obszervatórium-
hoz, akkor - megoszthatják az adataikat, feldolgozási
eljárásaikat, eredményeiket és - hozzáférhetnek mások adataihoz, eljárásaihoz,
eredményeihez.
6A virtuális obszervatórium feladatai
- Osztott XML adatbázisok Több terabájtnyi
speciális formátumú (elsosorban XML) adat osztott
tárolása hatékony struktúrában. - Hatékonyság Az adatok gyors eléréséhez
lekérdezonyelvek, valamint olyan struktúrák
definiálása, amelyek segítségével a lekérdezo
nyelven megfogalmazott kérdéseket gyorsan ki
lehet értékelni. - XML alapú adatcsere Több felhasználó kezelése,
felhasználókhoz tartozó virtuális adatbázisok
kezelése, eredmények, eljárások nyilvánossá
tétele. - Adatintegráció Az adatelemzéshez szükséges
adattárház építése, elofeldolgozás. - Adatbányászat Hatékony, lehetoség szerint GRID
alapú osztott adatbányászati módszerek beépítése. - Vizualizáció Az elemzések eredményeinek
vizualizációja.
7Az International Virtual Observatory Alliance
architektúrája
Forrás http//www.ivoa.net/
8NCBI GEO virtuális obszervatórium
- Génlap kísérletek nyilvános adatai XML
dokumentumokban - Kb. 600 gigabájt (2009. február)
Egy génlap kísérlet leírása XML fájlban, és a
neki megfelelo XML gráf.
9A feladat megfogalmazása
- A következo feladatot vizsgáljuk
- Nagy méretu (osztott) XML adatbázisok gyors
lekérdezése - Két lehetséges út
- Az XML adatbázist relációs adatbázisban tároljuk,
az XML lekérdezést SQL lekérdezéssé
transzformáljuk, majd az eredményt
visszaalakítjuk. - Az XML adatbázishoz indexeket készítünk, és az
eredeti lekérdezést az indexek segítségével
számoljuk ki.
10- Motiváció XML alapú virtuális obszervatóriumok
- XML dokumentumok lekérdezéseinek kiértékelése
- XML dokumentumok indexelése
- Strukturális indexek
- Strukturális indexek alkalmazása osztott XML
dokumentumok esetén - XML adatbázisokkal kapcsolatos további kutatási
feladatok - Összefoglalás
11Az XML dokumentumnak megfelelo adatgráf
- Az adatgráf egy irányított, gyökeres, címkézett
gráf. -
- az adatcsúcsok halmaza.
- véges, nem üres ábécé, (az
elemnevek, attribútumnevek halmaza). - az élek halmaza
-
-
- alapélek.
-
- referenciaélek.
- a gráf egyetlen gyökere.
- címkézo függvény
12Publikációk XML dokumentumban
- ltCSDepartmentgt
- ltPhDStudentsgt
- ltStudent id"s1"gt
- ltNamegtJohnlt/Namegt
- ltPapersgt
- ltPaper id"pp1" gt
- ltTitlegtABClt/Titlegt
- ltAuthorgtDr.Benlt/Authorgt
- ltAuthor idref"p1" gt
- lt/Authorgt
- lt/Papergt
- lt/Papersgt
- lt/Studentgt
- ltStudent id"s2"gt
- ltNamegtTomlt/Namegt
- lt/Studentgt
- lt/PhDStudentsgt
- ltProfessorsgt
- ltProfessor id"p1" gt
-
- ltNamegtDr. Kisslt/Namegt
- ltPapersgt
- ltPaper idref"pp1" gt lt/Papergt
- ltPapergt
- ltTitlegtDEFlt/Titlegt
- lt/Papergt
- lt/Papersgt
- lt/Professorgt
- ltProfessor id"p2"gt
- ltNamegtDr. Bakerlt/Namegt
- ltPapersgt
- ltPapergt
- ltTitlegtXYZlt/Titlegt
- lt/Papergt
- lt/Papersgt
- lt/Professorgt
- lt/Professorsgt
- lt/CSDepartmentgt
13Az XML adatgráf
14Reguláris lekérdezések
- Az XML-nek számos lekérdezo nyelve létezik.
- XQuery, XPath, UnQL, Lorel, XQL, XML-QL, stb.
- Ezek mindegyike a reguláris (ösvény)kifejezéseken
alapul. - 3 muvelet használható
- Konkatenáció . vagy /
- Unió
- Iteráció
- Rövidítések
- _ - az ábécé tetszoleges eleme
- // - (_)
- Például //(Student Professor)//Paper/Title
15Reguláris lekérdezések
- Egy (u, v) csúcspár illeszkedik az R reguláris
lekérdezésre, ha van olyan út u-ból v-be, amely
címkesorozata illeszkedik a reguláris
kifejezésre. - Az R lekérdezés eredménye
- I inputhalmaz és O outputhalmaz esetén
- , ahol (u, v) csúcspár illeszkedik az
R reguláris lekérdezésre - Általában Igyökér és OV.
- Minden R reguláris kifejezéshez megadható egy
véges, nem determinisztikus automata (NFA), amely
az L(R) nyelvet ismeri fel. Ennek állapotátmenet
gráfja az R lekérdezés gráfja.
16A lekérdezés kiértékelése az automata alapján
B
D
- //B/D lekérdezés gráfja
- Input I0 Output O0,1,,15
q0
q1
q2
q0
A
0
A
1
q0
q0
B
8
q0
C
B
2
6
q0
A
D
9
13
D
3
q0
q1
A
7
B
E
10
14
C
A
4
q0 q2
q0 q2
5
D
12
11
E
F
15
Folytatva a bejárást az eredmény
(0,3),(0,11),(0,13)
17Áttérés élcímkézett gráfokra
Csúcscímkézett gráf
A megfelelo élcímkézett gráf
A lekérdezés gráfja élcímkézett, ezért az
adatgráfot is élcímkézetté alakítjuk.
18SD-gráf
- A reguláris kifejezésre illeszkedést
visszavezetjük egyszeru elérhetoségre. - A lekérdezés gráfját összekapcsolva az
adatgráffal kapjuk az SD- (state-data) gráfot. - Az SD gráf nem feltétlen összefüggo.
- Csúcsai (adatcsúcs, állapot) párok
- Címkézett élei ha egy adott állapotban egy adott
csúcsban vagyunk, akkor adott címkéju adat élen
melyik csúcsba, milyen állapotba jutunk.
19Az R a/(bc)/a és egy adatgráf SD-gráfja
b
Lekérdezés gráfja
Adatgráf
1
a
b
a
a
s0
s1
s2
2
c
a
5
3
c
a
SD-gráf
4
1,s0
1,s1
a
a
Az SD-gráfban kezdo állapotból végállapotba hová
lehet eljutni?
2,s0
2,s1
2,s2
a
b
c
5,s1
3,s1
3,s0
Eredmény (1,4) , (1,5)
a
a
4,s2
5,s2
a
4,s1
20SD-gráf reprezentálása relációs adatbázisban
Kiss05
- Tulajdonságok
- Az adatgráfot és a lekérdezés gráfját relációkkal
reprezentálva az SD gráfnak megfelelo reláció a
két reláció összekapcsolása. - A lekérdezés elérhetoséget jelent az SD-gráfban.
- Az elérhetoség rekurzív, negációt nem tartalmazó
DATALOG programmal adható meg a reprezentáló
relációkra nézve. - A Datalog program rekurzív SQL utasításra írható
át. - Az SQL kiértékelését a relációkra vonatkozó
indexeléssel gyorsíthatjuk.
211. lépés Az adatgráf átírása élcímkézett gráfra
222. lépés A lekérdezés gráfjának megadása
233. lépés Felírjuk a DATALOG, illetve SQL
lekérdezést
244. lépés Eloállítjuk a reprezentáló relációkat,
és kiszámítjuk az SQL lekérdezést
Az eredmény 4,5,6
25- Motiváció XML alapú virtuális obszervatóriumok
- XML dokumentumok lekérdezéseinek kiértékelése
- XML dokumentumok indexelése
- Strukturális indexek
- Strukturális indexek alkalmazása osztott XML
dokumentumok esetén - XML adatbázisokkal kapcsolatos további kutatási
feladatok - Összefoglalás
26Az XML indexeléseinek osztályozása
- Értékek indexelése
- az atomi értékeket (például data(//emp/salary))
indexeljük - általában B-fákat használunk
- 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ítheto - Strukturális címkézés (számozási sémák)
- az elod/utód reláció gyors eldöntésére szolgál
- Strukturális indexek
- materializálja adott típusú ösvénykifejezések
eredményeit
27XML-fák pre/post számozása Dietz82
- A fa preorder/postorder bejárása alapján a
(pre(x),post(x)) számpárt rendeljük az x
csúcshoz, attól függoen, hogy hányadik a bejárási
sorrendben. - Például
- 1 lt 5 és 7 gt 3 gt (1,7)-nek utódja az (5,3)
(1,7)
(6,6)
(2,4)
x-nek y az utódja ltgt pre(x) lt pre(y) és
post(x) gt post(y)
(7,5)
(3,1)
(5,3)
(4,2)
28Intervallum kódolás LiMoon VLDB 2001
- Minden x csúcshoz tartozzon egy (order(x),
size(x)) számpár, az alábbi tulajdonságokkal - Ha x-nek y a gyereke, akkor
- order(x) lt order(y)
- order(y)size(y) lt order(x) size(x)
- Ha a preorder sorrend szerint x megelozi az y
testvérét, akkor - order(x) size(x) lt order(y)
(1,100)
(41,10)
(10,30)
(45,5)
(25,5)
(11,5)
(17,5)
x-nek y az utódja ltgt order(x) lt order(y) és
order(y) lt order(y) size(x)
29- Motiváció XML alapú virtuális obszervatóriumok
- XML dokumentumok lekérdezéseinek kiértékelése
- XML dokumentumok indexelése
- Strukturális indexek
- Strukturális indexek alkalmazása osztott XML
dokumentumok esetén - XML adatbázisokkal kapcsolatos további kutatási
feladatok - Összefoglalás
30A strukturális indexelési technikák megjelenése
31A DG-index (DataGuide) Goldman Widom VLDB
97
- Legyen egy XML dokumentum gráfja DB.
- A DB gráf DG-indexe (Adatvezeto indexe) egy olyan
G gráf, melyre a következok teljesülnek - A DB minden címke útvonala szerepel G-ben is.
- G lefedi DB-t
- A G minden címke útvonala szerepel DB-ben is.
- G pontosan DB-t fedi le.
- A G minden címke útvonala egyedi egy adott
csúcsból kiindulva.
32A DG-index nem egyértelmu
- A DG-index tömörebben (kisebb gráfon) tárolja a
kiolvasható címke útvonalakat. - A G1 és G2 is DG-indexe a DB-nek.
A
B
B
DB G1 G2
33Eros DG-index
- Legyen p, p két címke útvonal és G egy gráf.
- Legyen p G p , ha p(G) p(G)
- vagyis p és p nem különböztetheto meg a G
gráfon. - G a DB eros DG-indexe, ha G és DB
ekvivalenciarelációk megegyeznek. - Például
- G1 eros G2 nem eros
- A.C(DB) 5 , B.C(DB) 6, 7
- A.C(G2) 20 , B.C(G2) 20
DB G1 G2
34Naiv index
- Definiáljunk egy ekvivalenciarelációt a DB gráf
csúcsain - uv ha u és v ugyanazokkal a címke útvonalakkal
érhetok el a gyökérbol. (Az u és v
megkülönböztethetetlen csúcsok.) - A Naiv index is egy gráf
- Az indexcsúcsok az ekvivalenciaosztályok.
- Létezik indexél s-bol s-be, ha a DB-ben létezik
él az s egy adatcsúcsából az s egy adatcsúcsába. - Egy osztályban csak azonos címkéju adatcsúcsok
lehetnek. Ez a címke lesz az indexcsúcs címkéje. - Tulajdonság
- biztonságos és pontos a reguláris kifejezésekre
azaz tetszoleges R reguláris lekérdezést az
indexen kiértékelve ugyanazt kapjuk, mint ha az
adatgráfon értékeltük volna ki, és ez fordítva is
igaz. - Probléma költséges az eloállítása
(PSPACE-complete)
351-index Milo Suciu, LNCS 1997
- ÖtIet használjunk biszimuláció
ekvivalenciarelációt a megkülönböztet-hetetlenségi
ekvivalencia helyett. - Erosebb lesz a feltétel ? finomabb osztályozást
kapunk ? több indexcsúcs lesz. - Biztonságos és pontos indexet kapunk.
- A biszimulációt könnyebb kiszámolni (PTIME).
36Biszimuláció
- A ? biszimuláció a csúcsokon értelmezett
ekvivalenciareláció - x1 ? x2, ha
- x1 és x2 címkéje megegyezik
- ha x1 ? x2 és létezik y1-bol él x1-be, akkor
létezik egy olyan y2-bol él x2-be, melyre y1 ?
y2, és ez fordítva is igaz.
?
b
b
?
x1
x2
a
a
371-index
- Az u és v csúcsok biszimulánsak (u b v), ha
valamilyen biszimuláció szerint egy osztályba
tartoznak. - Tulajdonság (Az 1-index a naiv index finomítása)
- u b v ? u v
- Az 1-index a b ekvivalenciarelációnak megfelelo
osztályozása a csúcsoknak.
38A biszimuláció kiszámítása
- Az üres halmaz biszimuláció.
- Ha R, R két biszimuláció, akkor R U R is
biszimuláció. - Mindig létezik maximális biszmuláció.
- A maximális biszimuláció kiszámítása
- R G csúcsaiból alkotott párok halmaza
- ha van olyan (x1, x2) ? R, ami megsérti a
definíciót, akkor dobjuk ki (x1, x2)-t az R-bol - Álljunk meg, ha már nincs mit kidobni.
- A futási ido O(mn), ahol m az élek, n a csúcsok
száma. - Javítani lehet a PT-algoritmussal
- O((mn)log(mn)) Paige Tarjan 87
39Példa 1-indexre
paper
paper
1
1
13
section
section
14
title
section
2
2,4,8,13
section
8
4
section
15
3
exp
exp
title
algorithm
exp
algorithm
16
title
15,16
10
3,5,9,14
6,10
6
9
algorithm
title
5
title
18
proof
about
11
17,18
proof
17
7
proof
7
about
11
about
uses
proof
12
12
/paper/section/algorithm
uses
Adatgráf
1-index
401-index
- Ha a gráf fa, akkor az
- 1-index, naiv index, eros DG-index megegyezik
- Az 1-index a stabilitás fogalmával is
definiálható. - Egy indexcsúcs stabil, ha az adatcsúcsaihoz
ugyanazok a szülo indexcsúcsok tartoznak. - Az 1-index minden indexcsúcsa stabil.
-
u
u
Iu
Iu
Iv
Iv
v
v
41Mire legyen pontos az index?
- Elony Az 1-index tetszoleges reguláris
kifejezésre nézve pontos. - Hátrány Emiatt túl nagy az indexgráf.
- Ötlet Válasszuk ki, hogy milyen
lekérdezéshalmazra legyen pontos az index. - A halmazhoz nem tartozó lekérdezéseket is az
indexen értékeljük ki - A biztonságosság garantálja, hogy minden
megoldást megkapunk, - a pontosság hiánya miatt hamis adatcsúcsokat is
kaphatunk, amiket még ellenorizni kell.
42Lekérdezéshalmazokhoz készített pontos indexek
- Fontosabb lekérdezéshalmazok
- //a0/a1//ai (iltk) alakú, legfeljebb k-hosszú
lekérdezések - A(k)-index
- Gyakori lekérdezések (dinamikus indexek)
- APEX, D(k)-index
- //S0/S1//Sk alakú, alternatív (SAPE)
lekérdezések, ahol Si címkehalmazt jelöl - DL-1, DL-A(k)-index
- Elore-hátra lekérdezések (Például parent és child
tengely is szerepel.) - FB-index
43A(k)-Index Kaushik et al. 02
- A //a0/a1//ai (iltk) alakú lekérdezésekre pontos
- Az ekivalenciát a k-biszimuláció határozza meg.
- A ?k (k-biszimuláció) rekurzív definíciója
- Az u és v csúcsra u ?0 v, ha u és v címkéje
megegyezik, - u ?k v ha u ?k-1 v és
- ha u-bol van él u-ba, akkor létezik olyan v,
amelybol van él v-be és u ?k-1 v - ha v-bol van él v-be, akkor létezik olyan u,
amelybol van él u-ba és u ?k-1 v.
44A(k)-index
- Egyre jobban finomodó (lt) indexeket kapunk
- A(0) a címkék szerinti ekvivalencia
- A(0)ltA(1)ltA(2)ltltA(k) 1-index elég nagy k-ra.
- Stabilitással is definiálható, ezért a
PT-algoritmussal számolható ki. - Egy indexcsúcs stabil az A(k)-indexben, ha minden
adatcsúcsának ugyanazok az indexszüloi az
A(k-1)-indexben.
45Hasítás (Split) muvelet
R
R
R
R
A
B
A
B
A
B
A
B
C3
C1
C2
C2,C3
C1
C2,C3
C1
C1,C2,C3 C4,C5,C6
C6
C4
C5
C4
C5,C6
C4,C5,C6
Adatgráf A(2) (1-index)
A(1) A(0)
Az algoritmusok hasítási muveletet használnak -
ha egy osztály nem stabil, akkor kettévágjuk, úgy
hogy stabil legyen
46Finomítási sorozat (1. lépés)
R
R
R
R
A
B
A
B
A
B
A
B
C3
C1
C2
C2,C3
C1
C2,C3
C1
C1,C2,C3 C4,C5,C6
C6
C4
C5
C4
C5,C6
C4,C5,C6
Adatgráf A(2) (1-index)
A(1) A(0)
47Finomítási sorozat (2. lépés)
R
R
R
R
A
B
A
B
A
B
A
B
C3
C1
C2
C2,C3
C1
C2,C3
C1
C1,C2,C3 C4,C5,C6
C6
C4
C5
C4
C5,C6
C4,C5,C6
Adatgráf A(2) (1-index)
A(1) A(0)
48APEX Chung et al., SIGMOD 2002
- APEX Adaptive Path IndEx for XML Data
- A címke szerinti osztályozásból, az A(0)-indexbol
indul ki. - A gyakori lekérdezéseket figyelembe csak azokat
az osztályokat hasítja ketté, amelyek a gyakori
lekérdezések megválaszolásához szükségesek. (A
gyakori lekérdezésekre pontos index.) - Az indexcsúcsokat Hash-táblában tartja nyilván,
amit hasításkor módosít.
49APEX index készítése
root
0
publications
1
author
author
editor
editor
book
4
6
10
12
2
name
name
name
name
title
5
13
3
7
11
book
8
title
9
501. lépés Címke szerinti osztályozás
root
0
publications
1
author
author
editor
editor
book
4
6
10
12
2
name
name
name
name
title
5
13
3
7
11
book
8
1aAz azonos címkéju csúcsokat összevonjuk.
title
9
511. lépés Címke szerinti osztályozás
root
publications
editor
author
book
title
name
1b Hozzáadjuk az osztályok közti éleket
fordított sorrendben.
521. lépés Címke szerinti osztályozás
root
publications
editor
author
book
title
name
1c Letároljuk, hogy az osztályokhoz milyen
adatcsúcsok tartoznak
adatcsúcsok3,5,7,11
531. lépés Címke szerinti osztályozás
root
publications
editor
author
book
title
name
adatélek(2,3)(4,5)
1d Letároljuk, hogy az indexélek milyen
adatéleknek felelnek meg.
541. lépés Címke szerinti osztályozás
root
publications
editor
author
book
title
Indexauthorbookeditornamepubl.title
name
1e Az indexcsúcsokhoz készítünk egy Hash indexet.
552. lépés Keresés az index alapján
- //namea name indexcsúcsból kiolvassuk az
adatcsúcsokat - //author/namea name indexcsúcsból azokat az
adatcsúcsokat választjuk ki, amelyekhez van
adatél az author indexcsúcs adatcsúcsaihoz - Ha ez gyakori feladat, akkor ezt a kiválasztást
már elore elvégezhetjük, azaz - kettévágjuk a name indexcsúcsot és
- a Hash-indexet is frissítjük.
563. lépés Az index frissítése a gyakori
lekérdezések alapján
//author/name
root
publications
editor
author
book
title
name
name
573. lépés Az index frissítése a gyakori
lekérdezések alapján
//book/author/name
root
publications
editor
author
book
title
name
name
name
58DL-1-index Kiss06
- Az //S0/S1//Sk alakú alternatív lekérdezésekre
(SAPE Simple Alternation Path Expression)
pontos index. - Dinamikus index (Dynamic labelling) elore adott
véges sok SAPE lekérdezéshez igazítja az
A(0)-indexet.
59A //(de)/f SAPE lekérdezés
Adatgráf
A lekérdezés //(de)/f R S0/S1 ,ahol S0
d,e S1 f A (4,9), (5,10), (6,11) és
(7,12) utak illeszkednek az R-re. A lekérdezés
eredménye TG(R) 9,10,11,12
a
0
1
2
3
b
b
c
6
4
5
7
8
d
d
e
e
d
f
9
10
11
12
13
f
f
f
g
60Matematikai elokészítés
A továbbiakban minden halmazról, gráfról
feltesszük a végességet.
- u csúcs gyerekei
- Succ(u) v u-ból létezik él v-be
- H halmaz gyerekei
- Succ(H)?Succ(u)
- C halmazrendszer gyerekei
- Succ(C) Succ(H) H ? C
- CRF(C) a C halmazrendszer legdurvább finomítása
(C, ha C egy partíció)
u? H
61A stabilitás definíciója hasítási muvelettel
- Definíció split0(C) CRF(C),
- split(C) CRF(C U
Succ(CRF(C))) - splitk1(C)split(splitk(C))
- Tulajdonság
- - Monoton finomodó sorozatot kapunk
- splitk(C) split1(C) split0(C)
- - egy indextol kezdve nincs változás. Ezt hívjuk
fixpontnak split8(C). - Definíció A P partíció stabil, ha split(P)P.
- Tulajdonság
- - split8(P) a P legdurvább stabil finomítása.
62A DL-1-index
- Konstrukció
- A kiindulási indexhez tartozó partíció legyen a
következo (V(G) a gráf csúcshalmaza) - P0split8(V(G))
- A DL1-REFINE algoritmussal finomítjuk tovább a
partíciót az elore adott SAPE lekérdezésekkel. - Tulajdonságok
- Az 1-index a DL-1-index finomítása.
- A konstrukcióval kapott DL-1-index pontos az
adott SAPE lekérdezésekre nézve.
63A //(KL) és //(BC)/E lekérdezéseket
támogatóDL-1-index
A
A
A
A
0
0
0
0
K,L,M,N
K,L
M,N
K,L
M,N
1
2
3
4
1,2,3,4
1,2
3,4
1,2
3,4
M
N
K
L
B,C,D
B,C
C,D
B,C
5
6
7
8
5,6
7,8
5,6
5,6,7,8
7
8
B
C
C
D
C
D
E,F
E
E,F
E
9
10
11
12
9,10,11,12
11,12
9,10
9,10
11
12
E
E
F
E
F
E
(c)
(d)
(a)
(b)
A kiindulási DL-1-index.
Az adatgráf és az 1-index megegyezik.
Az R1 //(KL) szerint tovább finomítva
Az R2 //(BC)/E szerint tovább finomítva
64k-stabil strukturális indexek
- Definíció A k-stabil indexet egy olyan
(P0,P1,,Pk) partíciósorozattal definiáljuk ,
melyre - a Pi partíció és Pi1split(Pi) (i0,1,,k-1).
- Az indexcsúcsok halmaza a partíciós tagok
összessége P0 U P1UU Pk - Az U indexcsúcsból akkor húzunk egy élt U-ba,
- ha létezik adatél u?U -ból u?U-ba és
- van olyan t index, melyre U? Pt és U? Pt1
65A DL-A(k)-index Kiss06
- Konstrukció
- A kiindulási DL-A(k)-indexet a
- (Pmin, split(Pmin),, splitk(Pmin)) alapján
definiáljuk, ahol Pmin V(G) - Az AK-REFINE algoritmussal finomítjuk tovább a
partíciót az elore adott SAPE lekérdezésekkel. - Tulajdonságok
- Az A(i)-index a Pi finomítása.
- A konstrukcióval kapott DL-A(k)-index pontos az
adott legfeljebb k hosszú SAPE lekérdezésekre
nézve.
66A //(KL) és //(BC)/E lekérdezéseket
támogatóDL-A(1)-index
A kiindulási index
A
//(KL) -lel finomítva
0
1
2
3
4
N
M
K
L
5
6
7
8
D
B
C
C
//(BC)/E -vel finomítva
9
10
11
12
E
E
E
F
Adatgráf
67Kísérleti eredmények
- Tesztadatokon összehasonlítottuk a
- DL-1-indexet az 1-indexszel, illetve a
- DL-A(k) -indexet az A(k)-indexszel.
- Két szokásos adathalmazt vizsgáltunk
- XMark 100 Mb, 1.681.342 adatcsúcs
- TreeBank 82Mb, 2.437.667 adatcsúcs.
- A lekérdezéshalmaznak 4 különbözo, SAPE
lekérdezéseket tartalmazó halmazt generáltunk,
minden lekérdezés legfeljebb 5 hosszú és a
halmazok 100 elemuek.
68A kísérletek alapján a DL-1 és DL-A(k)-index
mérete, és az index alapján történo kiértékelés
is jobb, mint az 1-index, illetve A(k)-index
esetében.
69- Motiváció XML alapú virtuális obszervatóriumok
- XML dokumentumok lekérdezéseinek kiértékelése
- XML dokumentumok indexelése
- Strukturális indexek
- Strukturális indexek alkalmazása osztott XML
dokumentumok esetén - XML adatbázisokkal kapcsolatos további kutatási
feladatok - Összefoglalás
70Az SNPDS (Shared-Nothing Parallel Database
System) osztott környezet
Hálózat
P1
P2
Pn
memória
memória
memória
Háttértár
Háttértár
Háttértár
- A munkaállomások saját processzorral, memóriával,
háttértárral rendelkeznek, amihez a többi állomás
nem férhet hozzá. - Hálózaton keresztül küldhetnek egymásnak
üzeneteket, lekérdezéseket, adatokat.
71Osztott XML-fa
- Az XML-fát diszjunkt részfákra, töredékekre
(fragments) bontjuk. - Minden állomás valahány részfát tartalmaz.
- Egy töredék levelébol átmenetél vezet egy másik
állomás töredékének gyökeréhez. - Feladat Milyen üzetváltási protokollal érdemes a
reguláris lekérdezéseket kiértékelni? - Lehet-e strukturális indexekkel jobb eredményt
elérni?
72A //a/b//a lekérdezés kiértékelése 2 állomásra
szétosztott XML-fán
73Átmeneti élek
- A lekérdezés kiértékelés a reguláris kifejezésnek
megfelelo automatával történik. - Probléma egyik töredékbol átmeneti élen
keresztül át kell lépni a másikba - Fragment-Process(F,q)
- Az F töredék bejárását az F gyökerénél kezdjük q
állapotból indulva. - Ha a feldolgozás során átmeneti élhez jutunk,
akkor - a) vagy továbbadjuk a vezérlést és várunk az
eredményre (folyam modell), - b) vagy feljegyezzük ezt és egy foállomást
értesítünk róla (párhuzamos modell)
q0
A
0
F0
A
1
q0
F1
q0 q1
B
2
74Folyam modell (SPIDER algoritmus)
- A gyökértöredékbol indulunk.
- Ha egy (F, q) ? (F, q) átmeneti élhez jutunk a
feldolgozásban - Az F feldolgozása megáll.
- Az F feldolgozása a q állapottal elindul.
- Ha F feldolgozása elkészült, akkor elküldi az
eredményt F-nek, amely folytatja a feldolgozást. - Várakozási ido nagy!
75Kétfázisú párhuzamos modell
- Minden töredék minden állapotot feltételezve
kiszámítja a saját részeredményeit.
(Elofeldolgozás.) - Ha egy (F, q) ? (F, q) átmeneti élhez jutunk a
feldolgozásban - Az alállomás felküldi a (F, q) ? (F, q)
szabályt a központi állomásnak. (1. fázis vége) - A központi állomás a szabályokból kiszámítja az
elérheto állapotokat minden töredékre és elküldi
minden töredéknek, hogy milyen állapottal hajtsa
végre a kiértékelést. - A töredékek felküldik az eredményüket a
központba, amibol a központi állomás kiszámolja a
végeredményt.
76Egyfázisú indexelt párhuzamos protokoll Kiss07
- A központ a töredékek kapcsolódását leíró
strukturális Fa-index segítségével meghatározza
az elérhetetlen (F,q) állapotokat. - Az elérheto állapotok közül elhagyhatók azok,
amelyek a töredékben kiértékelve üres eredményt
adnak. - Mivel ez csak a lekérdezés végétol függ, ezért
ezt a központ is meg tudja határozni, ha tárolja
a töredékek strukturális DL-1- indexét. - A központ a nem üres eredményt adó, elérheto
(F,q) állapotokat küldi szét, majd a beérkezo
részeredményekbol összerakja a végeredményt. - Elony gyorsabb feldolgozás
- Hátrány a központ tárigénye no a strukturális
indexek tárolása miatt.
77Strukturális Fa-index
F0
A
0
q0
A
F0
F3
AB
e
1
A
B
8
F5
AC
Fa-index
q0
A
F2
B
F3
D
F1
2
6
13
C
B
D
A
q0 q1
q0
A
e
F2
F4
F1
B
F4
D
F5
3
10
14
D
E
B
A
7
q0 q1
q0
4
5
12
15
11
A
C
F
D
E
Elérheto állapotok (F0,q0), (F1,q0),
(F2,q1), (F2,q2) nem érheto el
A Fa-index csúcsai a töredékek gyökércsúcsai. Az
éleket megcímkézzük azzal a címkesorozattal,
amelyet a töredéken keresztülhaladva kapunk.
78Kísérleti eredmények
- Tesztadatokon összehasonlítottuk
- a SPIDER feldolgozást (SP),
- a Kétfázisú párhuzamos feldolgozást (2P) és
- az Egyfázisú indexelt feldolgozást (1IP).
- Az osztott környezet 19 Linux állomás, helyi
hálózattal összekötve - Az adathalmaz 500 Mb, 76 töredék,
véletlenszeruen szétosztva - 10 reguláris kifejezést vizsgáltunk
- Az eredményeket átlagoltuk.
- Várakozási ido
- 1IP 2P SP 1 1.94 37.52
- Kiszámítási ido (kommunikációt és indexelést is
beleértve) - 1IP 2P SP 1 1.77 2.75
79- Motiváció XML alapú virtuális obszervatóriumok
- XML dokumentumok lekérdezéseinek kiértékelése
- XML dokumentumok indexelése
- Strukturális indexek
- Strukturális indexek alkalmazása osztott XML
dokumentumok esetén - XML adatbázisokkal kapcsolatos további kutatási
feladatok - Összefoglalás
80Klasszikus 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 karbantartás (indexeket is)
- jogosultságok kezelése
- tranzakció-kezelés
- adatbányászat
81Né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, France
- XML-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
82Natív XML adatbázis-kezelokhttp//www.rpbourret.c
om/xml/XMLDatabaseProds.htmnative
- Termék Fejleszto License Adatbázistípus
- 4Suite, 4Suite Server FourThoughtOpen Source
Object-oriented - Berkeley DB XML Oracle Open Source Key-value
- Birdstep RDM Mobile Birdstep Technology / Raima
Commercial Object-oriented, relational, network,
hierarchical - DBDOM K. Ari Krupnikov Open Source Relational
- dbXML dbXML Group Open Source Proprietary
- Dieselpoint Dieselpoint, Inc. Commercial None
(indexes only) - DOMSafeXML Ellipsis Commercial File system
- eXist Wolfgang Meier Open Source Proprietary
- eXtc M/Gateway Developments Ltd. Free
Post-relational - Extraway 3D Informatica Commercial Files plus
indexes - Infonyte DBInfonyte Commercial Proprietary
- Ipedo XML Database Ipedo Commercial Proprietary
- Lore Stanford University Research Semi-structured
- MarkLogic Server Mark Logic Corp. Commercial
Proprietary - M/DBX M/Gateway Developments Ltd. Free
Hierarchical - myXMLDB Mladen Adamovic Open Source MySQL
- Natix University of Mannheim Free /
non-commercial Proprietary - ozone ozone-db.org Open Source Object-oriented
83Natív XML adatbázis-kezelok http//www.rpbourret.c
om/xml/XMLDatabaseProds.htmnative
- Termék Fejleszto License Adatbázistípus
- Qizx/db XMLMind Commercial Proprietary
- Sedna XML DBMS ISP RAS MODIS Free Proprietary
- Sekaiju / Yggdrasill Media Fusion Commercial
Proprietary - SQL/XML-IMDB QuiLogic Commercial Proprietary
(native XML and relational) - Sonic XML Server Sonic Software Commercial
Object-oriented (ObjectStore). - Tamino Software AG Commercial Proprietary.
Relational through ODBC. - TeraText DBS TeraText Solutions Commercial
Proprietary - TEXTML Server IXIASOFT, Inc.Commercial
Proprietary - TigerLogic XDMS Raining Data Commercial Pick
- Timber University of Michigan Open Source
(non-commercial only) Shore, Berkeley DB - TOTAL XML Cincom Commercial Object-relational
- Virtuoso OpenLink Software Commercial
Proprietary. Relational through ODBC - XDBM Matthew Parry, Paul Sokolovsky Open Source
Proprietary - XDB ZVON.org Open Source Relational (PostgreSQL)
- XediX TeraSolution AM2 Systems Commercial
Proprietary - X-Hive/DB X -Hive Corporation Commercial
Proprietary. Relational through JDBC - Xindice Apache Software Foundation Open Source
Proprietary - xml.gax.com GAX Technologies Commercial
Proprietary
84- Motiváció XML alapú virtuális obszervatóriumok
- XML dokumentumok lekérdezéseinek kiértékelése
- XML dokumentumok indexelése
- Strukturális indexek
- Strukturális indexek alkalmazása osztott XML
dokumentumok esetén - XML adatbázisokkal kapcsolatos további kutatási
feladatok - Összefoglalás
85Összefoglalás
- Az eloadásban a következo témákat tekintettük át.
- Milyen feladatok kapcsán keletkeznek nagy méretu
XML adatbázisok - virtuális obszervatóriumok tudományos adatbázisai
(csillagászati, biológiai, részecskefizikai) - Megfogalmaztuk a feladatot
- Nagy méretu (osztott) XML adatbázisok gyors
lekérdezése - Két lehetséges utat választottunk
- Az adatbázis, a reguláris lekérdezés
reprezentálása relációs adatbázisban, majd a
lekérdezés feldolgozása DATALOG, illetve SQL
segítségével. - A natív XML adatbázishoz indexeket készítve
gyorsítjuk a lekérdezés végrehajtását.
86Összefoglalás
- 3. Osztályoztuk az XML indexelési módszereit
- értékek indexelése B-fákkal
- szöveges keresések invertált indexekkel
- strukturális címkézés az elod, illetve utód
kapcsolatok gyors eldöntésére - pre/post számozás
- intervallum címkézés
- strukturális indexek, amit részletesen
áttekintettünk - A strukturális indexek tömör formában tárolják a
gráf struktúráját, útvonalkifejezéseit. - a) Az elso ilyen index a DataGuide, 1997-ben
jelent meg. - A címkesorozatok a DataGuide és az XML-gráfban
pontosan megegyeznek. Egy sorozat csak egyszer
szerepel az indexben. - Probléma A DataGuide esetében az indexméret
ciklikus gráf esetén nagyobb lehet, mint az
adatbázis. - b) Megoldás 1-index
- Az index csúcsai a maximális biszimuláció
ekvivalenciaosztályai - minden reguláris lekérdezésre pontos (kiértékelés
indexes kiértékelés) - a PT-algoritmussal hatékonyan elkészítheto
87Összefoglalás
- 4. Speciális lekérdezésekre pontos index
készítése - //a0/a1//ak alakú lekérdezések
- A(k)-index lokális hasonlóságon (k-biszimuláción
alapul) - d) Gyakori lekérdezések
- APEX, amely kiindul a címkék szerinti
osztályozásból, és ezt finomítja a beérkeo
lekérdezések szerint, közben Hash-táblában
frissíti az indexcsúcsokat
88Összefoglalás
- 4. Speciális lekérdezésekre pontos index
készítése - e) //S0/S1//Sk alakú alternatív SAPE
lekérdezések - DL-1-index A legdurvább stabil finomítást
határozzuk meg, majd ezt finomítjuk a SAPE
lekérdezésekkel - az 1-index a DL-1-index finomítása
- f) //S0/S1//Sk alakú legfeljebb k-hosszú
alternatív SAPE lekérdezések - DL-A(k)-index k hasítási lépést hajtunk végre,
és a kapott partíciókat finomítjuk a SAPE
lekérdezésekkel - Az A(k)-index a DL-A(k)-index finomítása
89Összefoglalás
- 5. Strukturális indexeket alkalmazva hatékonyabbá
lehet tenni az osztott XML dokumentumok
lekérdezését - Az XML fát osztottan tároljuk
- Egy állomáson több részfa (töredék) lehet
- Reguláris lekérdezést akarunk kiértékelni
- 3 módszer
- folyam modell (SPIDER)
- párhuzamos kétfázisú
- egyfázisú indexelt
- a központ tárolja a töredékek DL-indexét és a
felosztás Fa-indexét - nem elérheto vagy üres eredményt produkáló
állapotokat nem küld az állomásokra - 6. További XML kutatási feladatokat, témaköröket
adtunk meg.
90Az eloadásban szereplo hivatkozások
- Chung et al., SIGMOD 2002
- Chin-Wan Chung , Jun-Ki Min , Kyuseok Shim, APEX
an adaptive path index for XML data, Proceedings
of the 2002 ACM SIGMOD international conference
on Management of data, June 03-06, 2002, Madison,
Wisconsin doigt10.1145/564691.564706 - Dietz82
- Dietz, P. F. 1982. Maintaining order in a linked
list. In Proceedings of the Fourteenth Annual ACM
Symposium on theory of Computing (San Francisco,
California, United States, May 05 - 07, 1982).
STOC '82. ACM, New York, NY, 122-127. DOI
http//doi.acm.org/10.1145/800070.802184 - Goldman Widom VLDB 97
- Goldman, R. and Widom, J. 1997. DataGuides
Enabling Query Formulation and Optimization in
Semistructured Databases. In Proceedings of the
23rd international Conference on Very Large Data
Bases (August 25 - 29, 1997). M. Jarke, M. J.
Carey, K. R. Dittrich, F. H. Lochovsky, P.
Loucopoulos, and M. A. Jeusfeld, Eds. Very Large
Data Bases. Morgan Kaufmann Publishers, San
Francisco, CA, 436-445. - Kaushik et al. 02
- Raghav Kaushik, Pradeep Shenoy, Philip Bohannon,
Ehud Gudes, "Exploiting Local Similarity for
Indexing Paths in Graph-Structured Data," Data
Engineering, International Conference on, p.
0129, 18th International Conference on Data
Engineering (ICDE'02), 2002 - Kiss05
- Attila Kiss, Vu Le Anh A solution for regular
queries on XML Data, (PUMA Volume 15 (2005),
Issue No. 2, pp .179-202. - Kiss06
- Attila Kiss, Vu Le Anh Efficient Processing SAPE
Queries Using the Dynamic Labelling Structural
Indexes. ADBIS 2006 232-247 - Kiss07
- Attila Kiss, Vu Le Anh Efficient Processing
Regular Queries In Shared-Nothing Parallel
Database Systems Using Tree- And Structural
Indexes. ADBIS Research Communications 2007 - LiMoon VLDB 2001
- Li and Moon, 2001 Li, Q., Moon, B., 2001.
Indexing and querying XML data for regular
expressions. In Proceedings of VLDB 2001, pp.
367370. - Milo Suciu, LNCS 1997
- Milo, T., Suciu, D. (1999), "Index structures for
path expressions", 7th International Conference
on Database Theory (ICDT), pp.277-95. - Paige Tarjan 87
91Köszönöm a figyelmet!
92Válaszok az opponensek kérdéseire
- Köszönöm az opponensek gondos munkáját!
- A következo kérdések merültek fel.
- Az indexelési technikáknak milyen szerepe lehet
az XML adatbázisok adatbányászatában? - Milyen jövoképet tudna felvázolni a jövo
adatbázisaira és az adatbányászatra?
93Az indexelési technikáknak milyen szerepe lehet
az XML adatbázisok adatbányászatában?
- Az adatbányászat feladata nagy adathalmazokban
fontos összefüggések megtalálása - Az adatbányászati algoritmusokban fontos, hogy ne
kelljen minden esetet végigvizsgálni. - Például gyógyszerkutatásban a molekulákban
keresünk mintákat, amelyek a kémiai kötodéseket
határozzák meg. - A molekulákat gráfokkal szokták megadni.
(-gtXML-gráf) - A minta is egy kicsi részgráf. (-gtXML gráf)
- A feladat részgráf keresése. (Nehéz probléma.)
- Ha a molekula struktúrájának lenyomatát tároljuk
(Index), akkor a lenyomatok alapján kizárhatunk
nagyon sok felesleges esetet a vizsgálatból. - XML-ben a részgráf keresési problémát Twig-Query
vagy Twig-join problémanak hívják.
94Az indexelési technikáknak milyen szerepe lehet
az XML adatbázisok adatbányászatában?
- Egy friss cikk ebben témában, ami ösvény
indexelést használ - El-Tazi, Neamat Jagadish, H. V. BPI-TWIG XML
Twig Query Evaluation - Database and XML Technologies, Lecture Notes in
Computer Science, Volume 5679. ISBN
978-3-642-03554-8. Springer Berlin Heidelberg,
2009, p. 17 http//www.springerlink.com/content/d8
0386141g147453/ - A DNS-ek is reprezentálhatók XML fájlokban. Itt
is fontos feladat a gyakori minták keresése. - A következo cikk ezt a feladatot oldja meg
indexek bevezetésével. - Jung-Im Won, Jeehee Yoon, Sanghyun Park,
Sang-Wook Kim A Novel Indexing Method for
Efficient Sequence Matching in Large DNA Database
Environment. PAKDD 2005 203-215 - http//www.springerlink.com/content/k002vfptpr7fv
2j5/
95Milyen jövoképet tudna felvázolni a jövo
adatbázisaira és az adatbányászatra.
- The Claremont Report on Database Research (2009)
- Database research is expanding, with major
efforts in system architecture, new languages,
cloud services, mobile and virtual worlds, and
interplay between structure and text. - Rakesh Agrawal, Anastasia Ailamaki, Philip A.
Bernstein, Eric A. Brewer, Michael J. Carey,
Surajit Chaudhuri, Anhai Doan, Daniela Florescu,
Michael J. Franklin, Hector Garcia-Molina,
Johannes Gehrke, Le Gruenwald, Laura M. Haas,
Alon Y. Halevy, Joseph M - Communications of the ACM JUNE 2009 Vol. 52 No.
6, Pages 56-65 10.1145/1516046.1516062 - http//cacm.acm.org/magazines/2009/6/28496-the-cla
remont-report-on-database-research/pdf?dlno
96A fontosabb irányok
- Breadth of excitement about Big Data.
- Data analysis as a profit center.
- Ubiquity of structured and unstructured data.
- Expanded developer demands. (open source)
- Architectural shifts in computing. (mobile and
cloud computing)