Ukládání geodat do XML nativních databází Albrechtová Zdeňka Geomatika Západoč eská univerzita v Plzni Univerzitní 22 306 14 Plzeň E-mail:
[email protected]
Abstract The basic idea of my work is possibility testing to use native XML databases for saving geographical data. After the brief acquaintance with the basics of XML (XML, Xpath, Xquery, XSLT, ...), native XML databases (kinds, basic charackteristics, ...) and XML formats (GML, cGML, ...) of geodata, it can be directly seen in six geodata files of three chosen database systems (4Suite, Berkeley DB XML, eXist) whether it is possible to use this kind of databases in geoinformatics for solutions of concrete projects.
Abstrakt Základní myš lenkou této práce je otestování možností využití nativních XML databází pro ukládání geografických dat. Po struč ném seznámení se základy XML (XML, XPath, XQuery, XSLT, …), s nativními XML databázemi (druhy, základní charakteristiky, …) a s XML formáty geodat (GML, cGML, …) je na vybraných tř ech databázových systémech (4Suite, Berkeley DB XML, eXist) za pomoci š esti souborůs geodaty př ímo ukázáno, zda by bylo v geoinformatice možné tento druh databází využ ít k ř eš ení konkrétních úkolů.
Úvod V souč asné doběse v oblasti geově d stále více uplatňují různé formáty značkovacího jazyka XML (např . GML, cGML, G-XML), a to př edevš ím z důvodu jejich nenároč nosti na software. S rostoucím využitím tě chto formátůse dá př edpokládat, ž e data uložená tímto způsobem musí být ně kde uskladně na a spravována. Jako i v jiných oblastech i zde se nabízí využití databázových systémů. Pro ukládání a spravování XML dat existuje speciální druh databází. Jedná se o nativní XML databáze, jejichžhlavní př edností je př ímé (nativní) ukládání XML dokumentů. Mimo vlastní existenci těchto databází př ispě l k jejich využ ití př i testování pro ukládání geodat zejména rozvoj dotazovacích jazykův oblasti XML technologií (např . zdokonalení jazyka XPath ve standardizované verzi 2.0, vznik jazyka XQuery). Rozvoj dotazovacích jazyků, zejména pak vznik jazyk XQuery, je pro geodata obzvláš tědůležitý, protože př i dotazování nad těmito druhy dat je nutné vytvář et složitějš í dotazy, cožprávějazyk XQuery umož ňuje. Pomocí tohoto dotazovacího jazyka je tedy mož né získávat velmi podobné výsledky jako př i dotazování v běž ných GIS aplikacích.
Základním úkolem této práce je na vybraných nekomerč ních nativních XML databázových systémech a pokud mož no reálných geodatech ukázat, zda by bylo mož né tě chto databází v praxi využ ít.
Postup realizace projektu výběr zástupcůnekomerč ních nativních XML databází získání geodat ve formátu XML testování vybraných databází př i práci s geodaty
Výbě r zástupcůnekomerč ních nativních XML databází Př i ř eš ení problematiky ukládání geodat do XML nativních databází bylo nutné v úplném počátku vybrat zástupce nekomerč ních XML nativních databází, poně vadžnekomerč ních databázových systémůje pomě rněvelký poč et (viz tabulka 1) a zaobírat se každou databází by pro názornost nemě lo velký smysl. Název databáze Typ databáze Vývojář /Tým vývojářů objektově orientovaná FourThought 4Suite Berkeley DB XML klíč- hodnota Sleepycat Software DBDOM relační K. Ari Krupnikov dbXML vlastní model dbXML Group vlastní model Wolfgang Meier eXist MySQL Mladen Adamovic myXMLDB Ozone objektověorientovaná ozone-db.org Sedna XML DBMS vlastní model ISP RAS MODIS Timber Shore, Berkeley DB University of Michigan vlastní model Matthew Perry, Paul Sokolovsky XDBM vlastní model Apache Software Foundation Xindice XpSQL relační Makato Yui Tabulka 1: Nekomerční nativní XML databáze podle [1]
Protože se jednotlivé databázové systémy liš í př edevš ím typem, byla tato charakteristika zvolena jako zásadní, a tak na základětypu doš lo k výběru kandidátů. V dalš ím kroku byl brán zř etel na rozš íř enost a známost kaž dého jednotlivého databázového systému, př ič emžse samozř ejměupř ednostnily známě jš í a rozš íř eně jš í aplikace. V koneč ném výsledku byly vybrány č tyř i databázové systémy, ze kterých ale pouze tř i mohly být použ ity: 4Suite jako zástupce objektově -orientovaných databází, Berkeley DB XML jako zástupce databáze typu klíč -hodnota, eXist jako zástupce databází s vlastním modelem, ježv rámci nekomerč ních XML nativních databází tvoř í nejobsáhlejš í skupinu. Čtvrtým vybraným databázovým systémem, a tedy nakonec nepouž itým, byl DBDOM jako zástupce relač ních databází. Př i práci s tímto databázovým systémem se vyskytly neodstranitelné problémy, pro které ho nebylo mož né využít.
DBDOM samozř ejměnení jediným relač ním databázovým systémem, dalš ím, a zároveňtaké posledním, možným kandidátem této skupiny je systém XpSQL. Nad operačním systémem Windows se vš ak tato aplikace nepodař ila nainstalovat, a tak nakonec je skupina relač ních nekomerč ních XML nativních databází bohuž el nezastoupena.
Získání geodat ve formátu XML Volba vhodného vzorku geodat pro ulož ení do jižvybraných databázových systémůtaké nebyla triviální zálež itostí. Pro objektivní posouzení mož nosti využ ití XML nativních databází v oblasti geografických vě d bylo vhodné vybrat reálná data. Západočeská univerzita spolupracovala př i tvorběAtlasu mezinárodních vztahů, který vznikal př edevš ím s využ itím XML technologií. XML technologie byly uplatně ny i pro zdrojová data, 1 pro která byl zvolen plnohodnotný XML formát JML (JUMP GML). Protože zdrojová data Atlasu mezinárodních vztahůbyla př ímo v XML formátu a jednalo se o reálná data, bylo několik z tě chto zdrojových souborůvybráno pro využ ití v nativních databázích. Šest získaných souborůse nemusí jevit jako dostateč ný počet, ale jejich odliš né, a ve tř ech př ípadech velmi velké, velikosti poskytnou podle mého názoru dobrý nástin využití nativních XML databází v oblasti geografických věd. Název souboru
Velikost souboru [B]
body_miny1.jml body_miny2.jml magda.jml miny.jml zbrojeni.jml zbrojeni_popisky.jml
5 974 27 182 14 720 878 14 612 497 14 625 758 6 673
Tabulka 2: Velikosti použitých souborůs geodaty
Testování vybraných databází př i práci s geodaty Obecné poznatky a závě ry o jednotlivých databázích 1. 4Suite
Databáze 4Suite byla první z aplikovaných databázových systémů. Její základní nedostatek byl hned z počátku zř ejmý – databáze 4Suite nepodporuje dotazovací jazyk XQuery ani žádný jiný obdobněvyvinutý dotazovací jazyk, proto nemůž e př i dotazování poskytovat ani trochu podobné výsledky jako př i dotazování v klasických GIS aplikacích. Podporovaným dotazovacím jazykem je jazyk XPath, který by ale mohl být př i jednoduchých úkonech dostačující a ve spojení s 4Suite Serverem by mohl získávat pohodlné výsledky. 1
Tento formát má základ ve formátu GML (Geography Markup Language) a je využ íván př edevš ím v rámci Open Source programůJUMP a openJUMP. Soubory formátu JML mají v sobějižzabudovanou strukturu dokumentu, tedy jakési schéma v úvodu vlastního dokumentu, narozdíl od klasických souborůve formátu GML.
4Suite Server sice umožňoval vytvoř ení kolekce dokumentůa z části i správu ulož ených dokumentů, ale bohužel nebylo mož né této nadstavby využ ít př i vlastní aplikaci dotazu, a tak mohly být dotazy aplikovány pouze na dokumenty ulož ené v bě žných souborových úložiš tích. Pro práci umož ňoval 4Suite společněs 4Suite Serverem použ ívat tř i pracovní prostř edí: klasickou př íkazovou ř ádku, pracovní prostř edí programovacího jazyka Python a GUI serveru. Protož e podle mého názoru nemusí být uživatel ani správce databáze zdárným programátorem, testovala jsem 4Suite pouze v prostř edí př íkazové ř ádky a GUI. Př íkazová ř ádka byla pro práci, i př es chudou nápovědu, př íjemným pracovním prostř edím bez zjevných nedostatků. V GUI se vyskytovaly nesč etné problémy, jako jeden z nejnápadně jš ích bych uvedla nemož nost mazání uložených dokumentů(tuto operaci bylo možné provést pouze z př íkazové ř ádky), proto nebylo mož né toto prostř edí př ílišvyužívat. Obrovskou př edností tohoto systému je podpora XSLT a XUpdate. Právědíky této velké výhoděbych 4Suite pro ukládání geodat nezavrhovala, a pokud by bylo mož né načítat soubory i z kolekcí dokumentůna serveru (tuto skutečnost znemož ňovala serverová chyba), bych spíš e vě ř ila, že by mě l tento systém velkou budoucnost alespoňv oblastech transformací XML souborůs geodaty. 2. Berkeley DB XML
Dalš ím vybraným zástupcem z nativních XML databázových systémůbyl Berkeley DB XML. Tato databáze je velice dobř e uzpůsobená práci s různými XML i ne XML soubory ulož enými v kolekcí dokumentů, cožby mohlo být velmi vhodné např íklad ve spojení geodat (ve formátu XML) s rastry. Protože z dotazovacích jazykůpodporuje Berkeley jak XPath, tak XQuery, můž e teoreticky v dotazování, právědíky jazyku XQuery, podat také velmi dobré výsledky. Z ostatních XML technologií, které se týkají ně jakým způsobem př ímo dokumentů, nepodporuje Berkeley DB XML bohuž el ž ádný, tedy ani XSLT ani XUpdate. Aktualizace je zajiš tě na vestavěnými funkcemi a pro transformaci dat do jiné podoby musí každý už ivatel sáhnout do jiného systému. Pro geografická data je nemož nost využití XSLT dost nevýhodná, ale pro celkové využ ití Berkeley DB XML pro ukládání tě chto dat zase není prioritou, tudíži př es tento nedostatek by mohla být databáze Berkeley DB XML pro ukládání geodat snadno, a myslím si, ž e vcelku úspě š ně , využita. Pracovní prostř edí by se mohlo mnohým už ivatelům jevit jako velice strohé, vš ak se také jedná pouze o prostř edí př íkazové ř ádky, ale z vlastní zkuš enosti mohu s klidným svě domím tvrdit, ž e GUI je zde zcela zbyteč né, protože díky kvalitní nápověděa jednoduchým vě cným př íkazům si kaž dý uživatel brzy osvojí základní pracovní postupy a zdánlivá poč áteč ní nepř ehlednost zcela zmizí. 3. eXist
Poslední využ itou nativní XML databází byla databáze eXist. Tento systém je jistěpro uživatele na první pohled z hlediska pracovního prostř edí nejpř íjemnějš í. Dokumenty ulož ené v kolekcích jsou dobř e viditelné, editovatelné, a způsob jejich načítání či odstraňování se nič ím neliš í od způsobu v bě ž ných programových vybaveních. Nedostateč ná nápověda systému je nahrazena obrovským zázemím na webových stránkách, kde se dá zjistit témě ř cokoli.
I pro uživatele pracujícího s geodaty by mohl být tento systém velice atraktivní, a to nejen díky př íjemnému pracovnímu prostř edí. Jsou zde opě t podporovány dva dotazovací jazyky, XQuery a XPath, př ič emžXQuery má v rámci eXistu dalš í podstatná rozš íř ení umožňující např íklad aktualizace č i transformace dokumentů. Jazyk XSLT je vš ak tímto způsobem zcela nahrazen a tedy bohužel dále jižnení nijak podporován. Dotazování
Dotazování nad geodaty v prostř edí XML nativních databází je zř ejmějediná oblast, ve které se geodata od ostatních dat podstatněodliš ují. Vzhledem k existenci prostorové slož ky roste i nároč nost dotazů, obzvláš těprostorových, které se samozř ejměnad bě ž nými daty nevytvář ejí. Proto bylo nutné vytvoř it několik jednoduchých i poně kud složitějš ích dotazů, jak atributových, tak prostorových, aby bylo mož né zhodnotit vhodnost využití dané databáze pro ukládání geodat. Protože vě tš ina XML nativních databází podporuje dva základní dotazovací jazyky, XPath a XQuery, vznikaly dotazy právěv těchto formátech, a to pomocí softwaru Altova XML Spy® 2007 Enterprise Edition. Prvotněbyly zformulovány dotazy v jazyce XQuery. Koneč ný poč et tě chto dotazůje dvanáct – osm atributových dotazů[(XQ_1) ... (XQ_8)] a č tyř i dotazy prostorové [(XQ_9) ... (XQ_12)]. Z některých jednoduš š ích dotazůpak vycházely obdobné dotazy v jazyce XPath, koneč ný počet XPath dotazůje pět – tř i atributové [(XP_1) ... (XP_3)] a dva prostorové [(XP_4) ... (XP_5)]. Př i vytvář ení dotazůjsem získala př ibližnou př edstavu o tom, jak dlouho by mohl průbě h kaž dého dotazu trvat. Nemohla jsem tedy očekávat, ž e výsledky dotazů(XQ_11) a (XQ_12) budou známy v několika málo sekundách, kdyžv nedatabázovém programu vyhodnocení tě chto dotazůbylo měř eno na minuty či desítky minut. Př esto vš ak zastávám názor, že vyhodnocení dotazu, které trvá více než10 sekund, není optimální. Bohuž el ale, jak je patrné z tabulky 3 uvádě jící vš echny časy XQuery dotazůodzkouš ených v databázích Berkeley DB XML a eXist (4Suite dotazovací jazyk XQuery nepodporuje), dotazů př ekrač ujících 10vteř inou hranici není málo. Protože kaž dý dotaz má jinou strukturu a obědatabáze pracovaly př i jejich zpracovávání jiným způsobem, není mož né najisto ř íci, která z databází si poradila s vyhodnocením XQuery dotazůlépe. Databáze Berkeley DB XML zpracovávala v koneč ném výsledku vš echny dotazy v rychlejš ím čase (tabulka 3) a rovnoměrně ji (obrázky 1, 2), ale nebyla schopna pro nedostatek pamě ti vyhodnotit složité prostorové dotazy. Naproti tomu databáze eXist ve svých výsledcích velice kolísala (obrázky 1, 2), ale dokázala vyhodnotit dotazy vš echny – otázkou vš ak zůstává zda výsledný č as dotazu (XQ_12) 6 h 52 min 42,647 s ( = 24 762,647 s) je v praxi akceptovatelný. Vytvoř ené XPath dotazy byly vyzkouš eny ve vš ech použ itých databázových systémech. Protože struktura tě chto dotazůsi je mnohem bližš í, nežtomu bylo u dotazůXQuery, bylo jejich vyhodnocení v rámci jednotlivých databází velice podobné – z hlediska času vš ak kvůli různým př ístupům jednotlivých databází opě t odliš né (tabulka 4). Např íklad u databází 4Suite a eXist bylo po srovnání časových hodnot podle velikosti dosaženo totožných výsledků, tj. poř adí dotazůse shoduje. U těchto dotazůjižnedocházelo k výkyvům, pouze databáze eXist vyhodnotila dotaz (XP_4) nad 10vteř inovou hranici, cožbyl celkověnejhorš í dotaz celého
testování XPath dotazů(13,389 s), který této databázi velmi ovlivnil celkový čas potř ebný k vyhodnocení vš ech XPath dotazů(tabulka 5).
Berkeley DB XML (XQ_1) atrib_dotaz_CR_radka.xquery
(XQ_2) atrib_dotaz_UK_radka.xquery
(XQ_3) atrib_dotaz_UK.xquery
(XQ_4) atrib_dotaz_hustota_200_300.xquery
(XQ_5) atrib_dotaz_kontinenty.xquery
(XQ_6) atrib_dotaz_hustoty.xquery
(XQ_7) atrib_dotaz_hustota_Evropa.xquery
(XQ_8) atrib_dotaz_prum_hustota_svet.xquery
(XQ_9) prostor_dotaz_souradnice.xquery
(XQ_10) prostor_dotaz_multipolygony.xquery
(XQ_11) prostor_dotaz_sousedi.xquery
(XQ_12) prostor_dotaz_okruh_1000km.xquery
eXist
2,169
2,454
2,130
0,240
1,898
68,538
0,552
4,286
1,473
0,661
1,716
0,271
46,160
289,816
226,688
1 257,899
2,415
9,543
1,054
0,531
"out of memory"
2 028,918
"out of memory"
24 762,647
Tabulka 3: Výsledné časy vyhodnocení XQuery dotazův sekundách
(XP_1) XPath_atrib_dotaz_CR_magda.txt
(XP_2) XPath_atrib_dotaz_UK_magda.txt
(XP_3) XPath_atrib_dotaz_prum_hustota_sveta_magda.txt
(XP_4) XPath_prostor_dotaz_souradnice_magda.txt
(XP_5) XPath_prostor_dotaz_multipolygony_magda.txt
4Suite
Berkeley DB XML
eXist
2,078
0,793
0,074
2,484
0,731
0,108
2,648
1,407
0,138
3,242
1,736
13,389
1,886
0,593
0,058
Tabulka 4: Výsledné č asy vyhodnocení XPath dotazův sekundách
Pozn. Pro grafické znázorně ní časůvyhodnocení dotazůjsem z důvodu velkých rozdílůjednotlivých hodnot použila pro větš í př ehlednost na ose y logaritmické mě ř ítko. 10000,00
Čas [s]
1000,00 100,00 10,00 1,00 0,10 (XQ_1) (XQ_2) (XQ_3) (XQ_4) (XQ_5) (XQ_6) (XQ_7) (XQ_8) Berkeley DB XML
eXist
Obrázek 1: Grafické znázornění času vyhodnocení atributových XQuery dotazůjednotlivých databází 100000,00 10000,00
Čas [s]
1000,00 100,00 10,00 1,00 0,10 (XQ_9)
(XQ_10)
(XQ_11)
Berkeley DB XML
(XQ_12)
eXist
Obrázek 2: Grafické znázornění č asu vyhodnocení prostorových XQuery dotazůjednotlivých databází 100
Čas [s]
10
1
0,1
0,01 (XP_1)
(XP_2)
4Suite
(XP_3)
(XP_4)
Berkeley DB XML
(XP_5)
eXist
Obrázek 3: Grafické znázorně ní času vyhodnocení XPath dotazův jednotlivých databázových systémech
Celkové zhodnocení dotazování Po dokončení testování XQuery a XPath dotazůjsem dospě la k závě ru, že ze vš ech použ itých databází pracovala nejrychleji a nejstabilně ji databáze Berkeley DB XML. Pro ukládání geodat by vš ak tato databáze zř ejměmusela pracovat na výkonně jš ím počítač i, aby dokázala vyhodnotit i slož itě jš í dotazy. Databáze eXist sice byla schopná dokonč it vš echny dotazy, ale celkový potř ebný č as k jejich vyhodnocení je pro praktické využití (alespoňna poč ítač i s podobnou konfigurací) př ílišvysoký, cožje patrné z tabulky 5. Databáze 4Suite dokázala vyhodnotit XPath dotazy velice spolehlivěa v podobných časech, její využ ití bych ale pro ukládání geodat pro nepodporu XQuery nevolila. 4Suite
Berkeley DB XML
eXist
atributové XQuery dotazy
x
4 min 42,786 s
27 min 4,165 s
prostorové XQuery dotazy
x
"nelze vyhodnotit"
7 h 26 min 41,639 s
Xpath dotazy 12,338 s 5,259 s 13,768 s Tabulka 5: Sumarizace č asůjednotlivých databází po vyhodnocení vš ech dotazů
Závě r Vzhledem k výsledkům, ke kterým jsem dospě la př i aplikaci dotazů, považuji využ ití nativních XML databází pro ukládání geodat na poč ítač i s podobnou konfigurací (1,8 GHz, 768 RAM) jako ne př ílišvhodné. Pevněvěř ím, ž e na výkonnějš ích poč ítač ích by např íklad databáze Berkeley DB XML byla schopná vyhodnotit vš echny dotazy a databáze eXist by složitějš í dotazy ř eš ila poně kud rychleji. Negativní výsledky vš ak neovlivnila pouze konfigurace počítač e, hlavní př íč inou byla podle mého názoru š patná vnitř ní struktura zdrojových dokumentů, kde obrovský počet hranič ních souř adnic jednotlivých státůbyl uveden v jednom elementu s nadbyteč nými mezerami (pro jednu dvojici souř adnic cca 25 mezer), proto k problémům docházelo př edevš ím př i prostorových dotazech, kde bylo nutné jednotlivé souř adnice porovnávat. Vlastní velikost souboru samozř ejmětaké hrála významnou roli. S velkými velikostmi souborůse vš ak v oblasti geově d musí poč ítat. Ke zmenš ení velikostí by mohlo vést např íklad nahrazení názvůelementůkratš ími názvy nebo také využ ití binárního XML. Po optimalizaci struktury i velikosti jednotlivých souborůvě ř ím, ž e nativní XML databáze by na výkonně jš ích poč ítač ích bylo možné v praxi využ ít. Jejich vlastnímu využití by vš ak musel př edcházet složitý výbě r z existujících databází, protože pro geodata, jejich správu a zpracovávání by měla databáze podporovat co možná nejvíce XML technologií, a to př edevš ím dotazovací jazyky (zejména XQuery), transformač ní jazyky a jazyky pro aktualizaci.
Seznam zdrojů [1] [2] [3] [4] [5]
BOURRET, Ronald. XML and Databases [online]. c2006 [cit. 2006-08-15]. < http://www.rpbourret.com/index.htm> The Apache Software Foundation. 4SUITE.org [online].c2000 [cit. 2006-09-05]. < http://4suite.org/index.xhtml > Oracle. Sleepycat Products: Berkeley DB XML [nline]. c2006 [cit. 2006-08-15]. < http://sleepycat2.inetu.net/products/bdbxml.html > eXist – Open Source Native XML Databáze[online].[cit. 2006-09-05].
Technologie XML / Irena Mlýnková ... [et al.]. -- 1. vyd.. -- Praha : Karolinum, 2006. -- 186 s. :. -- (Uč ební texty Univerzity Karlovy v Praze). -- 500 výt.. -- ISBN 80-2461272-0 (brož.) :