Professional Documents
Culture Documents
Tradicionalment les dades s'emmagatzemen en Sistemes Gestors de Base de Dades Moltes de les dades actuals estan en SGBDD
Suport d'XQuery i/o XPath Suport SQL/XML Extensions i tipus de dades especfics ...
Oracle
Podem afegir els documents XML a una Base de dades Defineix la classe de dades XMLType per emmagatzemar XML
A partir dels seus mtodes podem recuperar i manipular dades del fitxer XML
Suporta l'estndard SQL/XML Pot generar XML a partir de dades de la base de dades relacional
Administraci de Sistemes Informtics i Xarxes
SQL/XML
En l'estndard SQL (des de SQL 2003) s'hi han definit una srie d'extensions de XML
SQL/XML
Van ser desenvolupades per INCITS H2.3 amb la participaci de Microsoft, Oracle, IBM, Sybase i DataDirect Technologies
SQL/XML
Ens permetr afegir dades XML com a columnes relacionals Desprs podrem treballar-hi de la forma habitual
Podrem operar amb els camps XML En comptes d'obtenir resultats tabulats podrem obtenir documents XML
Administraci de Sistemes Informtics i Xarxes
SQL/XML: XMLType
L'estndard SQL/XML defineix un tipus de dades XML que en Oracle s'anomena XMLType
Fer servir dades XML a partir d'eines relacionals Fer servir eines XML en camps de taules relacionals
Aix ens permet afegir fitxers XML en camps de bases de dades relacionals i treballar-hi
Administraci de Sistemes Informtics i Xarxes
SQL/XML: XMLType
Es pot fer servir en consultes normalment barrejat amb altres tipus Noms poden contenir XML ben format (no s'hi poden posar fragments) XML basat en un esquema XML sense esquema
Es pot entrar:
Es pot fer servir en PL/SQL, procediments emmagatzemats, variables, retornar valors, etc...
Administraci de Sistemes Informtics i Xarxes
SQL/XML: XMLType
CREATE TABLE exemple (ID INT NOT NULL, Valor XMLType) XMLType Valor STORE AS CLOB;
CREATE TABLE exemple (ID INT NOT NULL, Valor XMLType); XMLSCHEMA "http://iescendrassos.net/persona.xsd" ELEMENT "persona";
Administraci de Sistemes Informtics i Xarxes
SQL/XML: XMLType
Per tant en Oracle es permet que els camps XML puguin ser controlats a travs d'XSD o de DTD L'esquema s'ha de registrar prviament i s'ha d'associar l'esquema a la taula
http://localhost:8080 ftp://localhost:2100
Administraci de Sistemes Informtics i Xarxes
SQL/XML Esquema
SQL/XML: XMLType
SQL/XML: XMLType
existsnode()
Comprova si la expressi XPath retorna algun valor i si ho fa retorna 1 Sin retorna 0 s similar a l'anterior per retorna un grup de nodes, atributs o valors Retorna un valor escalar resultat d'avaluar l'expressi Xpath
extract()
extractvalue()
SQL/XML: XMLType
Que es pot fer servir en qualsevol lloc. Per exemple en les condicions
DELETE FROM exemple WHERE Valor.extract('//nom/text()').getStringVal() = 'Federicu';
SQL/XML: XMLType
Tamb es proporcionen funcions per actualitzar dades de dins dels camps XML
updatexml insertChildXML Reemplaa nodes XML Insereix un element XML com a fill del node especificat insertXMLBefore Insert XML nodes of any kind immediately before a given node (other than an attribute node) appendChildXML Insert XML nodes of any kind as the last child nodes of a given element node deleteXML Delete XML nodes of any kind
SQL/XML: XMLType
Aix ens modificaria el nom de l'alumne que t de cognom Pi en el cas en que n'hi hagi algun
SQL/XML: XMLType
La idea consisteix en afegir a les comandes SELECT el que cal per fer que surtin els resultats en XML en comptes de en taules
SELECT ....
SQL/XML
SQL/XML:Generar
Alumne
nom cognom
Filomenu Federicu
Pi Garcia
SQL/XML
<nom>Filomenu</nom><cognom>Pi</cognom> <nom>Federicu</nom><cognom>Garcia</cognom>
SQL/XML:Generar
SQL/XML:Generar
O fer-hi jerarquies:
SELECT xmlelement("curs", xmlattributes(c.id), (SELECT xmlagg(xmlelement("alumne", xmlforest(a.nom, a.cognom))) from alumne a where a.curs = c.id) ) from classe c; <curs id=1> <alumne> <nom>Filomenu</nom> <cognom>Garcia</cognom> </alumne> ...
Administraci de Sistemes Informtics i Xarxes
Oracle
A partir dels seus mtodes podem recuperar i manipular dades del fitxer XML Pot incloure XSD per validar els documents
Integra OPENXML per no suporta SQL/XML Afegeix 'FOR' XML per generar resultats en XML
El tipus de dades XML de SQL Server permet emmagatzemar tant documents com fragments de documents XML Pot ser:
CREATE XML SCHEMA COLLECTION nom AS N'<?xml version=1.0?> <xs:schema ... ... CREATE TABLE a (ID INT, B XML(nom));
SQL Server ofereix unes extensions que permeten treballar amb camps XML. Fa diferncies entre els que tenen XSD (on s'optimitza internament) o els que no
SELECT dades.query('//nom') FROM alumne SELECT dades.value('//persona','varchar(255)') FROM taula SELECT dades.exists('/gent/persona/nom') FROM taula
Tamb podem modificar dades individuals dins dels XML amb insert, replace i delete
UPDATE taula SET MyXML.MODIFY ( ' insert <persona> <nom>Filomenu</nom> <cognom>Garcia</nom> </persona> after (/persona)[1] ' )
Filomenu Federicu
Pi Garcia