Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso:
Programacin avanzada de base de datos
Profesor:
Mario Chacn
Investigacin
Alumno
Contenido
Introduccin .................................................................................................................................................. 3 XML en base de datos ................................................................................................................................... 3 Ventajas del XML ...................................................................................................................................... 3 Estructura de un documento XML ............................................................................................................ 3 Documentos XML bien formados y control de errores ............................................................................ 5 Partes de un documento XML................................................................................................................... 5 Prlogo .................................................................................................................................................. 5 Cuerpo ................................................................................................................................................... 5 Elementos ............................................................................................................................................. 6 Atributos ............................................................................................................................................... 6 Entidades predefinidas ......................................................................................................................... 6 Secciones CDATA................................................................................................................................... 7 Comentarios .......................................................................................................................................... 7 Qu es SQL/XML?.................................................................................................................................... 7 XQuery ...................................................................................................................................................... 7 XPath ......................................................................................................................................................... 8 Base de datos XML .................................................................................................................................... 8 Gestores XML Enable ............................................................................................................................ 8 Gestores XML nativo ............................................................................................................................. 8 XML en DB2 ............................................................................................................................................... 9 Funciones XML en DB2........................................................................................................................ 10 Conclusin ................................................................................................................................................... 17 Recomendacin .......................................................................................................................................... 17 Anexos......................................................................................................................................................... 18 Bibliografa .................................................................................................................................................. 19
Introduccin
El presente documento, contiene una introduccin a conceptos de XML y su manejo en base de datos. Luego de la definicin de conceptos bsicos de XML, el desarrollo de este documento se centra en su aplicacin en DB2 y funciones de sistema para la manipulacin de XML.
Los documentos XML se dividen en dos grupos, documentos bien formados y documentos vlidos.
Bien formados: Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintcticas sin estar sujetos a unos elementos fijados en un DTD. De hecho los documentos XML
deben tener una estructura jerrquica muy estricta y los documentos bien formados deben cumplirla. Vlidos: Adems de estar bien formados, siguen una estructura y una semntica determinada por un DTD: sus elementos y sobre todo la estructura jerrquica que define el DTD, adems de los atributos, deben ajustarse a lo que el DTD dicte.
Figura 01: Ejemplo de XML Fuente (Creacin Propia) Lo primero que tenemos que observar es la primera lnea. Con ella deben empezar todos los documentos XML, ya que es la que indica que lo que la sigue es XML. Aunque es opcional, es recomendable incluirla. Puede tener varios atributos, algunos obligatorios y otros no:
version: Indica la versin de XML usada en el documento. Es obligatorio ponerlo, a no ser que sea un documento externo a otro que ya lo inclua. encoding: La forma en que se ha codificado el documento. Se puede poner cualquiera, y depende del parser el entender o no la codificacin. Por defecto es UTF-8, aunque podran ponerse otras, como UTF-16, US-ASCII, ISO-8859-1, etc. No es obligatorio salvo que sea un documento externo a otro principal. standalone: Indica si el documento va acompaado de un DTD ("no"), o no lo necesita ("yes"); en principio no hay porqu ponerlo, porque luego se indica el DTD si se necesita.
La "declaracin de tipo de documento" define qu tipo de documento estamos creando para ser procesado correctamente. Es decir, definimos que declaracin de tipo de documento (DTD) valida y define los datos que contiene nuestro documento XML.
Prlogo
Aunque no es obligatorio, los documentos XML pueden empezar con unas lneas que describen la versin XML, el tipo de documento y otras cosas. El prlogo de un documento XML contiene: Una declaracin XML. Es la sentencia que declara al documento como un documento XML. Una declaracin de tipo de documento. Enlaza el documento con su DTD (definicin de tipo de documento), o el DTD puede estar incluido en la propia declaracin o ambas cosas al mismo tiempo. Uno o ms comentarios e instrucciones de procesamiento.
Cuerpo
A diferencia del prlogo, el cuerpo no es opcional en un documento XML, el cuerpo debe contener solo un elemento raz, caracterstica indispensable tambin para que el documento est bien formado. Sin embargo es necesaria la adquisicin de datos para su buen funcionamiento.
El XML es sensible a maysculas y minsculas. Existe un conjunto de caracteres llamados espacios en blanco (espacios, tabuladores, retornos de carro, saltos de lnea) que los procesadores XML tratan de forma diferente en el marcado XML. Es necesario asignar nombres a las estructuras, tipos de elementos, entidades, elementos particulares, etc. En XML los nombres tienen alguna caracterstica en comn. Las construcciones como etiquetas, referencias de entidad y declaraciones se denominan marcas; son partes del documento que el procesador XML espera entender. El resto del documento entre marcas son los datos entendibles por las personas.
Elementos
Los elementos XML pueden tener contenido (ms elementos, caracteres o ambos), o bien ser elementos vacos.
Atributos
Los elementos pueden tener atributos, que son una manera de incorporar caractersticas o propiedades a los elementos de un documento. Deben ir entre comillas.
Entidades predefinidas
En XML 1.0, se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado por el procesador XML. Es decir, que as podemos usar el carcter "<" sin que se interprete como el comienzo de una etiqueta XML, por ejemplo. Entidad Carcter & & < < > > ' ' " " Tabla 1: Entidades predefinidas en XML Fuente (asptutor, 2013)
Secciones CDATA
Existe otra construccin en XML que permite especificar datos, utilizando cualquier carcter, especial o no, sin que se interprete como marcado XML. La razn de esta construccin llamada CDATA (Character Data) es que a veces es necesario para los autores de documentos XML, poder leerlo fcilmente sin tener que descifrar los cdigos de entidades. Especialmente cuando son muchas.
Comentarios
A veces es conveniente insertar comentarios en el documento XML, que sean ignorados por el procesado de la informacin y las reproducciones del documento. Los comentarios tienen el mismo formato que los comentarios de HTML. Es decir, comienzan por la cadena "<!--" y terminan con "-->".
Figura 05: Ejemplo de Comentario Fuente: (Creacin Propia) Se pueden introducir comentarios en cualquier lugar de la instancia o del prlogo, pero nunca dentro de las declaraciones, etiquetas, u otros comentarios.
Qu es SQL/XML?
SQL/XML es un estandard ANSI, ISO que incorpora XML dentro del lenguaje SQL de bases de datos objeto-relacionales. SQL: 2003 es el estndar para acceder y manejar datos de bases de datos objetorelacionales. Las empresas y los usuarios necesitan integrar sus datos XML en sus bases de datos objetorelacionales, aprovechando las ventajosas facilidades de SQL. SQL/XML permite almacenar sus documentos XML en sus bases de datos objetorelacionales, para consultar dichos documentos mediante Xpath y Xquery y para publicar sus datos SQL en un formato de documentos XML.
XQuery
XQuery usa la estructura arbrea 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 fuentes de datos XML muy diversos.
XQuery es un lenguaje estndar para combinar documentos, bases de datos, pginas Web y otras formas de representacin de informacin. XQuery cuenta con una amplia implementacin, es potente y ms fcil de aprender y mantener que otros lenguajes alternativos
XPath
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.
una base de datos XML nativa son tpicamente accesibles directamente mediante un URL. El trabajo con bases de datos XML nativas involucra dos pasos bsicos: Describir los datos mediante Definiciones de Tipos de Datos (Document TypeDefinitions, DTD) o esquemas XML Definir un nuevo esquema de base de datos XML nativa XML o Mapa de Datos a usar para almacenamiento y obtencin de datos.
Algunos de los principales Motores en el mercado: TotalXML OpenLink Tamino XML Server Berkeley DB de Oracle
XML en DB2
(IBM, 2013)El DB2 proporciona los tipos de datos XML para almacenar documentos XML bien formados. Los valores en las columnas XML son almacenados en una representacin interna diferente a los tipos de datos de cadena de caracteres. Para almacenar datos XML en una columna de tipo de datos XML, los datos deben ser transformados usando la funcin XMLPARSE. Un valor de datos de tipo XML puede transformarse en un valor de cadena de caracteres serializada, representante del documento XML que usa la funcin XMLSERIALIZE. DB2 proporciona muchas otras funciones integradas para manipular tipos de datos XML. Desde la versin 9 DB2 incorpora una nueva Tecnologa llamada XML pure, cuyas caractersticas son: XML es un tipo de dato. XML se gestiona y almacena en un contenedor separado. XML se valida con schemas en la base de datos. Incluye funciones para transformar XML en SQL y viceversa. Incorpora procedimientos para generar documentos XML en tablas. XML se indexa para agilizar bsquedas y recuperacin de datos.
Figura 07: Ejemplo de XMLATTRIBUTES Fuente: (IBM, 2013) XMLCOMMENT La funcin XMLCOMMENT devuelve un valor XML con un nico nodo de comentario XQuery con el argumento de entrada como contenido. XMLCONCAT La funcin XMLCONCAT devuelve una secuencia que contiene la concatenacin de un nmero variable de argumentos de entrada de XML.
Figura 08: Ejemplo de XMLCONCAT Fuente: (IBM, 2013) XMLDOCUMENT La funcin XMLDOCUMENT devuelve un valor XML con un nico nodo de documento XQuery con ninguno o varios nodos hijo.
Figura 09: Ejemplo de XMLDOCUMENT Fuente: (IBM, 2013) XMLELEMENT La funcin XMLELEMENT devuelve un valor XML que es un nodo de elemento XQuery.
Figura 10: Ejemplo de XMLELEMENT Fuente: (IBM, 2013) XMLFOREST La funcin XMLFOREST devuelve un valor XML que es una secuencia de nodos de elemento XQuery. Esta funcin toma un conjunto opcional de declaraciones de espacios de nombres y uno o varios argumentos que forman el contenido de nombre y elemento para uno o varios nodos de elemento. El resultado es una secuencia XML que contiene una secuencia de nodos de elemento XQuery o el valor nulo. El tipo de datos del resultado es XML. Si cualquiera de los argumentos expresin-contenidoelemento puede ser nulo, el resultado puede ser nulo; si todos los valores del argumento expresincontenido-elemento son nulos y la opcin NULL ON NULL est en vigor, el resultado es el valor nulo. La funcin XMLFOREST se puede expresar mediante XMLCONCAT y XMLELEMENT.
Figura 11: Ejemplo de XMLFOREST Fuente: (IBM, 2013) XMLNAMESPACES La declaracin XMLNAMESPACES construye las declaraciones de espacios de nombres a partir de los argumentos. Esta declaracin nicamente puede emplearse como argumento de funciones especficas como XMLELEMENT, XMLFOREST y XMLTABLE. El resultado es una o varias declaraciones de espacios de nombres XML que contienen espacios de nombres con mbito para cada uno de los valores de entrada no nulos.
XMLPARSE La funcin XMLPARSE analiza el argumento como un documento XML y devuelve un valor XML.
Figura 12: Ejemplo de XMLPARSE Fuente: (IBM, 2013) XMLPI La funcin XMLPI devuelve un valor XML con un nodo de instruccin de proceso XQuery.
Figura 13: Ejemplo de XMLPI Fuente: (IBM, 2013) XMLQUERY La funcin XMLQUERY devuelve un valor XML a partir de la evaluacin de una expresin XQuery utilizando posiblemente los argumentos de entrada especificados como variables XQuery. Restricciones de uso de XMLQUERY: La funcin XMLQUERY no puede formar parte de los elementos siguientes: o Parte de la clusula ON asociada a un operador JOIN o una sentencia MERGE (SQLSTATE 42972)
Parte de la clusula GENERATE KEY USING o RANGE THROUGH de la sentencia CREATE INDEX EXTENSION (SQLSTATE 428E3) o Parte de la clusula FILTER USING de la sentencia CREATE FUNCTION (escalar externa) o la clusula FILTER USING de la sentencia CREATE INDEX EXTENSION (SQLSTATE 428E4) o Parte de una restriccin de comprobacin o de una expresin de generacin de columnas (SQLSTATE 42621) o Una clusula-group-by (SQLSTATE 42822) o Un argumento de una funcin-columna (SQLSTATE 42607) XMLQUERY como subconsulta: Una expresin XMLQUERY que acta como subconsulta puede estar limitada por sentencias que restringen las subconsultas.
XMLROW La funcin XMLROW devuelve un valor XML con un nico nodo de documento XQuery que contiene un nodo de elemento de nivel superior.
Figura 14: Ejemplo de XMLPI Fuente: (IBM, 2013) XMLSERIALIZE La funcin XMLSERIALIZE devuelve un valor XML serializado de los tipos de datos especificados, generados a partir del argumento expresin-XML. XMLTEXT La funcin XMLTEXT devuelve un valor XML con un nico nodo de texto XQuery cuyo contenido es el argumento de entrada.
XMLVALIDATE La funcin XMLVALIDATE devuelve una copia del valor de entrada XML aumentado con la informacin obtenida a partir de la validacin de esquema XML, incluidos los valores por omisin.
Conclusin
Los gestores de base de datos modernos ofrecen funcionalidades nativas para el manejo de XML, el utilizar correctamente esas funcionalidades a nivel empresariales pueden ayudar a mejorar los procesos relacionados al manejo de XML y la complejidad que estos significaban en el pasado.
Recomendacin
Los analista de base de datos, deben analizar las necesidades relacionadas con el manejo de datos de tipo XML y analizar que gestor de base de datos, es el motor adecuado para sus requerimientos, aunque XML no es un tema nuevo, muchos administradores de base de datos, carecen del conocimiento del soporte nativo de muchos gestores y optan por manejar datos XML en forma de Texto o en forma de archivos fsico, esto no es ptimo y en muchos casos implican altos costos en el desarrollo de aplicaciones que desean manejar informacin de este tipo.
Anexos
Bibliografa
asptutor. (04 de 2013). http://www.asptutor.com/xml/index1.asp. Obtenido de http://www.asptutor.com/xml/index1.asp cicei. (04 de 2013). http://www.cicei.com/ocon/gsi/tutorial_xml/Estructura.html. Obtenido de http://www.cicei.com/ocon/gsi/tutorial_xml/Estructura.html Costilla, C. (2011). Introduccion A SQL/XML: SQL y XML funcionan conjuntamente. En C. Costilla. MAdrid: SINBAD-UPM Research Group. guillesql. (21 de Abril de 2013). guillesql. Obtenido de www.guillesql.es: http://www.guillesql.es/Articulos/XML_SQL_Server.aspx IBM. (04 de 2013). http://www.ibm.com/developerworks/ssa/data/tutorials/db2cert7305/section2.html. Obtenido de http://www.ibm.com/developerworks/ssa/data/tutorials/db2-cert7305/section2.html IBM. (04 de 2013). IBM. Obtenido de http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.d oc%2Fdoc%2Fr0022197.html&lang%3Des Ortiz, M. N. (4 de 2013). http://es.scribd.com. Obtenido de http://es.scribd.com/doc/64763902/Basesde-Datos-Nativas-XML Snchez, L. A. (2006). IBM DB2 9 pureXML, base de datos hbrida XML Relacional. Chile: IBM. wikipedia. (04 de 2013). http://es.wikipedia.org/wiki/Base_de_datos_XML. Obtenido de http://es.wikipedia.org/wiki/Base_de_datos_XML