Академический Документы
Профессиональный Документы
Культура Документы
Nov, 2010
Madrid
C. Costilla
Introduccin a SQL/XML
ndice de Contenido
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
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
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:
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
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
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
Nov, 2010
Madrid
C. Costilla
14
Introduccin a SQL/XML
Nov, 2010
Madrid
C. Costilla
15
Introduccin a SQL/XML
Nov, 2010
Madrid
C. Costilla
16
Introduccin a SQL/XML
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
Nov, 2010
Madrid
C. Costilla
23
Introduccin a SQL/XML
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.
Nov, 2010
Madrid
C. Costilla
29
Introduccin a SQL/XML
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
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