XML Database

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

SADRAJ

1. 2. 3. 4. 5. Uvod XML, HTML, XSLT, XPath, XQuery Tipovi XML baza podataka Izbor naina skladitenja XML dokumenta Literatura 3 4 6 12 13

Uvod
XML (Extensible Markup Language proiriv jezik za oznaavanje) je u svojoj osnovi informacija o informaciji. Vie nije dovoljno imati samo informaciju jer to u dananjim uslovima znai traiti i pronai istu, ve je potreban nain da opiemo informaciju, a da taj opis informacije upotrebimo dalje za pronalaenje iste i za njenu dalju obradu. Prvo se u IBM-u pojavio SGML (Standard Generalized Markup Language) kao odgovor na problem prebacivanja dokumenata sa jedne na drugu platformu. Zatim se krajem osamdesetih u CERN-u (evropskoj laboratoriji za fiziku atomskih estica) pojavio HTML, a kada je posle uspene promocije na internetu postalo oigledno da HTML ne moe ba sve rodila se ideja o XML-u negde 1996 godine. Meutim XML nije evoluirani HTML. On je komplement HTML-u i dizajniran je ne da zameni HTML ve da ponudi ono to HTML ne moe.

XML, XSLT, XPath, Xquery

XML (engl. eXtensible Mark-up Language) je proirivi jezik zasnovan na oznakama (engl. tags) koji prua tekstualni format zapisivanja podataka nezavisan od raunarske platforme. XML je osnovni jezik pomou kojeg su oblikovani ostali standardni jezici. Za razliku od HTML-a gde oznake odreuju nain prikazivanja podataka, XML oznake nose informaciju o znaenju podataka. Takoe, XML uvodi dodatna pravila u odnosu na sintaksu HTML-a zbog lakeg parsiranja i obrade. Nadalje, XML moe sadrati nestrukturirane podatke poput tekstualnih dokumenta i strukturirane podatke kao u bazama podataka. Mogue je i postavljanje upita na sadraj dokumenta, odnosno mogue je postavljati upite prema strukturi i vrednostima podataka u XML dokumentu. Suprotno od skupa oznaka jezika HTML koji je unapred definisan, skup oznaka XML-a ima svojstvo proirivosti, odnosno skup oznaka mogue je definisati i proiriti zavisno od potrebe. Zato se XML koristi za razne primene jer prua mogunost definisanja struktura i sintakse zavisno od potrebe. Na primer, XML se koristi u uim industrijskim primenama, ali takoe i za izgradnju standardnih jezika. Skup oznaka koje koristi odreeni XML dokument naziva se renik (engl. vocabulary) XML dokumenta. S obzirom da je razvijeno mnotvo nezavisnih renika XML dokumenata, mogue je da oznake i atributi istih imena poseduju razliito znaenje u razliitim renicima. Da bi se izbeglo meanje i zabuna uvodi se pojam prostora imena (engl. namespace) koji se zadaje pomou URI-a (engl. uniform resource indentifier). Smetanjem u zadati prostor imena svaki element i svaki atribut jednoznano su odreeni. Svaki XML dokument sadri dva svojstva valjanosti: svojstvo dobre oblikovanosti i svojstvo ispravnosti. XML dokument je dobro oblikovan (engl. well-formed) ako sledi odreena pravila koja definiu XML jezik. Na primer, XML dokument sme imati samo jedan korenski element, potrebno je da svaka poetna oznaka ima pripadnu zavrnu oznaku te se zahteva da element dete bude pravilno ugnijeen. XML dokument sadri odreene tipove podataka koji su definisani hijerarhijskom strukturom XML elemenata zavisno od primjene. XML Schema jezik zasnovan na XML-u prua standardan nain definisanja strukture XML dokumenta i tipova podataka. Na primer, mogue je definisati jednostavni celobrojni tip podataka, a i sloeni tip kao to je zapis sastavljen od celobrojnog podatka i znakovnog niza. Osim toga, pomou XML Schema-e definiu se ogranienja nad vrednostima podatkovnih tipova. Zato je svojstvo ispravnosti (engl. validity) XML dokumenta zadovoljeno ako podatkovni tipovi odgovaraju definisanim tipovima u pridruenom XML Schema dokumentu te ako vrednosti tipova zadovoljavaju postavljena ogranienja. Programska komponenta koja proverava ispravnost XML dokumenata obino se naziva XML validator.

Primer XML dokumenta:

<?xml version="1.0" encoding="UTF-8"?> <CONTACT> <NAME>Ivan Ivkovi</NAME> <ADDRESS>Zetska 3, Beograd</ADDRESS> <COMPANY>CePP</COMPANY> <TEL_NUM>555-444</TEL_NUM> <EMAIL>ivan.ivkovic@cepp.rs</EMAIL> <NOTE/> </CONTACT>

XSLT (engl. extensible Stylesheet Language: Transformations) je jezik za transformaciju XML i transformie strukturu XML dokumenta. XSLT sadri naredbe kao i tradicionalni programski jezici kao to su varijable, funkcije, iteracije i provere uslova. XSLT omoguuje razdvajanje sadraja od prezentacije (kako bismo mogli informacije prikazati na razliitim ureajima, u razliitim oblicima,...) pa se najee koristi za transformaciju XML u HTML. Takoe, XSLT omoguuje jednostavno transformisanje jednog XML-a u drugi XML, kako bi se uskladili protokoli i integrisala razliita reenja.

XPath je jezik za pronalaenje informacija u XML dokumentima. Predstavlja izraze koji mogu sadrati put ka elementima XML dokumenta, pozive funkcija, reference na varijable, matematike operacije itd. Koristi se zajedno sa XSLT da bi se odabrao skup elementa iz XML koji se eli transformisati.

XML Query (XQuery) omoguuje prilagodljive mehanizme za postavljanje uslova (engl. flexible query utilities) za ekstrahiranje podataka iz dokumenata omoguujui potrebnu interakciju izmeu web-a i baza podataka. XQuery je baziran na XML strukturi, a moe se koristiti i za XML dokumente koji nemaju shemu. Jezik je dizajniran od strane W3C kao jezik s konciznom i lako razumljivom sintaksom.

Tipovi XML baze podataka

Fiat files

Flat file je najjednostavniji oblik XML baze podataka. XML dokumenti se snimaju u datoteku, a njima se rukuje pomou nekog API-ja (aplikacioni programski interfejs). To je prihvatljiva metoda za mali skup XML dokumenata. Postoje alati za pretraivanje i modifikaciju, indeksiranje i transakcijsku obradu podataka.

Primer flat file-a:

Diets\ Diets\Atkins Dayl.xml Day2.xml Day3.xml Day4.xml Diets\3DayDiet Dayl.xml Day2.xml Day3.xml

Relacijske baze podataka

Skladitenje u relacijsku bazu podataka automatski nudi niz prednosti koje ove baze imaju nad flat file oblikom: viekorisniki pristup, sigurnost, transakcije,... Tri su osnovna naina za smetanje XML-a u relacijsku bazu podataka. CLOB (Character large object) isto" relacijski pristup (Pure relational) XML enabled relacijske baze podataka

Skladitenje XML-a u CLOB:

Kod pohrane na ovaj nain pretraivanje i modifikacija se vre nad dokumentom izvan baze podataka. Baza podataka nije svesna" da smo u nju smestili XML pa ne nudi nikakve servise za rad s XML-om. XML dokumenti nisu indeksirani to degradira perfomanse, a izgradnja vlastitog alata za indeksiranje se preporuuje samo ako se radi s malim skupom XML dokumenata.

isto" relacijski pristup:

Kod ovog pristupa koriste se prednosti relacijskog modela - XML podaci se mapiraju na redove i vrste. Dve najznaajnije tehnike mapiranja su table-based i object-relational mapiranje.

table-based mapiranje

Mapiranje zasnovano na tablicama je korieno od strane velikog broja proizvoda, a modeluje XML dokument kao jednu ili kao skup tablica. Table-based mapiranje se koristi najvie za serijalizaciju podataka iz relacijske baze podataka.

Primer:

<database> <table> <row> <column1>... </column1> <column2>... </column2>... </row> <row> ... </row> ... </table> <table> ... </table> ... </database> 6

object-relational mapiranje

Koristi se od strane svih XML enabledrelacijskih baza podataka. XML se modeluje kao stablo objekta. Kao klase objekta se modeluju elementi koji sadre atribute, meoviti sadraj i sloeni elementi, a kao skalarna obeleja se modeluju jednostavni elementi i PCDATA. Zatim se klase mapiraju u tablice, a skalarna obeleja u vrste

Primer:

<?xml version ="1.0"?> <Narudbina brojNarudbine="12345"> <Kupac brojKupca="543"> <NazivKupca>CePP </NazivKupca> <Ulica>Zetska 3 </Ulica> <Grad>Beograd </Grad> <PotanskiBroj>11000</PotanskiBroj> <Drava>Srbija</Drava> </Kupac> <Datum>5.6.2005.</Datum> <Stavka brojStavke="1"> <Deo brojDela="123"> <Opis> <p><b>Francuski klju:</b><br/> Nehrajui elik, doivotna garancija.</p> </Opis> <Cena>735.68</Cena> </Deo> <Koliina>10</Koliina> </Stavka> <Stavka brojStavke="2"> <Deo brojDela="456"> <Opis> 7

<p><b>Pitolj za farbanje:</b><br /> Aluminijum, jednogodinja garancija.</p> </Opis> <Cena>1452.78</Cena> </Deo> <Koliina>5</Koliina> </Stavka> </Narudbina>

Glavni problemi kod isto" relacijskog pristupa slede iz razlika izmeu XML formata i relacijskog modela. Samo mapiranje moe biti sloen posao, a manipulacija nastalom strukturom jo sloenija.

XML enabled relacijske baze podataka:

Kao odgovor na ove probleme, u relacijske oblike su ugraeni mehanizmi koji olakavaju rad s XML dokumentima. XML enabled baza podataka je svesna" da radi s XML strukturama i u skladu s time nudi razliite servise. Ovakve baze podataka mogu smestiti XML u CLOB, ali i u vie tabela kada se koristi objektno-relacijsko mapiranje. Nad takvim podacima su implementirane mogunosti za pretraivanje teksta koje su specifine za XML dokumente, a iste omoguuju jednostavniju izradu efikasnih aplikacija. Nove mogunosti uglavnom ukljuuju podrku za upitne jezike (najee XPath) i APIje (najee DOM = Document Object Model) koji su u skladu s preporukama World Wide Web Consortiuma. Koristei SQL i njegove dodatke lociraju se slogovi, a baza podataka omoguuje pogled na te podatke u XML formatu. XML enabled baze podataka, dakle, ne uvode novi model za rad s XML-om ve proiruju postojei - relacijski. 8

Najpoznatije realizacije XML enabled baza podataka su: Oracle 9i Oracle 10g Microsoft SQL Server 2000 Microsoft Access XP IBM DB2

Native XML

Efikasno skladitenje XML-a u RDBMS (Relational DataBase Management System) podrazumeva implementaciju tehnika za premoivanje razlika izmeu dva modela. Alternativni pristup je izgradnja novog tipa baze podataka koja bi: kao osnovnu logiku jedinicu imala XML dokument podacima manipulisala koristei XML standarde

Takvi proizvodi se nazivaju Native XML baze podataka. Native XML baze definiu logiki model za dokument, a ne definiu uslove za podatke u dokumentu. Zato se sve komponente XML modela skladite bez izmene. U bazu se moe smestiti samo XML, a iz baze se moe dobiti samo XML. XML format se automatski mapira na odabrani model za fiziko skladitenje podataka. Takvim podacima se upravlja samo posredno; pomou baze podataka i XML upitnih jezika. Sve Native XML baze podravaju jedan ili vie upitnih jezika. U poetku se najvie koristio XPath, ali kako ovaj jezik nije bio kreiran za tu namenu, W3C je razvio XQuery upitni jezik. Native XML baze podravaju indeksiranje sadraja to, naravno, bitno utie na performanse. Promena i brisanje se mogu izvesti na 3 naina: izvan baze pomou nekog API-ja; da se za tu namenu definie neki jezik (XUpdate inicijativa); sam upitni jezik sadri i ove mogunosti. Sve Native XML baze podravaju upotrebu nekog od API-ja. API-ji nude mogunost za spajanje na bazu, postavljanje upita, pretraivanje meta-podataka, ... Rezultati se obino vraaju u formi XML stringa ili DOM stabla. Ako rezultat upita moe sadrati vie dokumenata, podrane su i metode za iterativni prolazak kroz skup.

Primer Native XML-a:

<?xml version="1.0"?> <diet> <meal mealName="breakfast"> <item itemName="toast" unit="slice" quantity="2" /> <item itemName="bacon" unit="strip" quantity="2" /> </meal> </diet>

Najistaknutije implementacije Native XML baza podataka su: Tamino (SoftwareAG) Xindice (Apache) oZone eXist ...

10

Izbor naina skladitenja XML dokumenta


Jedan od najbitnijih faktora pri izboru naina skladitenja podataka je oblik onoga to skladitimo. Data centric dokumenti koriste XML za transport podataka, a namenjeni su prvenstveno za itanje od strane raunara. Osobine su im: a) regularna struktura, b) fino strukturirani podaci, c) malo ili nimalo meovitog sadraja. esto potiu iz baze podataka. Document centric dokumenti su obino namenjeni itanju od strane oveka - knjige, e-mailovi, ... Osobine su im: a) manje regularna struktura, b) slabo strukturirani podaci, c) dosta meovitog sadraja. Obino ne potiu iz baze podataka.

Pri izboru naina skladitenja ne postoji opte pravilo, ali se generalno moe rei da su relacijske baze podataka prikladnije u onim tipovima XML dokumenata gde su integritet konzistentnost podataka na prvom mestu (tj. data centric dokumenti). S druge strane, Native XML je prikladniji za document centric dokumente koji esto sadre strukture koje je teko mapirati na relacijski model.

11

Literatura:
1. 2. Ronald Bourrett: XML and databases", December 2004 Michael Champion: Storing XML in databases", eAI Journal, October 2001

3. Beth Bowden: Clearing the confusion about XML databases", Builder.com, June 2003 4. Jovana Vidakovi: Predavanja iz izbornog seminara XML baze podataka" Prirodno-matematikog fakulteta Univerziteta u Novom Sadu

12

You might also like