XML sekä dokumentin että tietokannan formaatti Miro Lehtonen 24.4.2007 OUGF-kevätseminaari Tietojenkäsittelytieteen laitos Sisältö Monikäyttöinen XML XML tekstin esitysmuotona XML datan tallennusmuotona Muut XML-dokumentit XML-tietokannat Relaatiotietokantojen XML-tuki Natiivit XML-tietokannat Oracle 9i, 10g Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 2 1
Käyttötapauksia Dokumenttien hallinta, julkaisuympäristöt Yhdestä lähdekoodista monenlaista luettavaa Datan organisointi, metadata Itsensä kuvaavat dokumentit Sovellusten välinen tiedonvaihto Avoimen standardin edut Riippumattomuus käyttöjärjestelmistä, ohjelmointikielistä Tutkimus Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 3 Tekstidokumentin XML (1) VV! VW!%"Qr s h pr Avtˆ r h qd r ƒ r h v VW! LS! UHI ULG iyv"( W\SH iy!uhiyr UHI!h q UHI ULG iyv"(! W\SH iy!!uhi! ˆ h v r ur ƒr s h pr h v vp s ˆ u rr r ƒr v r LS! VV! VW!%" 8yh vsvr 6 puv rp ˆ rvw! Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 4 2
Tekstidokumentin XML (2) VHF! VW! ILJ! DUW ILOH D[JLIZ K WZ WK! ILJ! LS! E!.RQUDG=XVHE!FUHDWRULQRIWKHILUVW IXOO\ DXWRPDWHGSURJUDPFRQWUROOHGDQGIUHHO\ SURJUDPPDEOH FRPSXWHU IRUELQDU\ IORDWLQJSRLQW FDOFXODWLRQVDQGODWHURI WKHEDVLF SURJUDPPLQJ V\VWHP LW!3ODQNDON¾OLW!GLHG LQ +¾QIHOG*HUPDQ\ RQ'HFHPEHU +HZDV LS! Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 5 XML tekstidokumenteissa Elementit dokumentin rakenteelle (sec, title, para, ) Elementit tekstin muotoilua varten (bold, italics, ) Tageja tekstin seassa (mixed content) Rakenne kuin hypertekstidokumentissa Sisällön järjestyksellä on väliä Viittauksia ulkoisiin tiedostoihin Linkkejä toisiin dokumentteihin Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 6 3
Tekstidokumenttien julkaisu Useita julkaisukanavia Tyypillisiä julkaisuformaatteja pdf, html, plain text Muotoilu määritellään erillisissä tyylitiedostoissa Koostetut dokumentit Samasta dokumentaatiosta erisisältöisiä versioita Muotoilu määritelty valmiissa asiakirjapohjissa (template) Myös hakurajapintoja Relevantin sisällön haku käyttäjälle Parhaan aloituskohdan löytäminen Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 7 XML-data (1),QYRLFH LQYRLFH'DWH &!VKLS'DWH!! VKLS0HWKRG VTQT! &XVWRPHU 1DPH C r ETv ƒ $GGUHVV &#!@ r t rr Ur hpr&lw\ Tƒ v tsvryq 6WDWH F`SRVWDO&RGH!"#$! /LQH,WHP 4XDQWLW\!3ULFH!! 3DUW &RORU 7yˆr6L]H "v pu1dph B r! /LQH,WHP! /LQH,WHP 4XDQWLW\!3ULFH! 3DUW &RORU 7yˆr 6L]H!v pu1dph Tƒ pxr! /LQH,WHP!,QYRLFH! Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 8 4
XML-data (2) $LUSRUW DLU,G GCS! QDPH!G q Crh u QDPH! WD[! WD[! $LUSRUW! $LUSRUW DLU,G asc! QDPH!aˆ vpuqdph! WD[! $WD[! $LUSRUW! $LUSRUW DLU,G Q6S! QDPH!Qh v QDPH! WD[! WD[! $LUSRUW! Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 9 XML datan esitysmuotona Elementeillä ja attribuuteilla annetaan datalle merkitys Myös attribuuteissa sisältöä Elementtien järjestys lähes yhdentekevää Tiedon esitystapa mallinnetaan erikseen Sisältö suoraan tallennettavissa relaatiotietokantaan Esim. elementtejä ja attribuutteja vastaaviin tauluihin ja sarakkeisiin Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 10 5
XML-datan kulutus Ensisijaisesti kyselyrajapinnat Käyttäjille sovellusten tarjoamat käyttöliittymät Sovellusten kyselyt ja päivitykset kyselykielen avulla (XPath, XQuery) Asiakirjapohjiin perustuva julkaisu Räätälöidyt, personoidut dokumentit Dynaamiset, automaattisesti päivittyvät web-sivut Toteutus XSLT-muunnoksilla Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 11 Sovellustenvälinen XML: SMIL <seq> <img id="image_1" style="width:0; height:0; src="guitar_2g.jpg" dur="0.01s" /> <audio id="audio_22" clipbegin="02.00s" dur="0.01s" </seq> src= sound_195.mp3" /> <par id="start_par" begin="1" > <transitionfilter targetelement="text1" from="0" to="1" type="fade" mode="in" begin="text1.begin" dur="2" /> <animate targetelement="c1_s4" attributename="left" from="840" to="740" begin="19.50s" dur="00.50s" fill="freeze" /> <animatecolor targetelement="c1_s4" attributename="backgroundcolor" from="red" to="yellow" begin="19.50s" dur="00.50s" /> Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 12 6
XML yhteisenä rajapintana Sovellusohjelman tuottama ja kuluttama XML XML-rakenteilla annetaan sovellukselle tulkintaohjeet Ei tarkoitettu ihmisen luettavaksi Usein kertakäyttöisiä dokumentteja Pääkäyttötarkoituksena tiedonvälitys Ei haku- eikä kyselymahdollisuutta Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 13 Muut XML-dokumentit XML yleisenä määrittelykielenä Scalable Vector Graphics (SVG) MathML Standard Music Description Language (SMDL) jne Samasta dokumentista voi löytää erityyppistä XML:ää Esim. artikkelin teksti + lähdeluettelo Web-palvelun kuvaus + toiminta XHTML + SVG + MathML Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 14 7
Relaatiotietokannan XML Mitä lisäarvoa saadaan? Tehokas indeksointi: tehokkaat haut ja kyselyt Transaktion hallinta Varmuus, virhetilanteista toipuminen Mitä menetetään? Dokumentin järjestys, rekursiiviset skeemat, koodaustieto Avoimen standardin edut Minkälaista XML:ää siis pidetään relaatiotietokannassa? Yleensä dataa, jolla on säännöllinen rakenne Natiiviin XML-tietokantaan sopii kaikenlainen XML Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 15 Erilaiset XML-tietokannat XML:ää tukeva relaatiotietokanta XML-dokumenteista taulujen rivejä ja sarakkeita XML-näkymiä relaatiodataan Sisäisesti SQL-kyselyt, XML-laajennoksia Natiivi XML-tietokanta Häviötön XML-dokumenttien tallennus XML-kyselykieli, esim. XQuery XML-palvelin, sisällönhallintajärjestelmä Web-sovelluspalvelimet, XML-tietoiset J2EE-palvelimet XML:n julkaisu Webissä Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 16 8
XML relaatiotietokannassa Relaatiomallin mukainen XML CLOB-sarakkeet XML-sisällölle Eri tauluihin ja sarakkeisiin purettu data, SQL-tietotyypit Natiivi XML-tietotyyppi Kyselykielenä SQL tai SQL/XML Kyselyn tuloksena relaatiomallin mukaisia tauluja Jatkokäsiteltynä myös XML:ää Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 17 Kerrostettu prosessointimalli: Mid-Tier Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 18 9
XML-dokumentin tallennus relaatiokantaan Yhtenä pitkänä merkkijonona (CLOB) Kokonaisena käsiteltävät dokumentit Epäsäännöllinen rakenne Olematon haku- ja päivitystarve vai useampaan tauluun ja sarakkeeseen hajoitettuna? Säännöllinen rakenne Paljon kohdistettuja päivityksiä ja hakuja Alkuperäistä dokumenttia ei tarvitse säilyttää merkki merkiltä Tehokkuus riippuu sisällöstä ja käytöstä Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 19 Natiivit XML-tietokannat Tietokannan sisäinen tietomalli perustuu XML:ään (esim. DOM) Samoin kyselykieli Sopiva erityisesti tekstidokumenteille ja hierarkkisille rakenteille Sisältö ei suoraan jakaudu tauluihin ja sarakkeisiin Alkuperäiset dokumentit palautettavissa Joustavampi ratkaisu kuin relaatiotietokanta Skeemaa ei tarvitse tietää etukäteen Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 20 10
XQuery natiivi kyselykieli W3C-standardi: XML-yhteensopiva tietomalli Kuten SQL relaatiodatalle Dokumenttien rakennemuutokset, uuden rakenteen luominen Deklaratiivinen, sivuvaikutukseton, vahvasti tyypitetty korkean tason funktionaalinen ohjelmointikieli Esim. syötteen tuplaava funktio: declare function local:doubler($x) { $x * 2 } Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 21 XQuery esimerkki: Näytösten puhujat <html><head/><body> { } for $act in doc("hamlet.xml")//act let $speakers := distinct-values($act//speaker) return <span> <h1>{ $act/title/text() }</h1> <ul> { for $speaker in $speakers return <li>{ $speaker }</li> } </ul> </span> </body></html> Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 22 11
Oracle 10g natiivi XML-tietokanta Ensimmäinen kelvollinen toteutus natiivista XMLtietokannasta: Oracle 9i Release 2 XQuery-prosessori sekä tietokannassa (back-end) että erillisenä komponenttina (Mid-Tier) Tietokannassa suuria ja pysyviä datamassoja varten Mid-Tier pienille määrille heterogeenistä dataa Tiedon mallinnus XML- tai SQL-mallin mukaan XQuery näkee XML-näkymiä relaatiodataan SQL näkee XMLType-dataa Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 23 Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 24 12
Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 25 XQuery Oraclen tietokannassa Luonnollisin kyselykieli varastoiduille XML-dokumenteille Relaatiodatan kyselyt XML-näkymien kautta Laajennosfuntio ora:view() Natiivi XMLType suoraan XQueryn näkyvillä Ulkoisten resurssien kysely XQueryn funktioilla Paikallinen tiedostojärjestelmä URI-viittauksilla koko WWW käytössä Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 26 13
Yhteenveto Kaiken sisällön esitysmuodoksi voidaan valita XML Kaikenlainen XML voidaan varastoida XML-tietokantaan Oracle 10g XML-haut eri kielillä: SQL, XPath, XQuery, tekstihaut Haut eri resursseista: tiedostot, relaatiodata, web-palvelut, viestit, WWW Kysymyksiä, kommentteja? Miro Lehtonen, XML - sekä dokumentin että tietokannan formaatti 24.4.2007 27 14