Cap5 Baze de Date XML

42
 Prof. Felicia Ionescu Cap. 5 -Baze de date XML 1 Capitolul Capitolul 5 5 - - Baze de date XML Baze de date XML Limbajul XML no ţiuni introductive Spaţii de nume (namespaces) Validarea d ocumentelor XML: DTD (Document T ype Definition), XML Schema Limbaje pentru transformarea şi interogarea datelor XML XPath (XML Path) XSLT (eXtensible Stylesheet Language Transformation) XQuery (XML Query) Biblioteci şi interfeţe (API) de manevrare a datelor XML DOM (Document Object Model) SAX (Si mpl e API for XML) Stocarea datelor XML – baze de dat e XML Oracle XML Database Baza de date BaseX Suport pentru XML in MySQL Suport pentru XML in PostgreSQL Suport pentru XML în SQL Server 

Transcript of Cap5 Baze de Date XML

Page 1: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 1/42

 

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 1

CapitolulCapitolul 55 -- Baze de date XMLBaze de date XML

Limbajul XML – noţiuni introductive

Spaţii de nume (namespaces) Validarea documentelor XML: DTD (Document Type Definition), XML Schema

Limbaje pentru transformarea şi interogarea datelor XML XPath (XML Path)

XSLT (eXtensible Stylesheet Language Transformation)

XQuery (XML Query)

Biblioteci şi interfeţe (API) de manevrare a datelor XML

DOM (Document Object Model) SAX (Simple API for XML)

Stocarea datelor XML – baze de date XML Oracle XML Database

Baza de date BaseX

Suport pentru XML in MySQL

Suport pentru XML in PostgreSQL

Suport pentru XML în SQL Server 

Page 2: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 2/42

 

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 2

Limbajul XMLLimbajul XML

Este un limbaj de marcare, definit (în anul 1996), ca şi HTML, pe baza

limbajului SGML (Standard Generalized Markup Language ), XML este un standard cross-platform, portabil, extensibil, bazat pe text

XML este folosit pentru:

reprezentarea modului de structurare (ierarhică) a datelor  schimbul de documente în Internet

reprezentarea protocoalelor de comunicaţie

baze de date

prelucrarea datelor 

XML este asemănător cu HTML, dar: XML reprezintă modul de structurare a datelor 

HTML reprezintă modul de prezentare (afişare) a datelor  XML permite definirea de marcaje noi, specifice aplicaţiei

HTML conţine un set de marcaje fixe

XML este structurat ierarhic şi bine-format (well-formed, imbricare corectă) HTML nu este obligatoriu bine-format

Page 3: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 3/42

 

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 3

Exemplu de document XMLExemplu de document XML

Fie următorul document XML, conform XML 1.0 Recommendation

(http://www.w3.org/TR/REC-xml), compus din header şi conţinut: Header-ul conţine informaţii destinate unui parser sau aplicaţii privind modul

de interpretare şi manevrare a documentului Conţinutul (content ) reprezintă datele documentului

<!-- Header --><?xml version="1.0"?>

<!-- Content --><book xmlns=“http://www.oreilly.com/javaxml2”

xmlns:ora="http://www.oreilly.com"><title ora:series="Java">Java and XML</title><contents>

<!-- Chapter List --><chapter title="Introduction" number="1">

<topic name="XML Matters" />

<topic name="What's Important" /><topic name="The Essentials" />

</chapter><!-- And so on... -->

</contents>

</book>

 

Page 4: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 4/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 4

EElemente XMLlemente XML

Fiecare element XML începe cu un marcaj (tag) de deschidere şi se

 încheie cu un marcaj de închidere Marcajul de deschidere este format din numele elementului între paranteze

ascuţite

Marcajul de închidere este format din numele elementului precedat de “/”

 între paranteze ascuţite<contents>……</ contents>

Un element conţine:

Text (opţional) între marcajul de deschidere şi cel de închidere:<title…>Java and XML</title>

Zero, unul sau mai multe atribute, specificate sub forma atribut=valoare înmarcajul de deschidere: <title ora:series="Java"> ….</title>

Zero, unul sau mai multe sub-elemente între marcajul de deschidereşi cel

de închidere; fiecare sub-element este, la rândul său un element care areaceeaşi structur ă

Dacă un element conţine doar atribute sau nu conţine nimic (elementvid) se pot combina cele două marcaje de deschidere şi de închidere

 într-unul singur: <topic name="XML Matters" />

 

Page 5: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 5/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 5

Validarea documentelor XMLValidarea documentelor XML Elementul r ădăcină (root): orice document XML are un singur element

root care are aceeaşi structur ă ca orice alt element şi cuprinde (imbrică)toate celelalte elemente ale documentului:<book…> … </book>

Structura elementelor unui document se reprezintă printr-un arbore

Document XML bine-format (well-formed): respectă corect structura şiimbricarea elementelor  Document XML valid se verifică validitatea conform cu:

Document DTD (Document Type Definition ) – specifică modul de formatarea datelor: ce elemente XML sunt admise în document, subelementele lor,numărul maxim de apariţii admis, valorile admise ale atributelor etc.

XML Schema – este recomandarea mai recentă de la W3C (WWWConsortium) care foloseşte tot limbajul XML pentru definirea formatăriidocumentelor XML

XML Schema îmbunătăţeşte modul de definire a schemei documentelor XML faţă de DTD şi se foloseşte cu precădere în produsele nouproiectate; DTD este un subset al XML Schema

Un document XML care poate fi validat conform unei scheme senumeşte document instanţă (instance document ); el trebuie să respectenumele, structura, valorile etc. elementelor specificate în schemă

 

Page 6: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 6/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 6

SpaSpaţţii de nume XMLii de nume XML ((namespaces)namespaces)

Un namespace XML este o grupare de unul sau mai multe elemente

dintr-un document XML, asociată cu un nume URI (Uniform Resource Identifier ); pentru unicitate, se recomandă folosirea unui URL

Fiecare element este unic (ca denumire) în namespace-ul său şi poate fideosebit de un alt element, care are acelaşi nume, dar este într-un

namespace diferit Pentru fiecare namespace folosit într-un document se defineşte un prefix

(abreviere), care se asociază cu numele unic URI

 În exemplul dat, în elementul root s-au definit 2 namespace-uri prinintermediul a două atribute: Un namespace implicit, asociat cu URL-ul http://www.oreilly.com/javaxml2

Un namespace cu prefixul ora, asociat cu URL-ul http://www.oreilly.com

<book xmlns="http://www.oreilly.com/javaxml2"xmlns:ora=“http://www.oreilly.com” >

Elementele din namespace-ul implicit se scriu doar cu numele local,elementele din alte namespace-uri sunt precedate de prefixul respectiv:

<title ora:series="Java">Java and XML</title>

 

Page 7: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 7/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 7

XML SchemaXML Schema şşii XML Schema instanceXML Schema instance

Specificaţiile XML definesc două namespace-uri fundamentale, XMLSchema namespace şi XML Schema Instance namespace

Chiar dacă acestea au în comun un subset de entităţi (ca type, element,attribute etc.), aceste namespace-uri au scopuri diferite

Namespace-ul XML Schema este referit din documentele de definire aleschemelor, iar namespace-ul XML Schema Instance este referit dindocumentele XML instanţă 

De exemplu, atributul schemaLocation folosit în documentul instanţă datapar ţine namespace-ului XML Schema Instance

URI-ul pentru XML Schema este http://www.w3.org/2001/XMLSchema,şi pentru el se foloseşte de obicei abreviaţia xs: sau xsd:

URI-ul namespace-ului XML Schema instance estehttp://www.w3.org/2001/XMLSchema-instance, şi pentru el se foloseştede obicei abreviaţia xsi:

 

Page 8: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 8/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 8

Definirea SchemDefinirea Schemelor elor XMLXML (1)(1)Definirea schemelor XML este foarte complexă; vom prezenta numai aspectele de bază folosind

schema XML a documentului dat (din fişierul mySchema.xsd) În general, în definirea schemelor XML se refer ă namespace-ul XML Schema (definit de W3C)

 

Page 9: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 9/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 9

Definirea SchemDefinirea Schemelor elor XMLXML (2)(2)

 

Page 10: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 10/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 10

Definirea SchemDefinirea Schemelor elor XMLXML (3)(3)

Schema XML este un document XMLvalid, care poate fi parsat de orice

parser XML Definiţia unei scheme XML este conţinută în interiorul elementului root

numit schema din namespace-ul XML Schema, asociat cu prefixul xs înexemplul dat (http://www.w3.org/2001/XMLSchema)

Atributul targetNamespace se foloseşte pentru a seta un nume URInamespace-ului implicit al documentului schemei (care conţineelementele definite de schemă)

targetNamespace=“http://www.oreilly.com/javaxml2” Namespace-ul cu prefixul ora este declarat şi importat în document

Pentru fiecare element al schemei se definesc:

Numele elementului: <xs:element name="book"> Tipul de date al elementului; pentru tipurile complexe se specifică păr ţile

componente, eventual cu sub-elemente

Numărul de apariţii posibile ale unui element

Schema XML> tip (clasa); document XML> instanţă (obiect)

 

Page 11: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 11/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 11

Definirea documentelor XMLDefinirea documentelor XML Completăm documentul XML ca instanţă a schemei definite:

<?xml version="1.0"?><book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns=“http://www.oreilly.com/javaxml2”xsi:schemaLocation=“http://www.oreilly.com/javaxml2 http://domain/mySchema.xsd

http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema.xsd"><contents>

<chapter title="Introduction" number="1"><topic name="XML Matters" /> ……..

</chapter><!-- And so on... -->

</contents>

</book> Primul atribut al elementului root refer ă XML Schema Instance 

namespace (definit de W3C) prin asocierea prefixului xsi cu URL-ul lui Al doilea atribut defineşte namespace-ul implicit al documentului

Deoarece URL-ul unui namespace nu specifică locaţia fişierului schemei,se foloseşte atributul xsi:schemaLocation pentru a asocia URL-ul unuinamespace cu locaţia fişierului care conţine schema acestuia Valoarea acestui atribut este compusă din una sau mai multe perechi: numele

URL al namespace-ului şi locaţia fişierului care conţine schema acestuia(http://domain/mySchema.xsd)

 

Page 12: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 12/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 12

Date structurate, semistructurate, nestructurateDate structurate, semistructurate, nestructurate

Date structurate – date memorate în tabele în baze de date sau obiecte,instanţe a unor tipuri (în modelul obiect-orientat şi obiect-relaţional)

Structurarea datelor este specificată într-un format strict (tabel relaţional,obiecte, tabel de obiecte)

Formatul datelor este verificat de sistemul de gestiune, să fie în conformitatecu schema bazei de date create în prealabil

Date semistructurate – schema informaţiei este mixată cu datele

Fiecare obiect de date poate avea atribute diferite, care nu sunt cunoscute în avans

Se mai numesc şi date care se autodescriu (self-describing data)

Deosebire faţă de tipul structurat: nu este necesar ă definirea prealabilă a

unui tip (tabel relaţional, tip de date definit de utilizator, schemă) Date nestructurate – nu exisă informaţii referitoare la tipul obiectului

De exemplu tipurile BLOB, CLOB din Oracle reprezintă şiruri de biţi sau decaractere, f ăr ă o structur ă precizată

 

Page 13: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 13/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 13

Tipuri de documente XMLTipuri de documente XML

Documente XML pot fi stocate:

Structurat, dacă respectă o formatare precisă, dată printr-un document DTDsau XML Schema

Semistructurat – dacă nu se specifică o schemă (schema-less XMLdocuments, sau atributul STANDALONE =‘YES’ în header-ul documentului)

Nestructurat – ca text (obiect CLOB)

Există 3 tipuri de documente XML:

Documente XML centrate pe date (data-centric): acestea au multe elemente

de date de dimensiune mică, formatate XML, în scopul transferului in Web Documente XML centrate pe document (document-centric) - acestea conţin

mari cantităţi de text (ca articole sau căr ţi), cu puţine elemente de formatare

Documente XML hibride  – combinaţie a celor 2 tipuri de mai sus

 În general se recomandă:

Stocarea structurată pentru documente XML centrate pe date

Stocarea semistructurată sau nestructuraă pentru documente XML centrate

pe document

 

Page 14: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 14/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 14

TransformareaTransformarea şşi interogarea dateli interogarea dateloor XMLr XML

Limbaje pentru transformarea şi interogarea datelor XML:

XPath, XSLT, XQuery Toate aceste limbaje folosesc reprezentarea ca arbore a unui document

XML, cu nodurile reprezentând elemente, atribute sau text

Limbajul XPath  – adresează o parte dintr-un document XML printr-oexpresie de cale (path expresion ) în reprezentarea ca arbore a doc.

O expresie de cale este o secvenţă de locaţii separate prin “/” (în loculoperatorului “.” folosit în SQL-99)

De exemplu, expresia: /book/contents/chapter/topic/va returna: <topic name="XML Matters" />

<topic name="What's Important" /><topic name="The Essentials" />

Atributele pot fi accesate folosind simbolul “@” O expresie XPath poate ignora unul sau mai multe niveluri utilizând “//”

XPath suportă predicate (condiţii) în expresii:

/bank/account[balance>400]

 

Page 15: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 15/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 15

Limbajul XSLTLimbajul XSLT

Un style sheet conţine opţiunile de formatare a unui document, de obiceimemorate într-un fişier separat de deocumentul însuşi

XSL (eXtensible Stylesheet Language ) este un limbaj care specifică modul de prezentare a conţinutuluidocumentelor şi de transformare

dintr-un format în altul a acestora XSL Transformation (XSLT) partea din limbajul XSL care specifică 

modul de transformare a documentelor dintr-un format în altul

Un document XSLT este un document XML definit conform unui DTDspecificat (predefinit)

XSLT se bazează pe structuri ierarhice (arbori) în care elementeleimbricate sunt fii ai elementelor părinte

XLST prevede un mecanism de găsire a unui pattern în document(folosind expresii XPath) şi de aplicare a unor formatări rezultatului

Se obţin date formatate (de exemplu, f ăr ă numele elementelor XML)

care pot fi inserate în documente HTML sau de alt tip

 

Page 16: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 16/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 16

Limbajul XQueryLimbajul XQuery

Limbajul XQuery permite specificarea interogărilor asupra documentelor 

XML prin expresii numite “expresii FLWR” după iniţialele clauzelor interogării:

FOR <variable bindings to individual nodes (elements)>LET <variable bindings to collections of nodes (elements)>

WHERE <qualifier conditions>RETURN <query result specification>

Mai jos sunt date 3 interogări XQuery pentru documente conforme cuschema dată (în partea dreaptă)

 

Page 17: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 17/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 17

InterfeInterfeţţe (API) de manevrare a datelor XMLe (API) de manevrare a datelor XML

Standarde de API pentru manevrarea prin program a datelor XML: DOM (Document Object Model )

SAX (Simple API for XML)

Modelul DOM tratează documentul XML ca pe un arbore compus din

noduri; o parte a documentului XML poate fi accesată navigând prinarbore începând de la nodul r ădăcină (root)

Metode ca getFirstChild(),getNextSibiling(), getParentNode()

etc. permit navigarea prin arbore Biblioteci DOM sunt disponobile

pentru majoritatea limbajelor uzuale

 În figura alăturată este prezentată structura DOM a unui document XML

Dezavantaj DOM: structura arborepoate fi foarte mare, imposbil de a fi

stocată în memorie

 

Page 18: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 18/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 18

InterfaInterfaţţa SAXa SAX

Interfaţa SAX ofer ă un model bazat pe evenimente (event-driven API )pentru parcurgerea (parsarea) documentelor XML

 În loc să copieze în memorie arborele corespuntător documentului XMLşi să transmită clientului date din acesta (ca în DOM), în SAX clientul se

 înregistrează pentru a primi notificaţii atunci când parserul recunoaşteanumite elemente din document (identificate ca evenimente)

 

Page 19: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 19/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 19

StocareaStocarea ddatelor atelor XMLXML

Există mai multe posibilităţi de stocare a datelor XML:

Stocarea în sistemul de fişiere al calculatorului gazdă, ca fişiere XML Are multe dezavantaje (lipsa de izolare a datelor, lipsa verificărilor de

integritate a datelor, lipsa verificărilor de securitate etc.)

Dar, pentru aplicaţii simple, poate fi folosită; datele se parcurg folosindbiblioteci care implementează diferite interfeţe (API)

Stocarea în baze de date Stocarea în baze de date obiect-orientate, prin extinderea acestora

Stocarea în baze de date relaţionale: Stocarea în tabele relaţionale ca şiruri de caractere: fiecare element fiu al r ădăcinii

se reprezintă ca un tuplu (compus dintr-un şir de caractere) într-o relaţie

Reprezentarea ca arbore: datele XML modelate ca arbore (în care fiecare nod areun identificator –id) se reprezintă printr-o pereche de tabele:

nodes(id, type, label, value) şi child (child_id, parent_id) (interogări ineficiente) Maparea datelor XML în tabele obiect-relaţionale - cea mai avansată metodă:

Elementelor definite în XML Schema li se asociază tipuri de obiecte (UDT, typeobject), vectori (varray) sau tabele imbricate (nested tables)

Aceste tipuri se folosesc ca şi coloane sau linii ale tabelelor obiect relaţionale

 

B d d t XML

Page 20: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 20/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 20

Baze de date XMLBaze de date XML

Termenul de “baze de date XML” sau, mai nuanţat, “baze de date native

XML” se refer ă la stocarea (persistentă) a datelor cu următoarelecaracteristici: Respectă un format (model) logic care poate fi descris printr-o schemă XML

(cu elemente, subelemente, atribute etc.) astfel încât datele pot fi memorateşi regăsite conform acestui model

Suportă cel puţin un limbaj de interogare XML (ca XPath, XQuery)

Suportă un limbaj de transformare a datelor XML (ca XSLT)

Unele baze de date XML mai suportă şi XML:DB API (or XAPI) ca API de

acces la date, care înlocuieşte ODBC sau JDBC Bazele de date XML nu au restricţii privind modul de memorare a

datelor: se pot folosi modele de stocare relaţionale, obiect-orientate,obiect-relaţionale sau chiar format proprietate (ca fişiere indexate)

Există numeroase implementări care respectă, mai mult sau mai puţin,caracteristicile de baze de date XML

Baze de date XML sunt considerate atât, de ex. Oracle XML DB, careface o mapare a datelor XML în tabele obiect-relaţionale, cât şi BaseX,

care foloseşte sistemul de fişiere al calculatorului gazdă

 

Page 21: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 21/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 21

Implementări de bImplementări de baazze de dae de datte XMLe XML

Conform cu: http://en.wikipedia.org/wiki/XML_database

 

O l XML D t b (1)O l XML D t b (1)

Page 22: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 22/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 22

Oracle XML Database (1)Oracle XML Database (1)

Oracle XML Database ofer ă securitate, disponibilitate şi scalabilitate

operaţiilor cu documente XML Aplicaţiile pot folosi limbajul SQL (specificaţiile SQL-2003 sau SQL-

2006, care au extensii referitoare la XML) sau operatori XML pentruprelucrarea şi generarea documentelor complexe

Oracle XML DB poate fi folosită în conjuncţie cu Oracle XMLDeveloper's Kits (XDK) pentru dezvoltarea aplicaţiilor care se execută înOracle Applicaţion Server 

Oracle XML Developer's Kits (XDK) ofer ă suport pentru citirea,manipularea, transformarea documentelor XML, stocate fie în sistemulde fişiere, fie în baza de date

Oracle XML DB permite gestionarea documentelor XML: Documente XML structurate memorate în tabele folosind tipul XMLType,

oferind suport pentru XML Schema, XPath, XSLT, DOM

Documente XML memorate în XML Repository, accesibile prin biblioteci

standard API şi limbajul SQL

 

O l XML D t bO l XML D t b (2)(2)

Page 23: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 23/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 23

Oracle XML DatabaseOracle XML Database (2)(2)Oracle XML DB constă din:

Tabele şi vederi de date de tipul XMLType (XMLType Storage)

Oracle XML DB Repository

 

Tipul de date XMLTypeTipul de date XMLType (1)(1)

Page 24: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 24/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 24

Tipul de date XMLTypeTipul de date XMLType (1)(1)

Tipul de date XMLType este tipul Oracle pentru lucrul cu XML:

Parametru DescrierexmlData Datele sub formă de BFILE, BLOB, CLOB, REFs,VARCHAR2 sau UDT (object type)

schema Optional - Schema URL care poate fi folosită pentru verificareaconformităţii datelor cu schema dată

validated Indică faptul că datele sunt valide, conform schemei XML datewellformed Indică faptul că datele sunt bine-formate; dacă este setat,

nu se mai face verificarea ca datele de intrare să fie bine-formateelement Nume opţional de element, dacă se foloseşte constructor cu

argument REF (implicit este NULL)CSID Identificatorul setului de caractere al datelor de intrare

Metodele XMLType: constructori, metode de operare cu obiecte XMLType

Constructorii permit crearea unei instanţe a tipului XMLType pornind de la

un şir de caractere (varchar), fişier BFILE sau obiecte CLOB, BLOB:constructor function XMLType(xmlData IN clob,schema IN varchar2 := NULL,validated IN number := 0,

wellformed IN Number := 0) return self as result;

 

Tipul de date XMLTypeTipul de date XMLType (2)(2)

Page 25: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 25/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 25

Tipul de date XMLTypeTipul de date XMLType (2)(2) Metodele tipului XMLType:

extract() – extrage un subset de noduri conţinute în obiectul curentexistsNode() – verifică dacă un anumit nod există în obiectul curentschemaValidate() – validează conţinutul obiectului conform cu schema XMLtransform() – execută o transformare XSLT a conţinutului obiectului

Tipul XMLType poate fi folosit pentru: Crearea unei coloane a unui tabel relaţional:

CREATE TABLE mytable1 (key_column VARCHAR2(10) PRIMARY KEY, xml_column XMLType);

Crearea unui tabel de obiecte de acest tip:

CREATE TABLE mytable2 OF XMLType; Date pentru constructia obiectului XMLType: fişierul BFILE format din directorul

de bază XMLDIR si numele fisierului (purchaseOrder.xml) şi setul de caractere Dacă nu există, directorul XMLDIR se crează cu comanda:

CREATE DIRECTORY xmldir AS ‘……\product\11.1.0\db_1\demo\schema\order_entry\'; -- dir. real

Userul trebuie sa aibă privilegiul CREATE ANY DIRECTORY

Inserarea de date XMLType în tabele:INSERT INTO mytable2 VALUES (XMLType(bfilename('XMLDIR', 'purchaseOrder.xml'),

nls_charset_id('AL32UTF8')));

 

ExempluExemplu: d: documentulocumentul PurchaseOrderPurchaseOrder xmlxml

Page 26: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 26/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 26

ExempluExemplu: d: documentulocumentul PurchaseOrder PurchaseOrder .xml.xml

Atributul xsi:noNamespaceSchemaLocations-a introdus deoarece in schema coresp. nu s-a definit targetNamespace;

Daca se defineste targrtNamespace, atunci seintroduce atributul xsi:schemaLocation

 

PurchaseOrderPurchaseOrder xsdxsd -- XML SchemaXML Schema

Page 27: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 27/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 27

PurchaseOrder PurchaseOrder .xsd.xsd -- XML SchemaXML Schema

…………………………………………………………………….....

 

PurchaseOrder xsdPurchaseOrder xsd –– structurastructura arborearbore

Page 28: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 28/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 28

PurchaseOrder.xsdPurchaseOrder.xsd – – structurastructura arborearbore

 

Date XMLDate XML îîn Oracle XMLn Oracle XML DBDB

Page 29: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 29/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 29

Date XMLDate XML î  î n Oracle XMLn Oracle XML -- DBDB

Dualitatea XML/SQL: aceleaşi date pot fi reprezentate: Ca linii sau coloane în tabele, manipulate prin instrucţiuni SQL

Ca noduri într-un document XML, manipulate prin tehnologii DOM, XSLT

Oracle XML DB suportă XML Schema, conform recomandarilor W3C

Pentru obiectele instanţe ale tipului XMLType care sunt conforme cu oschemă XML dată se poate face verificarea de conformitate a documentelor 

Se pot optimiza interogările, pe baza informaţiilor conţinute în schemă

Stocarea obiectelor de tipul XMLType (coloane sau linii): Stocare structurată – datele XMLType sunt memorate ca un set de obiecte –

stocare obiect-relaţională sau persistenţă bazată pe obiecte (object-based persistence )

Stocare nestructurată - datele XMLType sunt memorate ca si obiecte CLOB

(text-based persistence ) Stocare binar ă: datele XMLType sunt memorate într-un format binar special

proiectat, care respectă schema XML data (post-parse persistence )

Se pot mixa modelele de stocare (hybride storage)

 

Stocarea structurată a documentelor XMLStocarea structurată a documentelor XML

Page 30: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 30/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 30

Stocarea structurată a documentelor XMLStocarea structurată a documentelor XML

Se bazează pe descompunerea conţinutului documentului într-un set de

obiecte SQL (instanţe UDT - type objects)

Pentru aceasta schema XML se înregistrează în Oracle XML DB

La înregistrare se generează automat definiţiile de tipuri UDT pentru

fiecare tip complex din schema XML Fiecare element sau atribut definit într-un tip complex devine un atribut SQL

 în tipul SQL corespunzător 

Fiecare din cele 47 de tipuri scalare prevazute in recomandările XMLSchema sunt mapate într-unul din cele 19 tipuri scalare suportate de OracleSQL

Pentru fiecare element care conţine un element XML repetat de un număr de ori se generează un varray

Operaţiile de mapare se execută automat la introducerea unui documentXML memorat obiect-relaţional în baza de date

 

Adnotarea schemelor XMLAdnotarea schemelor XML

Page 31: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 31/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 31

Adnotarea schemelor XMLAdnotarea schemelor XML

W3C XML Schema Recommendation defineşte un mecanism de

adnotare a schemelor care permite introducerea de informaţii speciale Oracle XML DB foloseşte adnotarea schemelor pentru maparea

(corespondenţa) elementelor schemei XML cu elementele SQL astfel:

Specificarea tabelelor în care se memorează datele XML

Suprascrierea mapării implicite dintre elementele XML şi elementele SQL

Stocarea colecţiilor de date din XMLType:

varray într-un tabel: fiecare element al colecţiei este mapat cu un obiect SQL,

iar colecţia de astfel de obiecte este memorată ca un set de linii într-un tabelnumit tabel ordonat (OCL - Ordered Collection Table); în mod implicit toatecolecţiile se memorează ca OCT; aceasta corespunde adnotării implicite aschemei XML xdb:storeVarrayAsTable = "true"

varray într-un LOB: fiecare element este mapat cu un obiect SQL, colecţiaeste serializată ca un varray si memorată ca o coloana de tip LOB; adnotareaeste xdb:storeVarrayAsTable = "false".

Pentru adnotarea unei scheme se declar ă namespace-ul

xmlns:xdb="http://xmlns.oracle.com/xdb"

 

ExempluExemplu -- SchemaSchema PurchaseOrder adnotatăPurchaseOrder adnotată

Page 32: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 32/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 32

ExempluExemplu SchemaSchema PurchaseOrder adnotatăPurchaseOrder adnotată

 

Generarea tipurilor SQL de mapare a elem. XMLGenerarea tipurilor SQL de mapare a elem. XML(1)(1)

Page 33: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 33/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 33

Generarea tipurilor SQL de mapare a elem. XMLp Q p (1)( )

Operaţiile pentru generare:

Se încarcă schema XML în Oracle XML Repository Se înregistrează schema XML folosind procedura PL/SQL

(DBMS_XMLSCHEMA.registerSchema)

 În cursul înregistr ării schemei se creează:

tipurile de date corespunzătoare descrierii din schema XML câte un tabel corespunzător fiecărui element global al schemei

Exemplu: la înregistrarea schemei XML PurchaseOrder.xsd in schemaoe (order_entry) se creează tipurile:

 

Generarea tipurilor SQL de mapare a elem XMLGenerarea tipurilor SQL de mapare a elem XML(2)(2)

Page 34: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 34/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 34

Generarea tipurilor SQL de mapare a elem. XMLGenerarea tipurilor SQL de mapare a elem. XML(2)(2)

Tiprile create: purchaseorder_t este folosit pentru stocarea obiectelor SQL generate dintr-

un element PurchaseOreder 

lineitems_t, lineitem_v, and lineitem_t folosesc pentru memorarea liniilor dincolecţia de elemente LineItem care există într-un ordin

Tipurile de date SQL şi tabelele se pot crea si manual, nu numai la înregistrarea schemei XML (dacă parametrul GENTABLE din apelul

procedurii DBMS_XMLSCHEMA.registerSchema este false)

 

Beneficiile oferite de Oracle XML DBBeneficiile oferite de Oracle XML DB

Page 35: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 35/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 35

Beneficiile oferite de Oracle XML DBBeneficiile oferite de Oracle XML DB

 

BBaaza de dateza de date BaseXBaseX

Page 36: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 36/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 36

BBaaza de dateza de date BaseXBaseX

BaseX este o bază de

date XML open-sourcebazată pe sistemul defişiere şi ofer ă posibilitatea deinterogare prinlimbajul XQuery

Prezintă conforman

ţăridicat

ă 

(99.9%) curecomandareaXQuery Full Text

Defineşte diferite

structuri de indexare(după numeleelementelor, cale,valoare, text)

 

Suport pentru XMLSuport pentru XML îîn MySQLn MySQL

Page 37: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 37/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 37

Suport pentru XMLSuport pentru XML î  î n MySQLn MySQL

 Începând cu versiunea 5.1.5 MySQL ofer ă suport pentru doc. XML:

Formatarea datelor de ieşire în format XML

Pentru comanda mysqldump, cu opţiunea --xml

Funcţii de prelucrare bazate pe limbajul Xpath:

ExtractValue() – extrage o valoare dintr-un şir XML folosind expresii Xpath

UpdateXML() – actualizează un şir XML

Exemplu: proc. stocată extractXML(); se apelează cu call extractXML:mysql> call extractXML;

 

Suport pentru XMLSuport pentru XML î  î nn PostgreSQLPostgreSQL

Page 38: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 38/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 38

PostgreSQL 8.4 ofer ă suport pentru date XML:

Tipul de date predefinit xml – poate stoca documente XML bine-formate; Funcţii pentru variabile de tip XML Maparea documentelor XML în tabele relaţionale

Funcţii pentru variabile de tip XML:

xmlparse – transformă un şir de caractere într-o valoare (variabilă) de tip xmlXMLPARSE ( { DOCUMENT | CONTENT } value)XMLPARSE (DOCUMENT ’<?xml

version="1.0"?><book><title>Manual</title><chapter>...</chapter></book>’XMLPARSE (CONTENT ’abc<foo>bar</foo><bar>foo</bar>’)

xmlserialize – transformă o variabilă xml într-un şir de caractere (type =char, varchar, text)

XMLSERIALIZE ( { DOCUMENT | CONTENT } value AS type)

xmlconcat – concatenează mai multe variabile xml într-una singur ă; xmlelement – generează un element XML cu nume, atribute şi conţinut dat

SELECT xmlelement (name foo, xmlattributes(’xyz’ as bar)); xmlelement-----------------<foo bar="xyz"/>

xpath – evaluează o expresie Xpath şi returnează elementul coresp; şi altele

 

Exportul tabelelor relaExportul tabelelor relaţţionaleionale î  î nn variabile XMLvariabile XML

Page 39: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 39/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 39

pp ţţ î  î n PostgreSQLn PostgreSQL

Funcţii de export XML: transformă tabele relaţionale în variabile XML:table_to_xml (tbl regclass, nulls boolean, tableforest boolean, targetns text)query_to_xml (query text, nulls boolean, tableforest boolean, targetns text)

Unde parametrii au semnificaţiile:

tbl: numele tabelului, de tip regclass - suporta convenţii standard de numire a tabelelor  query: textul SQL al interogarii

targetns: namespace-ul ţintă tableforest: specifică organizarea documentului XML (fals sau true):

 

Suportul pentru XMLSuportul pentru XML î  î n SQL Server 2008n SQL Server 2008

Page 40: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 40/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 40

p p

 În SQL Server 2008 tipul de date xml este tip predefinit şi permite

stocarea documentelor sau a fragmentelor XML în baza de date Un fragment SQL este o instanţă XML f ăr ă un element root

Datele XML asociate cu o schemă XML se numesc “tipizate”

Sunt definite metode asociate tipului xml Tipul xml se poate folosi pentru:

Variabile: DECLARE @x xml

Coloane în tabele: CREATE TABLE T1(Col1 int primary key, Col2 xml)

Tip pentru parametri şi valori returnate de funcţii:

CREATE PROCEDURE SampleProc(@XmlDoc xml) AS ...

Metodele tipului xml se folosesc pentru interogarea datelor xml stocate

 în variabile sau în coloane ale tabelelor  query ('XQuery') – ‘Xquery’ este o expresie care caută noduri XML

(elemente, atribute) într-o instanţă XML

value (XQuery, SQLType) – returnează rezultatul în format tip SQL, şi altele

 

BibliografieBibliografie

Page 41: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 41/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 41

BibliografieBibliografie

Brett McLaughlin, Java & XML, 2th Edition, O’Reilly, 2001 A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts ,

4th Edition, McGrow Hill, 2004

R. Elmarsi, S. Navathe, Fundamentals of Database Systems , 4thEdition, Addison-Wesley, 2004

Oracle 11g Documentation

Oracle® XML DB Developer's Guide 11g Release 1 (11.1) B28369-04

Oracle® XML Developer's Kit Programmer's Guide, 11g Release 1 (11.1)B28394-04

MySQL 5.1 Documentation

PostgreSQL 8.4.3 Documentation Microsoft SQL Server 2008 Books Online

 

Page 42: Cap5 Baze de Date XML

5/10/2018 Cap5 Baze de Date XML - slidepdf.com

http://slidepdf.com/reader/full/cap5-baze-de-date-xml 42/42

Prof. Felicia Ionescu Cap. 5 - Baze de date XML 42