Perspektivy vývoje XML databází

Potřeba ukládat XML data do databáze se objevila již v počátcích použití jazyka XML v byznysu. Weby realizující obc...


Potřeba ukládat XML data do databáze se objevila již v počátcích použití jazyka
XML v byznysu. Weby realizující obchodování typu B2C a B2B, webové služby,
aplikace využívající řízení obsahu, jakož i integrace dat a aplikací vyžadují
ukládání XML dat databázovým způsobem. Bez databázové podpory jsou vývojáři
nuceni využívat pro ukládání XML dat různé souborové systémy, což ztěžuje
tvorbu některých aplikací.
Jaké jsou technické možnosti ukládání a manipulace s XML daty? Existují dva
základní směry: databáze zpřístupňující XML data a nativní XML databáze. Podle
seznamu, který udržuje na webových stránkách R. Bourret, zjistíme, že existuje
alespoň 14 komerčních produktů prvního druhu a 28 produktů druhého druhu,
dalších 7 produktů je open source software.
Snahy výrobců (objektově) relačních SŘBD (systém řízení báze dat) je ukládat
XML data do tabulek. To může přinést efekt v některých jednoduchých případech,
např. když XML data pocházejí z relační databáze. V širším pohledu však jde o
směr, který nelze použít pro všechny typy úloh. Vyhledávání v takových
databázích je často neefektivní. Indexy relačních databází totiž nejsou pro
obecné použití na stromové struktury XML dat vhodné. Aby bylo možné efektivně
vyhodnotit určité dotazy, je nutné sledovat navigaci ve stromové struktuře XML
dat. Tento problém se snaží řešit nativní XML databáze.
Jak se k novému trendu stavějí současné standardy? Důležitá jsou zejména
doporučení konsorcia W3C a skupiny H2.3 Task Group, vyvíjející standard SQL/
/XML. Skupina zahrnuje firmy IBM, Microsoft, Nothrop Grumman Information
Technology a Sybase. Další významnou průmyslovou iniciativou je XML: :DB, která
se zabývá hlavně návrhem API k XML databázím.

Nativní XML databáze
Termín nativní XML databáze vznikl v komerční sféře a jako takový nemá jasnou
definici. Lze ji charakterizovat takto:
Pro ukládání a dotazování XML dat se používá logický model XML dat, který
zahrnuje minimálně elementy, atributy, obsah elementů typu PCDATA a uspořádání
elementů.
XML dokument je základní jednotkou logické paměti na rozdíl od relační
databáze, kde je touto jednotkou řádek tabulky.
Fyzický paměťový model jako relační, síťový či hierarchický (ve smyslu
příslušných databází) nemusí být využíván. XML databáze mají původní
implementaci s vlastními indexy či kompresí dat.
Jako dotazovací jazyk se v těchto systémech používá XPath a hlavně XQuery.
Umožněna je též aktualizace databáze, snahou je realizovat i pojem transakce,
uzamykání dat a souběžný přístup. Připomeňme zde jazyk XUpdate iniciativy
XML:DB. Mezi vhodná, neproprietární API patří opět API vyvinuté touto
iniciativou. Z komerčních produktů nativních databází dnes patří ve světě k
nejcitovanějším SŘBD Tamino firmy Software AG.

Kam dál
Další otázkou je, jak systematicky a efektivně provádět integraci relačních dat
a XML dat. Varianta realizace prostřednictvím jazyka SQL/XML je v plné
obecnosti obtížně realizovatelná. Návodem k řešení může být strategie IBM,
která vidí budoucnost DB2 v bilingvním přístupu. Jazyky SQL a XQuery se v
databázovém systému dostávají na jednu úroveň. Dokazuje to projekt Xperanto
nabízející možnost integrovat nativní XML databázi do SŘBD DB2.
Vědecká komunita intenzivně pracuje na návrhu a testování nových efektivních
datových struktur pro XML databáze a pro efektivní implementaci jazyka XQuery.
Vývoj XML databází lze jistě urychlit, ale ne přeskočit.
Otec několika komerčních SŘBD Mike Stonebraker předvídal na panelové diskusi v
Atlantě v roce 2001, že efektivní produkty založené na XML vhodné pro širokou
praxi lze očekávat až za 10 let.
Zdá se, že hegemonie relací je konečně narušena. Důkazem toho se nedávno stal
objektově relační přístup. V případě nativních XML databází však jde o víc. XML
data mají stromovou či dokonce síťovou strukturu. Svět hierarchických a
síťových databází tu však již kdysi byl. Jeden z tvůrců jazyka XQuery a zároveň
otců SQL Don Chamberlin zmiňuje v rozhovoru pro DB2 Magazine v této souvislosti
Charlese Bachmana, který stál koncem 60. let u zrodu síťových databází.
Současné databázové trendy související s XML a webem nazývá "Bachmanovou
pomstou". Naštěstí jde o směr, který by neměl relační databáze nahradit, ale
pouze pomoci pokrýt potřeby, na které nestačí.
Tomuto tématu se věnuje přednáška na konferenci Systémová integrace 2003.
Jaroslav Pokorný je profesorem informatiky a vedoucím katedry softwarového
inženýr-ství Matematicko-fyzikální fakulty Karlovy univerzity v Praze.

SRBD zpřístupňující XML
Ve vývoji SŘBD (systém řízení báze dat) zpřístupňujících XML data jsou patrné
dva přístupy:
rozšiřující moduly (objektově) relačních SŘBD (např. cartridge v Oracle,
extender v DB2, Datablade v Informixu)
rozšířený jazyk SQL (SQL/ /XML)
Pro uložení XML dat v (objektově) relačních SŘBD se uplatňují techniky:
XML sloupec, který umožňuje ukládat celý XML soubor v jedné komponentě řádku
tabulky.
XML kolekce, pro kterou jsou XML data dekomponována do řádků a sloupců více
tabulek.
XML sloupec je vhodný pro data, která nejsou často měněna, je však požadováno,
aby výstup byl přesně takový jako vstup. Vyhledávání lze urychlit indexací. XML
kolekce je vhodná pro dynamická data, přičemž jejich změny musejí být provedeny
rychle. Reverzibilita dekompozice zde není základním požadavkem.
Dotazovací jazyky těchto systémů jsou jednak založeny na šablonách, jednak
odrážejí vývoj jazyka XML/SQL. Další možností je využít SQL přímo na
vygenerovaných strukturách (objektově) relační databáze. Jsou-li XML data
uložena v řádku tabulky jako text, lze také použít nástroje pro fulltextové
zpracování.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.