Вы находитесь на странице: 1из 35

Introduccin a SQL/XML

DIT-ETSIT-UPM Bases de Datos ( BSDT ) curso 2010-11

Introduccin a SQL/XML: SQL y XML funcionan conjuntamente


Transparencias basadas en el sitio Web: SQLX.org, (2004) y en la parte 14 del estndar SQL: ISO/IEC 9075-14:2010. Por: C. Costilla SINBAD-UPM Research Group http://sinbad.dit.upm.es

Nov, 2010

Madrid

C. Costilla

Introduccin a SQL/XML

ndice de Contenido

1. SQL/XML: SQL y XML funcionan conjuntamente 2. Qu es SQL/XML ? 3. Participantes e Implementaciones de SQL/XML.


3.1. Algunas Publicaciones 3.2. XQuery 1.1: Lenguaje Consultivo de XML, (Dic, 2009)

4. 4 SQL y XML 5. Tabla XML namespace prefixes y sus URIs 6. 6 XML: Conceptos 6 1 Data Type SQL convertidos a Schema Type XML Conceptos. 6.1. 7. Usando Juntos SQL y XML 8. XPath. 8.1. 8 XPath 8 1 SQL y XPath 9. Tipos XML (Operaciones Usuales). 10. 10 Funciones XML Ejemplos y XMLQUERY XML. 11. Tipos de datos y funciones de SQL:2006
Nov, 2010 Madrid C. Costilla 2

Introduccin a SQL/XML

1. SQL/XML: SQL y XML Funcionan conjuntamente j El 1er. estndar SQL/XML (2003), se publica por la International Organization for Standardization (ISO) como la parte 14 del estndar SQL: ISO/IEC 9075-14:2003. El ltimo estndar SQL/XML Part 14: XML-Related Specifications (SQL/XML) es de Junio 2010, y el inmediato anterior fue ISO/IEC 9075-14:2008. En http://www.sqlx.org/SQL-XML-documents/5FCD-14-XML-2004-07.pdf puede verse un documento completo. Es un Final Committee Draft del estndar de Julio 2005, con 359 pginas de contenido. SQLX.org, fue el sitio Web del estndar SQL/XML y su tecnologa asociada, que facilit la difusin de SQL y XML y los avances de cada versin SQL/XML en curso (hasta 2004). SQL/XML es el lenguaje estndar y SQLX es el sitio web y el nombre del primer grupo de SQLX trabajo de promulgacin (no confundirlos). , p g p q p p Para ms informacin de SQL/XML, contactar con el responsable del grupo que propone SQL/XML en USA: fred.zemke@oracle.com (2004).

Nov, 2010

Madrid

C. Costilla

Introduccin a SQL/XML

Especificaciones SQL / XML Recientes

Nov, 2010

Madrid

C. Costilla

Introduccin a SQL/XML

2. Qu es SQL/XML? SQL/XML es un estandard ANSI ISO que incorpora XML dentro del lenguaje SQL ANSI, de bases de datos objeto-relacionales. SQL:2003 es el estndar para acceder y manejar datos de bases de datos objeto objetorelacionales. Las empresas y los usuarios necesitan integrar sus datos XML en sus bases de datos objeto-relacionales, aprovechando las ventajosas facilidades de SQL. SQL SQL/XML permite almacenar sus documentos XML en sus bases de datos objetorelacionales, relacionales para consultar dichos documentos mediante Xpath y Xquery y para publicar sus datos SQL en un formato de documentos XML.

Nov. 2006

Nov, 2010

Madrid

C. Costilla

Introduccin a SQL/XML

3. Participantes e Implementaciones de SQL/XML En 2004, las organizaciones participantes en los grupos INCITS H2 y en ISO/IEC JTC1/ , g p p g p SC32/WG3 de SQL/XML y su desarrollo fueron los siguientes por orden alfabtico: Computer Associates, DataDirect Technologies, Hewlett-Packard, IBM*, JCC Consulting*, Microsoft*, NCR, Northrop Grumman Information Technology, Oracle*, River City Research Group, Sybase y textserver.com* En rojo se destacan las organizaciones ms activas en 2004. Implementaciones SQL/XML: DataDirect Technologies D t Di t T h l i IBM Corporation
http://www.datadirect.com/products/connectsqlxml/csqlxml-overview/index.ssp

http://www-106.ibm.com/developerworks/db2/library/techarticle/dm-0311wong/index.html

[An introduction to SQL/XML functions in DB2 UDB and the DB2 XML Extender] Oracle Corporation http://otn.oracle.com/tech/xml/xquery/sqlxml/index.html Esta lista (de Mayo, 2004) viene evolucionando con alta dinmica. El ltimo estndar es de Junio 2010.
Nov, 2010 Madrid C. Costilla 6

Introduccin a SQL/XML

3.1. Algunas publicaciones 3 1 Al bli i

Columnas y Artculos: SQL in, XML out , Jonathan Gennick, http://otn.oracle.com/oramag/oracle/03 may/o33xml.html http://otn oracle com/oramag/oracle/03-may/o33xml html SQL/XML and the SQLX Informal Group of Companies , Andrew Eisenberg and Jim Melton htt // Melton, http://www.acm.org/sigmod/record/issues/0109/standards.pdf / i d/ d/i /0109/ t d d df XML Programming with SQL/XML and XQuery , Funderburk, Malaika, Reinwald, M l ik R i ld http://www.research.ibm.com/journal/sj/414/reinwald.pdf
Esta lista, de Marzo 2004, evolucionar con el tiempo ms de 5.500 artculos se haban publicado sobre XML, a mediados de 2009!

Nov, 2010

Madrid

C. Costilla

Introduccin a SQL/XML

3.2. XQuery 1.1: Un Lenguaje Consultivo de XML, ( , 2009) y g j , (Dic, ) Como sabemos, XML es un lenguaje de marcado verstil p etiquetar el contenido de g j para q informacin de diversas fuentes de datos incluyendo:

documentos estructurados y semi-estructurados, RDBs, y repositorios de objetos.

XQuery usa la estructura de XML para expresar consultas a todas estas fuentes de datos, bien estn fsicamente almacenados en XML o bien sean vistos como XML va un middleware. XQuery 1.1 describe un lenguaje consultivo aplicado a un amplio espectro de tipos de y g j p p p p fuentes de datos XML muy diversos. XQuery 1.1 es la siguiente versin de XQuery 1.0 (Recomendacin publicada el 23 Enero de 2007). 2007) (vase el estndar en http://www.w3.org/standards/techs/xquery)

Nov, 2010

Madrid

C. Costilla

Introduccin a SQL/XML

4. SQL y XML

Cmo pueden ser publicados datos SQL en XML de modo que publicados se conserve la mxima cantidad de informacin, incluyendo , p p p , identificadores, el conocimiento de tipo de datos apropiado, etc.?
Solucin

Mapeando las Tablas SQL en Documentos XML


Mapeando identificadores SQL dentro de XML Qnames y viceversa Mapeando SQL Data Types en XML Schema Types y viceversa p Q yp yp

Nov, 2010

Madrid

C. Costilla

Introduccin a SQL/XML

5. Tabla XML namespace prefixes y sus URIs XML namespace prefix XML namespace URI http://www.w3.org/2001/XMLSchema htt // 3 /2001/XMLS h http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2003/11/xpath-datatypes http://standards.iso.org/iso/9075/2003/sqlxml http://standards iso org/iso/9075/2003/sqlxml

xsd xsi xdt sqlxml

Nov, 2010

Madrid

C. Costilla

10

Introduccin a SQL/XML

6. XML: Conceptos <book> boo <title>Querying XML </title> <author>Jim Melton </author> / th <author>Andrew Eisenberg </author> <publ>MKP</publ> <date>2002</date> </book>

Nov, 2010

Madrid

C. Costilla

11

Introduccin a SQL/XML

XML Support

Nov, 2010

Madrid

C. Costilla

12

Introduccin a SQL/XML

6.1 6 1 Data Type SQL convertidos a Schema Type XML Mapear cada tipo predefinido de SQL a su XML Schema ms similar usando las caracterticas (anotaciones y restricciones) de Schema XML para capturar la semntica de tipos SQL tanto como sea posible. Algunos Mappings entre SQL y XML: del conjunto de caracteres SQL a Unicode de SQL<identifier> s a XML Names de SQLdata types (como los usados en los esquemas SQL para definir objetos de esquemas SQL tales como columnas) a XML Schema d t types t l l ) S h data t de valores SQLdata types a valores de XML Schema data types de una tabla SQL a un documento XML y a un documento XML Schema Q etc.

Nov, 2010

Madrid

C. Costilla

13

Introduccin a SQL/XML

Tipos de datos XML en Tablas SQL

Nov, 2010

Madrid

C. Costilla

14

Introduccin a SQL/XML

XML Export Format

Nov, 2010

Madrid

C. Costilla

15

Introduccin a SQL/XML

Mapping Names . Ejemplo SQL --> XML

Nov, 2010

Madrid

C. Costilla

16

Introduccin a SQL/XML

Mapping Names. Ejemplo SQL --> XML

"Salary:FY2000" "S l FY2000" "Work@home" Work@home

Salary_x003A_FY2000 S l 003A FY2000 Work_x0040_home Work x0040 home

"Work_x0040_home" Work_x005F_x0040_home "Work_home" "@@" Work_home

_x0040_ _x0040_ /*N t d bl */ 0040 0040 /*Note double _*/

Nov, 2010

Madrid

C. Costilla

17

Introduccin a SQL/XML

6.1 6 1 Data Type SQL convertidos a Schema Type XML BOOLEAN <xsd:simpleType> <xsd:restriction base="xsd:boolean"/> <xsd:annotation> <sqlxml:sqltype sqlxml:sqltype name="BOOLEAN"/> </xsd:annotation> </xsd:restriction> </xsd:simpleType>
Nov, 2010 Madrid C. Costilla 18

Introduccin a SQL/XML

7. U d Juntos 7 Usando J t SQL y XML SQL ms Xpath Almacenar documentos XML en bases de datos SQL Tipos XML Ver datos SQL en formato o vistas XML

Nov, 2010

Madrid

C. Costilla

19

Introduccin a SQL/XML

8. XPath
CONSULTAS con XQuery XQuery (soportado mediante XPath) es un lenguaje consultivo para que XML

pueda extraer datos, al estilo de SQL en XORDB, o como SPARQL en la Web Semntica Xpath: Un lenguaje p direccionar p p g j para partes de un documento. Ejemplos: //header //h d /book/author[1] /emp[@salary >10000]
Todas las cabeceras en un documento El primer elemento autor que es hijo de cada elemento libro Cada elemento empleado cuyo atributo salario es > 10000

Nov, 2010

Madrid

C. Costilla

20

Introduccin a SQL/XML

XQuery y Qu es y para qu sirve? XQuery es un lenguaje estandard para combinar documentos bases de documentos, datos, pginas Web y otras formas de representacin de informacin. XQuery cuenta con una amplia implementacin es potente y ms fcil de implementacin, aprender y mantener que otros lenguajes alternativos. Xquery Xq er podra reempla ar a los lenguajes propietarios del middleware y del reemplazar leng ajes middle are desarrollo de Aplicaciones Web . XQuery podra sustituir a los programs complejos en Java o C++ con pocas XQ d tit i l l j J lneas de cdigo.
(vanse: (

http://www.w3.org/standards/xml/query http://www.w3.org/standards/techs/xquery)

Nov, 2010

Madrid

C. Costilla

21

Introduccin a SQL/XML

8.1. SQL y XPath CREATE_TABLE my_docs ( doc_no INTEGER doc_owner d VARCHAR(50) document CLOB(2G) ) SELECT doc_no, xpath(document, /publ/name) FROM my_docs d WHERE xpath (document, //author[Jim Melton])

Nov, 2010

Madrid

C. Costilla

22

Introduccin a SQL/XML

9. Tipos XML (Operaciones Usuales) XMLEXTRACT (XMLType, XPath [, Namespace])


Utiliza el argumento de Xpath para localizar un nodo en la instancia del Tipo XML (XML Type) usando la informacin del espacio de Namespace

XMLCONCAT (XMLval, XMLval [, XMLval]...) ( , ] )


Concatena los valores XMLval

XMLAGG (XMLval ORDER BY sortexpr)


Concatena valores XML trados de una tabla agrupada despus de evaluar sortexpr p

Nov, 2010

Madrid

C. Costilla

23

Introduccin a SQL/XML

XML soporta las siguientes funciones:

Nov, 2010

Madrid

C. Costilla

24

Introduccin a SQL/XML

10. Funciones de publicacin XML Funciones llamadas en SQL ordinario que generan XML XML. Sirven para producir: documentos XML, elementos, fragmentos o bosques; a partir de datos SQL SQL. Funciones:
XMLELEMENT XMLATTRIBUTES XMLCOLELEM XMLCOLATTVAL XMLGEN

Nov, 2010

Madrid

C. Costilla

25

Introduccin a SQL/XML

Ejemplo 1 SELECT e.id, XMLELEMENT ( "Emp", Emp XMLATTRIBUTES ( e.id ), 'Employee ', XMLELEMENT ("name", e.fname || ' ' || e.lname ), ' was hired on = ', XMLELEMENT ( "hiredate", e.hiredate ) ) AS "result" FROM employees AS e

Resultado 1 <emp id="1234">Employee id 1234 >Employee <name>J. Prez</name> was hired on = <hiredate>1980-06-17 </hiredate> </emp> <emp id="2341">Employee <name>T. Martn</name> was hired on = <hiredate>1978-02-25 </hiredate> </emp>

Nov, 2010

Madrid

C. Costilla

26

Introduccin a SQL/XML

Ejemplo 2 SELECT e.id, XMLGEN ( '<Emp name= {name} > <Emp name='"{name}"> <hiredate>{hire}</hiredate> <department>{dept}</department> p { p} p </Emp>', e.name AS name, e.hire, e hire e.dept ) AS "result" p y FROM employees e WHERE ...

Resultado 2 <emp id "1234">Emplo ee id="1234">Employee <emp><name>J. Prez</name> hiredate 1980 06 17 /hiredate <hiredate>1980-06-17</hiredate> <dept>Databases</dept></emp> <emp id "2341" id="2341"> <emp><name>T. Martn</name> hiredate 1978 25 02 /hiredate <hiredate>1978-25-02</hiredate> <dept>Engineering</dept></emp>

Nov, 2010

Madrid

C. Costilla

27

Introduccin a SQL/XML

Ejemplo 3 SELECT XMLELEMENT ( "Department", XMLATTRIBUTES ( e.dept AS "name" ), XMLAGG ( XMLELEMENT (" ("emp", e.lname) " l ) ORDER BY e.lname ) ) AS "dept list dept_list FROM employees e GROUP BY dept

Devuelve un elemento emp por empleado de cada dept, ordenado por su apellido generando un solo elemento por dept

Resultado 3

<department name=Databases"> <emp>Toms</emp><emp>Martn </emp></department> <department name="Engineering"> <emp>Juan</emp><emp>Prez </emp></department> </ ></d t t>

Nov, 2010

Madrid

C. Costilla

28

Introduccin a SQL/XML

Otras F i Ot Funciones SQL que generan XML (2 0) (2.0) XMLCOMMENT( (comment content [RETURNING {CONTENT | SEQUENCE }]) t t t
Permite a la aplicacin generar comentarios XML.

XMLPI(NAME tartet {, string-expression ][RETURNING { CONTENT | SEQUENCE}])


Permite a la aplicacin crear instrucciones de procesamiento XML

XMLCAST( value-expresion AS type)


Permite a la aplicacin convertir un valor (cualquier tipo XML o algn otro tipo) a uno de los tipos XML definidos en el segundo estndar.

Nov, 2010

Madrid

C. Costilla

29

Introduccin a SQL/XML

Otras Funciones (2.0)

XMLQUERY evala una expresin Xquery y devuelve el resultado a la aplicacin SQ SQL. Al contrario que XMLCOMMENT y XMLPI el valor devuelto por XMLPI, XMLQUERY puede ser una referencia al resultado o una copia del valor

Nov, 2010

Madrid

C. Costilla

30

Introduccin a SQL/XML

11. Ej 11 Ejemplo d XMLQUERY l de XM QUERY SELECT top price top_price, XMLQUERY ( 'for $cost in /buyer/contract/item/amount where /buyer/name = $var1 return $cost' $cost PASSING BY VALUE A.Eisenberg AS var1, buying_agents RETURNING SEQUENCE BY VALUE ) FROM buyers

Nov, 2010

Madrid

C. Costilla

31

Introduccin a SQL/XML

SQL:2006

Nov, 2010

Madrid

C. Costilla

32

Introduccin a SQL/XML

Estndar SQL 9075 al da de hoy


Information technology -- Database languages SQL, Corrigenda, Amendments and other parts

ISO/IEC 9075-1:2008; hoy tenemos la versin ISO/IEC 9075-1:2008/Cor 1:2010 ISO/IEC 9075-2:2008; hoy tenemos la versin de 2009-01-27 y ISO/IEC 9075-3:2008 ISO/IEC 9075-4:2008 9075 4:2008 ISO/IEC 9075-9:2008 ISO/IEC 9075 10:2008 9075-10:2008 ISO/IEC 9075-11:2008 ISO/IEC 9075-13:2008 ISO/IEC 9075 14:2008 9075-14:2008 Part 3: Call-Level Interface (SQL/CLI) Part 4: Persistent Stored Modules (SQL/PSM) Part 9: Management of External Data (SQL/MED) Part 10: Object Language Bindings (SQL/OLB) Part 11: Information and Definition Schemas (SQL/Schemata) Part 13: SQL Routines and Types Using the Java TM Prog.Lang. (SQL/JRT) Part 14: XML Related Specifications (SQL/XML) XML-Related

Nov, 2010

Madrid

C. Costilla

33

Introduccin a SQL/XML

Estndar SQL 9075 al da de hoy ISO/IEC 9075 define el lenguaje SQL. Su alcance es la definicin de la estructura de los datos, y las operaciones sobre los datos almacenados en esa estructura. ISO/IEC 9075-1:2008 (hoy es ISO/IEC 9075-1:2008/Cor 1:2010), especifica el marco conceptual utilizado en otras partes de ISO/IEC 9075 para definir la gramtica de SQL y el resultado del procesamiento de sus sentencias en una implementacin de SQL SQL. ISO/IEC 9075-2:2008 (hoy es ISO/IEC 9075-2:2008/Cor 1:2009), define la estructura de los datos y las operaciones bsicas sobre ellos Proporciona datos, ellos. capacidades funcionales para la: creacin, acceso, mantenimiento, control y p proteccin de los datos SQL, tanto estticos como dinmicos. Adems de la , invocacin interactiva, provee ligaduras con los PL: Ada, C, COBOL, Fortran, M, Pascal, and PL/I ISO/IEC 9075-3:2008 .. Call-Level Interface (SQL/CLI).
Nov, 2010 Madrid C. Costilla 34

Introduccin a SQL/XML

Nov, 2010

Madrid

C. Costilla

35

Вам также может понравиться