Relační databáze a XML: Příběh, který pokračuje dále

Jazyk XML je dnes bez nadsázky lingua franca internetu. Není nicméně žádným tajemstvím, že klasické relační datab


Jazyk XML je dnes bez nadsázky lingua franca internetu. Není nicméně žádným
tajemstvím, že klasické relační databáze nejsou pro ukládání XML dokumentů
nejvhodnějším řešením. Proto se jejich dodavatelé pokoušejí prostřednictvím
nejrůznějších rozšíření integrovat "nový svět" do toho starého.
Nyní už není svět dat pouhou "plochou" tabulkou, členěnou po vzoru šachovnice
do řádků a sloupců ukrývající hodnoty, které mohou být uvedeny do vzájemných
vztahů. Vedle tohoto relačního modelu vstoupil na scénu také "trojrozměrný"
model. V prostředí internetu se pohybují nejen dokumenty, které sestávají pouze
z písmen (znaků) a čísel, ale také ty, jenž obsahují jiné datové typy pro
obrázky, video či hudbu nebo kompletní aplikace, které mohou být také navíc
uspořádány ve více rovinách (ve stromové struktuře) a jsou provázány s jinými
dokumenty. Základem těchto komplexních dokumentů, které je možné považovat za
sbírku dat, je metajazyk označovaný jako XML (eXtensible Markup Language).
Zpočátku se zdálo nevyhnutné, že pro nové datové typy budou zapotřebí
odpovídající metody pro jejich ukládání a analýzu ty byly vzápětí realizovány v
podobě tzv. nativních XML databází. K nejúspěšnějším produktům tohoto typu
patří např. Tamino firmy Software AG, která se spolu s dalšími výrobci
podobných řešení může těšit na dobré časy. Společnost IDC totiž předpokládá, že
roční růst trhu XML databází bude dosahovat 130 % a v roce 2004 se dostane na
objem 700 milionů dolarů. Analytik Anthony Picardi vidí, že postupně vznikají
dva paralelní databázové světy: "XML databáze doplňují jejich relační
protějšky. Ty prvně jmenované jsou lépe připraveny pro ukládání dokumentů, ty
druhé pak pro text a čísla."
Nicméně nových příležitostí na trhu spojených s rozšířením XML se nehodlají
vzdát ani dodavatelé relačních databází. Už v roce 1999 firmy IBM a Oracle
poprvé představily doplňkové funkce, potažmo verze svých produktů, které (i
když ještě dosti omezeně) umožňovaly ukládat XML dokumenty. Argument, jímž tyto
firmy přitahují pozornost, od té doby zní: Je ekonomičtější mít vše v jediné
databázi, než spravovat dva systémy provozované takříkajíc vedle sebe a přitom
se je snažit navzájem sladit a integrovat dohromady. Kromě toho se relační
databázové řídicí systémy (RDBMS) ukazují jako spolehlivá a škálovatelná řešení
pro ukládání informací, zatímco dokumenty už nejsou brány jako prezentační
formát.

Velké objekty v tabulkách
Tento povrchní přístup při nahlížení na uvedenou problematiku se ovšem v
průběhu doby přece jen změnil. Ve všech oznámeních dodavatelů RDBMS už nestojí
v popředí ani tak optimalizace funkcí samotných relačních systémů, nýbrž údajně
až k dokonalosti vylepšené možnosti práce s XML. V principu se ale mnoho
nezměnilo. XML dokumenty jsou sice pokládány za nové datové typy, jinak ale
mohou být zpracovávány podobně jako relační data nebo objekty. Jak se vše jeví,
ukazuje průzkum společnosti Butler Group "Database Management Systems Managing
Relational and XML Data Structures". Na této analýze je do značné míry založeno
také následující shrnutí současného stavu integrace XML do relačních databází
předních dodavatelů. Zaměřuje se přitom zejména na nejpokročilejší integraci
XML v databázích DB2 firmy IBM ve verzi 8.1 rozšířené o XML-Extender, Oracle9i
a SQL Server 2000 společnosti Microsoft.
Nejjednodušší metoda, jak uložit XML dokument do databáze, spočívá v možnosti
zobrazit (uložit) jej kompletně jako Character Large Object (Clob) nebo Binary
Large Object (Blob) v její tabulkové struktuře. Přitom se však ještě odděleně
ukládají doplňkové informace o dokumentu, jako např. definice jeho layoutu, aby
nebylo příliš náročné provádět operace typu vyhledávání a třídění.
Jak Oracle, tak IBM a Microsoft používají tuto techniku, i když v odlišné
podobě, ačkoliv má své nedostatky: Aktualizace dokumentu (např. jeho položek
"Ulice/číslo", "PSČ" a "Město") se nezaměřuje na tyto jednotlivé elementy,
nýbrž vyžaduje vyvolání celého dokumentu. To ovšem výrazně sníží datovou
propustnost. Ještě více času stojí, když jde o update komplexnějších dokumentů.
Jejich struktury vytvářejí (napodobují) relační databáze prostřednictvím Joins,
což ovšem časovou náročnost při práci s nimi dále zvyšuje.
Lze se proto setkat s problémem, že je XML dokument ve větší či menší míře
analyzován, aby mohly být jeho jednotlivé části zpracovány. Na základě DTD
(Document Type Definitions) nebo jeho tagů je možné dokument "rozkouskovat" a
vložit do relačního systému položek a záznamů. Tento postup má ovšem nevýhodu v
tom, že zabírá velký paměťový prostor.

Drtiče dat
IBM používá pro převod/přenos XML dokumentů do DB2 (a pro jejich obnovení) jako
propojovací instanci bezplatně dostupné rozšíření databáze XML-Extender. XML
Schema či DTD data jsou přeložena prostřednictvím proprietárního řešení Data
Access Definition (DAD), s jehož pomocí lze ukazovat na elementy v relačních
tabulkách. Dokumenty jsou přitom kompletně fragmentovány podle typů jako Clob
nebo rozloženy jako jednotlivé elementy.
V takovéto různé granularitě může ukládat XML dokumenty i Microsoft SQL Server
2000. Jeho řešení je označováno jménem XML for SQL Server, zkráceně XMLSQL. Je
přitom dodáváno jako součást sady Feature Pack k SQL Serveru 2000, který je k
dispozici prostřednictvím bezplatného stažení. Microsoft nepřistupuje k XML ani
tak z hlediska rozšíření databáze, nýbrž považuje integraci spíše za otázku
middlewaru. "Naším cílem je přístup k informacím nezávisle na tom, kde se
nacházejí," vysvětluje Tom Rizzo, manažer Microsoftu pro SQL Server. Je
nápadné, že řešení Microsoftu v protikladu k IBM a Oraclu nepodporuje syntaxi
XML jako Processing Instruction Information (informace o programech
integrovaných v dokumentech) nebo Namespaces Declarations.
Oracle zpracovává XML dokumenty jako vlastní datový typ XML-Type, který je
převážně ukládán jako Clob. V databázi se nacházejí vedle dokumentů samostatně
uložené atributy a XML schémata (založená na specifikaci XML Schema). Schémata
mají oproti DTD výhodu, že umožňují označovat datové typy jako datum nebo čas,
což zjednodušuje zpracování dokumentů.
IBM a Oracle podporují ve svých řešeních také nejdůležitější standardy rozhraní
DOM a SAX pro programování aplikací (potažmo API). Document Object Model
umožňuje aplikacím prohledávat struktury dokumentů a zpracovávat jejich
elementy. Prostřednictvím Simple API for XML lze spouštět parsovací procesy.
Ve věcech dotazovacího jazyka se všechny 3 produkty shodují. Klasický
dotazovací jazyk pro relační databáze, SQL, není pro XML dokumenty nejvhodnější
přinejmenším pokud před tím nejsou modifikovány pro dvojrozměrné systémy.
Řešením pak může být rozšíření SQLX.

Jazyky ve vývinu
Původní dotazovací standard XQL byl již překonán. Jeho následník doporučený
standardizační organizací W3C XPath podporují všichni tři uvedení dodavatelé
Oracle, Microsoft i IBM. XPath nejenže umožňuje prohledávat obsah dokumentů,
ale funguje také v hlubší logické struktuře (stromu) dokumentu a může rovněž s
jejími částmi či elementy operovat.
Dotazovací jazyk XQuery, který jde ještě dál, zatím používají pouze nativní
databáze jako Tamino. Ten obsahuje současně i nejdůležitější funkce jiných
dotazovacích systémů, jako např. XML-QL, XQL, OQL a dokonce i SQL. XQuery byl
původně vyvinut jako proprietární jazyk firmou Software AG. Posléze však byl s
podporou IBM dán k dispozici konsorciu W3C jako návrh pro standardizaci. IBM
ohlásilo, že v budoucnosti (zatím však blíže nespecifikované) hodlá XQuery
podporovat ve své databázi, zatímco Oracle se dosud k této technice staví
záporně jako nevyhovující z hlediska zajištění dostatečného výkonu.
Oracle se chce v nejbližší budoucnosti zaměřit především na to, aby XML
integroval ještě hlouběji do jádra své databáze než dosud. S verzí Oracle9i
Release 2 k tomu udělal první kroky. Díky tomu je možné kombinovat dotazy
jazyka XPath s SQL výrazy. Podle názoru dodavatele je duální jádro databáze
nejlepší metodou odpovídající vlastní zásadě "jedna databáze namísto redundace
dat".

Jedna databáze?
V případě IBM nese budoucnost XML název Xperanto. Projektová skupina sleduje
myšlenku externího nasazení. Pracuje na middlewarovém frameworku, který by mohl
nahradit doplněk DB2 pro práci s XML, tedy Extender. K tomu však zatím nedošlo
ani v aktuální verzi databáze (8.1). Technologie Xperanto je založena na
specifikaci XQuery a měla by umožnit zachycení a zpracování jak
strukturovaných, tak nestrukturovaných dat. Data z relačních systémů je možné
popsat v XML pohledu, jakož i spojovat webovými službami a textovým
vyhledáváním. Strategie vývoje jádra spočívá v případě IBM v úmyslu setrvat u
heterogenních systémů pro ukládání dat, ty pak ale propojit prostřednictvím
middlewaru Xperanto, aby se zabránilo redundanci dat.
Microsoft pracuje pod kódovým označením Yukon na příští generaci SQL Serveru
2000. Jeho dokončení je očekáváno přibližně v průběhu příštího roku. V budoucnu
by už mimo jiné nemělo být nutné XML data nejprve konvertovat před tím, než
budou moci být použita v aplikacích založených na SQL Serveru. Strategicky
Microsoft následuje zásadu Oraclu, že strukturovaná a nestrukturovaná data by
měla být sloučena v jednom jediném systému pro jejich ukládání.









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