Interval.cz
Nativnφ XML databßze

DostateΦn∞ hlasit² p°φchod XML standardu mezi nßs nechal jen mßlokoho na pochybßch, ₧e se budeme v budoucnu s tφmto standardem setkßvat stßle Φast∞ji. Ve svΘm Φlßnku nebudu opakovat slova chvßly nebo se zab²vat spletitostmi syntaxe tohoto jazyka, ale zam∞°φm se na mo₧nΘ zp∙soby uchovßvßnφ XML dokument∙ a dat v nich obsa₧en²ch.

P°ed nßvrhem vhodnΘho zp∙sobu uchovßnφ XML dokument∙ bychom si m∞li nejprve ujasnit, jak² hlavnφ ·Φel pro nßs bude plnit nasazenφ XML jazyka v danΘ aplikaci. SouΦasnΘ nasazenφ XML v aplikacφch se odehrßvß p°evß₧n∞ ve dvou rovinßch:

  • zam∞°enΘ na data (data based)
  • zam∞°enΘ na dokument (document based)

Äßdn² ze zmφn∞n²ch sm∞r∙ nemß samoz°ejm∞ naprosto pevnΘ mantinely, ale v₧dy bychom m∞li b²t schopni urΦit, kter² z nich p°eva₧uje. Bude to pro nßs vodφtkem, kterΘ nßm pom∙₧e determinovat typ vhodnΘho datovΘho ·lo₧iÜt∞.

"Data based" XML dokumenty

Tφmto pojmenovßnφm m∙₧eme oznaΦovat XML dokumenty, kterΘ plnφ funkci samopopisnΘ obßlky pro p°enos Φi manipulaci s daty. Samotnß struktura dokumentu je vedlejÜφ, proto₧e hlavnφm cφlem je "vydolovat" data a zcela jednoznaΦn∞ pochopit relace mezi nimi. Jednφm z typick²ch p°φklad∙ tohoto pojetφ je bezesporu vyu₧φvßnφ XML p°i p°enosu tabulek bez ztrßty informace o vzßjemn²ch relacφch.

"Document based" XML dokumenty

U tΘto varianty nasazenφ vyu₧φvßme p°edevÜφm mo₧nosti sΘmantickΘho strukturovßnφ tφmto zp∙sobem napsanΘho dokumentu. XML nßm v tomto p°φpad∞ pomßhß pracovat s dφlΦφmi Φßstmi dokumentu podle jejich v²znamu. DocBook Φi DITA schΘmata jsou praktickou ukßzkou tohoto sm∞ru.

Datovß ·lo₧iÜt∞ pro "data based" XML dokumenty

Jeliko₧ data jsou u tohoto sm∞ru to hlavnφ, co nßs zajφmß, nebude se ani v otßzce datovΘho ·lo₧iÜt∞ jednat o ₧ßdn² p°evrat. RelaΦnφ databßze z∙stßvajφ prozatφm nejvhodn∞jÜφ variantou. Na tomto mφst∞ nßs budou zajφmat nßstroje, kterΘ nßm pomohou p°i zachßzenφ s "data based" dokumentem. V∞tÜina komerΦnφch relaΦnφch databßzi se ji₧ m∙₧e v dneÜnφ dob∞ pyÜnit nßlepkou "XML enabled", co₧ znamenß, ₧e zpracovßnφ dat v XML podob∞ jim ji₧ ₧ßdn² problΘm ned∞lß. P°φpady, kdy datovΘ ·lo₧iÜt∞ nenφ jeÜt∞ zcela vybaveno XML podporou, uvol≥ujφ prostor pro komponenty (meziΦlßnky), kterΘ m∙₧eme pou₧φt pro zpracovßnφ XML dat. V neju₧Üφm slova smyslu jsou asi nejznßm∞jÜφm zßstupcem ADO.NET komponenty.

Charakteristick²m rysem je skuteΦnost, ₧e databßze nßm data m∙₧e poskytnout zp∞t v rozdφln∞ strukturovanΘm XML dokumentu, ne₧ jsme jφ poskytly my. S tφmto rysem se Φasto setkßme pod pojmem "round-tripping". D∙vodem jsou p°evodnφ algoritmy (table based, object based a podobn∞), kterΘ ze svΘ podstaty nejsou schopny p°edat informace o specifick²ch, pro data nepodstatn²ch elementech.

Nativnφ XML databßze

Prßv∞ existence relativn∞ novΘho sm∞ru v²voje dokument∙, kter² m∙₧eme spat°ovat v rovin∞ "document based" XML dokument∙, zap°φΦinil vznik novΘho typu databßzov²ch server∙ (Native XML databases). Hlavnφm ·kolem nativnφch XML databßzφ (dßle jen NXD) je ulo₧it XML dokument vΦetn∞ jeho logickΘ struktury a podoby. Dokument obdr₧φme zp∞t p°esn∞ v takovΘ podob∞, v jakΘ jsme jej p°edali databßzi, vΦetn∞ vÜech poznßmek apod.

Princip fyzickΘho uklßdßnφ dat je r∙zn². Nativnφ XML databßze m∙₧e vyu₧φvat bu∩ svΘ proprietßrnφ °eÜenφ nebo vyu₧φt slu₧eb relaΦnφ databßze. V souΦasnΘ dob∞ nebude neobvyklΘ, kdy₧ narazφte na NXD, kterß bude sm∞°ovßna pouze jako p°φstupovß vrstva, umφst∞nß nad relaΦnφ databßze. Zp∙sob fyzickΘho uklßdßnφ dat ale nenφ podstatn² a v∞tÜina NXD ho p°ed nßmi bude ·sp∞Ün∞ skr²vat.

Mnohem podstatn∞jÜφ jsou funkce, kterΘ nßm NXD p°inßÜφ. Pat°φ mezi n∞ nap°φklad mo₧nost indexovßnφ ulo₧en²ch dokument∙ pro v²raznΘ zv²Üenφ v²konu a mo₧nost provßd∞nφ dotaz∙ nap°φΦ sadou dokument∙ umφst∞n²ch v takzvanΘ kolekci. Pro lepÜφ p°edstavu si m∙₧eme p°irovnat jeden XML dokument k jednΘ °ßdce v relaΦnφ databßzi a kolekci k jednΘ tabulce v relaΦnφ databßzi. Nemusφme jφt ani p°φliÜ daleko a ji₧ objevφme rozdφl - v NXD m∙₧eme umφstit dokumenty zalo₧enΘ na r∙zn²ch XML schΘmatech do jednΘ kolekce (Schema independent). To nßm m∙₧e p°inΘst zv²Üenφ flexibility, ale ve v∞tÜin∞ p°φpad∙ to spφÜe p°inese problΘmy a nekonzistence, proto mohou b²t kolekce zßvislΘ takΘ na XML schΘmatu (Schema dependent).

Dotazovacφ jazyk

Ji₧ jsem zmφnil spojenφ "provßd∞t dotazy", ale jak²m jazykem? Odpov∞∩ nenφ zdaleka tak jednoduchß, jak by se mohlo zdßt. V souΦasnosti je Φasto vyu₧φvan²m spoleΦn²m jazykem XPath, kter² se ji₧ hojn∞ vyu₧φvß p°i XSL transformacφch, ale bohu₧el neimplementuje takovΘ funkce, kterΘ by se lΘpe hodily na skupiny XML dokument∙ (agregace...). S v∞domφm tohoto nedostatku se vyvφjφ hned n∞kolik lepÜφch variant dotazovacφch XML jazyk∙ (XQuery, XQL, viz nap°φklad XML-QL). Bohu₧el jeÜt∞ ₧ßdn² z nich nemß takovou podporu, abychom ho mohli pou₧φt jako odpov∞∩ na naÜi otßzku. Nynφ je tedy situace takovß, ₧e dotazovacφ jazyk je siln∞ zßvisl² na pou₧itΘ NXD, dokonce n∞kterΘ NXD mohou implementovat vlastnφ verze dotazovacφch jazyk∙. M²m osobnφm favoritem je XQuery (XML Query), ale ji₧ jsem se zm²lil v ₧ivot∞ mnohokrßt.

Obecn∞ lze ale °φci, ₧e pokud jste zvyklφ pracovat s XML dokumentem (DOM, SAX at.), nebude pro vßs ₧ßdn²m problΘmem zvyknout si na prßci s jakoukoli NXD.

Mo₧nosti vyu₧itφ nativnφch XML databßzφ

Osobn∞ jsem si vyzkouÜel Tamino Server, co₧ je ji₧ dostateΦn∞ etablovan² zßstupce popisovan²ch NXD. Mohu op∞t jen zd∙raznit, ₧e zda zvolφte NXD Φi relaΦnφ databßzi, zßle₧φ v prvnφ °ad∞ na cφlech, kterΘ majφ vaÜe XML dokumenty plnit ("data based" Φi "document based"). Nativnφ XML databßze jsou tedy "pouze" dalÜφm p°φjemn²m p°φr∙stkem, kter² rozÜi°uje portfolio XML nßstroj∙ a p°i jeho vyu₧φvßnφ je pot°eba dob°e zvß₧it vÜechny klady a zßpory zvolenΘho °eÜenφ.

U₧iteΦnΘ odkazy



Petr Äi₧ka (20.2. 2003)

Redakce Interval.cz |  Inzerce na Interval.cz |  Hledßme novΘ autory ISSN 1212-8651 
 ⌐ Zoner software, s.r.o., vÜechna prßva vyhrazena, tento server dodr₧uje prßvnφ p°edpisy o ochran∞ osobnφch ·daj∙.