Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyDatabázové systémy v biomedicíně Základy XML Práce s XML v databázi

Logo Matematická biologie

Práce s XML v databázi

Jelikož je XML dokument textový soubor, můžeme ho vždy v databázi uložit v běžném textovém (VARCHAR, případně CLOB) sloupci. Tím bychom ale přišli o všechny nástroje, které se XML souvisí.  Dnešní databáze proto nabízí speciální datový typ pro uložení XML dokumentů a jejich fragmentů. V ORACLE jde o datový typ XMLTYPE. Sloupec tabulky tohoto typu může obsahovat nejen správně formátovaný XML dokument, ale taktéž tzv. XML fragment, který nesplňuje všechny podmínky korektního XML dokumentu, například není vyžadován právě jeden kořenový element. Tabulku, která obsahuje textový sloupec a sloupec pro ukládání XML vytvoříme pomocí následujícího příkazu:

CREATE TABLE jmeno_tabulky

(

velky_text CLOB,

xml_sloupec XMLTYPE

);

Hodnoty mezi sloupci můžeme převádět následovně:

UPDATE jmeno_tabulky SET xml_sloupec = XMLTYPE(velky_text);

UPDATE jmeno_tabulky SET velky_text = xml_sloupec. Getclobval();

 

Existuje několik cest, jak vložit XML dokument do databáze. U malých dokumentů je nejjednodušší cesta přes klasický INSERT příkaz, kdy můžeme vkládat dokument přímo do XMLTYPE sloupce nebo případně přes textový sloupec a následný přesun pomocí výše uvedeného UPDATE příkazu. Pro větší soubory v ORACLE lze využít utilitu sqlldr. Pro opakované nahrávání XML dokumentů stejného typu do ORACLE je možné využít XML repozitář (XML DB repository). Tento prvek je rozhraním mezi souborovým systémem serveru a vnitřní strukturou databáze. Pomocí XML schématu můžeme svázat schématu odpovídající XML dokument s XML tabulkou databáze. Ke XML repozitáři lze přistupovat jako k síťovému disku a XML soubory tak lze snadno nakopírovat dovnitř. Pokud je XML dokument validní z pohledu registrovaného XML schématu, je okamžitě viditelný jako řádek v navázané databázové XML tabulce a můžeme s ním pracovat pomocí SQL příkazů.

 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity