1k likes | 1.19k Views
XML adatbázisok strukturális indexelése (Structural indexes of XML Databases). dr. Kiss Attila kiss @ inf.elte.hu. Az előadá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
E N D
XML adatbázisok strukturális indexelése(Structural indexes of XML Databases) dr. Kiss Attila kiss@inf.elte.hu
Az előadá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
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
Nagy tudományos adatbázisok • Nagyon nagy adathalmazokat elsősorban mérőműszerek állítanak elő: • Szenzorok • Teleszkópok • Részecskegyorsítók • Génlapok
Virtuá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.
A virtuális obszervatórium feladatai • Osztott XML adatbázisok: Több terabájtnyi speciális formátumú (elsősorban XML) adat osztott tárolása hatékony struktúrában. • Hatékonyság: Az adatok gyors eléréséhez lekérdezőnyelvek, valamint olyan struktúrák definiálása, amelyek segítségével a lekérdező 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, előfeldolgozás. • Adatbányászat: Hatékony, lehetőség szerint GRID alapú osztott adatbányászati módszerek beépítése. • Vizualizáció: Az elemzések eredményeinek vizualizációja.
Az International Virtual Observatory Alliance architektúrája Forrás: http://www.ivoa.net/
NCBI 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 megfelelő XML gráf.
A feladat megfogalmazása • A következő feladatot vizsgáljuk: • Nagy méretű (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.
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
Az XML dokumentumnak megfelelő 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éző függvény
<CSDepartment> <PhDStudents> <Student id="s1"> <Name>John</Name> <Papers> <Paper id="pp1"> <Title>ABC</Title> <Author>Dr.Ben</Author> <Author idref="p1"> </Author> </Paper> </Papers> </Student> <Student id="s2"> <Name>Tom</Name> </Student> </PhDStudents> <Professors> <Professor id="p1"> … … <Name>Dr. Kiss</Name> <Papers> <Paper idref="pp1"> </Paper> <Paper> <Title>DEF</Title> </Paper> </Papers> </Professor> <Professor id="p2"> <Name>Dr. Baker</Name> <Papers> <Paper> <Title>XYZ</Title> </Paper> </Papers> </Professor> </Professors> </CSDepartment> Publikációk XML dokumentumban
Reguláris lekérdezések • Az XML-nek számos lekérdező nyelve létezik. • XQuery, XPath, UnQL, Lorel, XQL, XML-QL, stb. • Ezek mindegyike a reguláris (ösvény)kifejezéseken alapul. • 3 művelet használható: • Konkatenáció: . vagy / • Unió: | • Iteráció: * • Rövidítések: _ - az ábécé tetszőleges eleme // - (_)* • Például: //(Student | Professor)//Paper/Title
Reguláris lekérdezések • Egy(u, v)csúcspár illeszkedik az R reguláris lekérdezésre, ha van olyan út u-bólv-be, amely címkesorozata illeszkedik a reguláris kifejezésre. • Az R lekérdezés eredménye: I inputhalmaz ésOoutputhalmaz esetén , ahol (u, v)csúcspár illeszkedik az R reguláris lekérdezésre} • Általában:I={gyökér} ésO={V}. • 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.
A lekérdezés kiértékelése az automata alapján * B D • //B/D lekérdezés gráfja: • Input: I={0}; Output: O={0,1,…,15} q0 q1 q2 q0 A 0 1 A q0 q0 8 B q0 2 B q0 6 C 9 A 13 D 3 D q0 q1 7 A 10 B 14 E 4 A q0 q2 C q0 q2 5 11 D 12 E 15 F Folytatva a bejárást az eredmény = {(0,3),(0,11),(0,13)}
Áttérés élcímkézett gráfokra Csúcscímkézett gráf A megfelelő é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.
SD-gráf • A reguláris kifejezésre illeszkedést visszavezetjük egyszerű elérhetősé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üggő. • Csúcsai: (adatcsúcs, állapot) párok • Címkézett élei: ha egy adott állapotban egy adott csúcsban vagyunk, akkor adott címkéjű adat élen melyik csúcsba, milyen állapotba jutunk.
Az R:= a/(b|c)*/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 3 5 c a SD-gráf: 4 1,s0 1,s1 a a Az SD-gráfban kezdő állapotból végállapotba hová lehet eljutni? 2,s1 2,s2 2,s0 a b c 5,s1 3,s0 3,s1 Eredmény: (1,4) , (1,5) a a a 4,s2 5,s2 4,s1
SD-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 megfelelő reláció a két reláció összekapcsolása. • A lekérdezés elérhetőséget jelent az SD-gráfban. • Az elérhetősé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.
4. lépés: Előállítjuk a reprezentáló relációkat, és kiszámítjuk az SQL lekérdezést Az eredmény: {4,5,6}
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
Az XML indexeléseinek osztályozása • Értékekindexelése • azatomi é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íthető • 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 • Strukturális indexek • materializálja adott típusú ösvénykifejezések eredményeit
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üggően, hogy hányadik a bejárási sorrendben. Például: 1<5 és 7>3 => (1,7)-nek utódja az (5,3) XML-fák pre/post számozása [Dietz82] (1,7) (6,6) (2,4) • x-neky az utódja<=> • pre(x) < pre(y) és • post(x) > post(y) (7,5) (3,1) (5,3) (4,2)
Minden x csúcshoz tartozzon egy (order(x), size(x)) számpár, az alábbi tulajdonságokkal: Hax-nek y a gyereke, akkor order(x) < order(y) order(y)+size(y) =< order(x) + size(x) Haa preorder sorrend szerint x megelőzi az y testvérét, akkor order(x) + size(x) < order(y) Intervallum kódolás[Li&Moon VLDB 2001] (1,100) (41,10) (10,30) (45,5) (25,5) (11,5) (17,5) • x-neky az utódja<=> • order(x) < order(y) és • order(y) <=order(y) + size(x)
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
A DG-index (DataGuide) [Goldman & Widom VLDB 97] • Legyen egy XML dokumentum gráfjaDB. • ADBgráfDG-indexe (Adatvezető indexe) egy olyanG gráf, melyre a következők teljesülnek: • A DB minden címke útvonala szerepelG-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.
A B A B C C C C C C D D D D D D A DG-index nem egyértelmű • 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
Erős DG-index • Legyenp, p’két címke útvonal ésGegy gráf. • Legyen p ≡G p’, hap(G) = p’(G) • vagyisp ésp’nem különböztethető meg aGgráfon. • GaDBerős DG-indexe, ha≡Gés≡DBekvivalenciarelációk megegyeznek. • Például: G1erős; G2nem erős A.C(DB) = { 5 }, B.C(DB) = { 6, 7 } A.C(G2) = { 20 }, B.C(G2) = { 20 } DB G1 G2
Naiv index • Definiáljunk egy≡ekvivalenciarelációt aDB gráf csúcsain: • u≡vhauésvugyanazokkal a címke útvonalakkal érhetők el a gyökérből. (Az u és v megkülönböztethetetlen csúcsok.) • A Naiv index is egy gráf: • Az indexcsúcsok azekvivalenciaosztályok. • Létezik indexél s-bőls’-be, ha a DB-ben létezik él azsegy adatcsúcsából azs’egy adatcsúcsába. • Egy osztályban csak azonos címkéjű 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 tetszőleges 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 előállítása (PSPACE-complete)
1-index [Milo & Suciu, LNCS 1997] ÖtIet:használjunkbiszimuláció ekvivalenciarelációt a megkülönböztet-hetetlenségi≡ekvivalencia helyett. • Erősebb lesz a feltételfinomabb osztályozást kapunktöbb indexcsúcs lesz. • Biztonságos és pontos indexet kapunk. • A biszimulációt könnyebb kiszámolni (PTIME).
y1 y2 Biszimuláció • A biszimuláció a csúcsokon értelmezett ekvivalenciareláció: x1 x2, ha • x1 és x2 címkéje megegyezik • ha x1 x2 éslétezik y1-ből él x1-be, akkor létezik egy olyan y2-ből él x2-be, melyre y1 y2, és ez fordítva is igaz. b b x1 x2 a a
1-index • Azu ésv csúcsokbiszimulá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 ≈bekvivalenciarelációnak megfelelő osztályozása a csúcsoknak.
A 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étezikmaximálisbiszmulá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-ből • Álljunk meg, ha már nincs mit kidobni. • A futási idő O(mn), ahol m az élek, n a csúcsok száma. • Javítani lehet a PT-algoritmussal: • O((m+n)log(m+n)) [Paige &Tarjan 87]
Példa 1-indexre paper paper 1 1 13 section section title 14 section 2 2,4,8,13 section 8 4 section 3 15 exp exp title exp algorithm title algorithm 16 10 15,16 3,5,9,14 6,10 6 9 algorithm title 5 title 18 about proof proof 17 11 17,18 proof 7 7 11 about about uses proof 12 12 /paper/section/algorithm uses Adatgráf 1-index
1-index • Ha a gráffa, akkor az • 1-index, naiv index, erős DG-index megegyezik • Az 1-index astabilitás fogalmával is definiálható. • Egy indexcsúcsstabil, ha az adatcsúcsaihoz ugyanazok a szülő indexcsúcsok tartoznak. • Az1-index minden indexcsúcsa stabil. u u’ I[u] I[u’] I[v] I[v’] = v’ v
Mire legyen pontos az index? • Előny: Az 1-index tetszőleges 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 ellenőrizni kell.
Lekérdezéshalmazokhoz készített pontos indexek • Fontosabb lekérdezéshalmazok: • //a0/a1/…/ai (i<=k) 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 • Előre-hátra lekérdezések (Például parent és child tengely is szerepel.) • F&B-index
A(k)-Index [Kaushik et al. 02] • A //a0/a1/…/ai (i<=k) alakú lekérdezésekre pontos • Az ekivalenciát ak-biszimuláció határozza meg. • Ak(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 kvha u k-1vés • ha u’-ből van él u-ba, akkor létezik olyan v’, amelyből van él v-be és u’ k-1v’ • ha v’-ből van él v-be, akkor létezik olyan u’, amelyből van él u-ba és u’ k-1v’.
1 imdb 2 5 movie tv {1} {1} {1} imdb imdb imdb 3 6 8 director director director tv {5} tv {5} tv {5} movie movie movie {2} {2} {2} director {6,8} 4 7 9 director {3} director director {3,6,8} {3} {6,8} director name name name Adatgráf name name name name {4,7,9} {4,7,9} {4} {7,9} A(2)-index (1-index) A(1)-index A(0)-index A(k)-index • Egyre jobban finomodó (<) indexeket kapunk: • A(0) a címkék szerinti ekvivalencia • A(0)<A(1)<A(2)<…<A(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ülői az A(k-1)-indexben.
Hasítás (Split) művelet R R R R A B A B A B A B C1 C2 C3 C1 C2,C3 C1 C2,C3 C1,C2,C3 C4,C5,C6 C4 C5 C6 C4 C5,C6 C4,C5,C6 Adatgráf A(2) (=1-index) A(1) A(0) Az algoritmusok hasítási műveletet használnak: - ha egy osztály nem stabil, akkor kettévágjuk, úgy hogy stabil legyen
Finomítási sorozat (1. lépés) R R R R A B A B A B A B C1 C2 C3 C1 C2,C3 C1 C2,C3 C1,C2,C3 C4,C5,C6 C4 C5 C6 C4 C5,C6 C4,C5,C6 Adatgráf A(2) (=1-index) A(1) A(0)
Finomítási sorozat (2. lépés) R R R R A B A B A B A B C1 C2 C3 C1 C2,C3 C1 C2,C3 C1,C2,C3 C4,C5,C6 C4 C5 C6 C4 C5,C6 C4,C5,C6 Adatgráf A(2) (=1-index) A(1) A(0)
APEX[Chung et al., SIGMOD 2002] • APEX: Adaptive Path IndEx for XML Data • A címke szerinti osztályozásból, az A(0)-indexből 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.
APEX 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
1. 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 1a:Az azonos címkéjű csúcsokat összevonjuk. title 9