Base De Datos Programación SQL XML - IBM

Transcription

IBM iVersión 7.2Base de datosProgramación SQL XML

IBM iVersión 7.2Base de datosProgramación SQL XML

AvisoAntes de utilizar esta información y el producto al que da soporte, lea la información contenida en “Avisos” en la página231.Esta edición se aplica a IBM i 7.1 (producto número 5770-SS1) y a todos los releases y modificaciones subsiguienteshasta que se indique lo contrario en nuevas ediciones. Esta versión no se ejecuta en todos los modelos de sistemacon conjunto reducido de instrucciones (RISC) ni tampoco se ejecutan en los modelos CISC.Este documento puede contener referencias al código interno bajo licencia. El código interno bajo licencia (LIC) escódigo máquina y se licencia bajo los términos del Acuerdo de licencia de IBM para Código máquina. Copyright IBM Corporation 2012, 2014.

ContenidoProgramación SQL XML . . . . . . . . 1Novedades de IBM i 7.2 . . . . . . . . . . 1Cómo leer los diagramas de sintaxis . . . . . . 1Archivo PDF de Programación SQL XML . . . . . 3Sentencias SQL y funciones SQL/XML . . . . . 3Visión general de la entrada y salida XML . . . 4Comparación entre XML y los modelosrelacionales . . . . . . . . . . . . . . 5Guía de aprendizaje de XML . . . . . . . . 7Ejercicio 1: Crear una tabla que puedealmacenar datos XML . . . . . . . . . 7Ejercicio 2: Insertar documentos XML encolumnas de tipo XML . . . . . . . . . 7Ejercicio 3: Actualizar documentos XMLalmacenados en una columna XML . . . . . 8Ejercicio 4: Validar documentos XML conrespecto a esquemas XML . . . . . . . . 9Ejercicio 5: Transformación con hojas de estiloXSLT . . . . . . . . . . . . . . 11Inserción de datos XML . . . . . . . . . 14Adición de columnas XML a tablas existentes 14Inserción en columnas XML . . . . . . . 14Análisis XML . . . . . . . . . . . . 15Funciones de publicación de SQL/XML paraconstruir valores XML . . . . . . . . . . 17Ejemplo: Construir un documento XML convalores de una sola tabla . . . . . . . . 18Ejemplo: Construir un documento XML convalores de varias tablas . . . . . . . . 19Ejemplo: Construir un documento XML conlos valores de filas de tabla que contienenelementos nulos . . . . . . . . . . . 19Ejemplo: Transformación con hojas de estiloXSLT . . . . . . . . . . . . . . 20Ejemplo: Utilización de XSLT como motor deformato. . . . . . . . . . . . . . 22Ejemplo: Utilización de XSLT para elintercambio de datos . . . . . . . . . 23Ejemplo: Utilización de XSLT para eliminarespacios de nombres . . . . . . . . . 25Consideraciones importantes para latransformación de documentos XML . . . . 28Manejo de caracteres especiales en funcionesde publicación de SQL/XML . . . . . . 28Serialización de XML . . . . . . . . . 29Diferencias en un documento XML tras elalmacenamiento y recuperación. . . . . . 31Tipos de datos para el archivado dedocumentos XML . . . . . . . . . . 31Utilización de XMLTABLE para hacer referenciaal contenido XML como una tabla relacional . . 32Ejemplo: Utilizar XMLTABLE para manejarelementos que faltan . . . . . . . . . 33Ejemplo: Utilizar XMLTABLE para crear unsubconjunto de datos de resultado. . . . . 34 Copyright IBM Corp. 2012, 2014Ejemplo: Utilizar XMLTABLE para manejarvarios valores. . . . . . . . . . . .Ejemplo: Utilizar XMLTABLE con espacios denombres . . . . . . . . . . . . .Ejemplo: Numerar filas de resultados paraXMLTABLE . . . . . . . . . . . .Actualización de datos XML . . . . . . . .Supresión de datos XML de tablas . . . . .Repositorio de esquemas XML . . . . . . .Soporte de lenguajes de programación deaplicaciones . . . . . . . . . . . . .Inserciones y actualizaciones de columnasXML en aplicaciones CLI . . . . . . . .Recuperación de datos XML en aplicacionesCLI . . . . . . . . . . . . . . .Declaración de variables del lenguaje principalXML en aplicaciones de SQL incorporado . .Ejemplo: Cómo hacer referencia a variableshost XML en aplicaciones de SQLincorporado . . . . . . . . . . .Recomendaciones para el desarrollo deaplicaciones de SQL incorporado con XML .Identificación de valores XML en unSQLDA . . . . . . . . . . . . .Java . . . . . . . . . . . . . . .Datos XML en aplicaciones JDBC . . . .Datos XML en aplicaciones SQLJ . . . .Rutinas . . . . . . . . . . . . . .Soporte de XML en procedimientos SQL. .Soporte para el tipo de datos XML enrutinas externas . . . . . . . . . .Codificación de datos XML . . . . . . . .Consideraciones sobre codificación alalmacenar o pasar datos XML . . . . . .Consideraciones de codificación para laentrada de datos XML en una base dedatos . . . . . . . . . . . . .Consideraciones de codificación para larecuperación de datos XML de una base dedatos . . . . . . . . . . . . .Consideraciones de codificación para pasardatos XML en parámetros de rutinas . . .Consideraciones de codificación para datosXML en aplicaciones JDBC y SQLJ. . . .Efectos de la codificación y serialización XMLsobre la conversión de datos. . . . . . .Escenarios de codificación para la entradade datos XML codificados internamente enuna base de datos . . . . . . . . .Escenarios de codificación para la entradade datos XML codificados externamente enuna base de datos . . . . . . . . .Escenarios de codificación para larecuperación de datos XML conserialización implícita . . . . . . . 161626365iii

Escenarios de codificación para larecuperación de datos XML conXMLSERIALIZE explícita . . . . . . . 68Correlaciones de nombres de codificación conlos CCSID efectivos para datos XMLalmacenados . . . . . . . . . . . . 70Correlaciones de CCSID con nombres decodificación para datos de salida XMLserializados . . . . . . . . . . . . 70Descomposición de esquemas XML anotados . . . 70Descomposición de documentos XML conesquemas XML anotados . . . . . . . . . 71Registro y habilitación de esquemas XML para ladescomposición . . . . . . . . . . . . 71Orígenes de descomposición de esquemas XMLanotados . . . . . . . . . . . . . . 71anotaciones de descomposición XML . . . . . 72Especificación y ámbito de las anotaciones dedescomposición XML . . . . . . . . . 72Anotaciones como atributos . . . . . . . 73Anotaciones como elementos hijoestructurados . . . . . . . . . . . . 73Anotaciones globales . . . . . . . . . 73Anotaciones de descomposición XML Resumen . . . . . . . . . . . . . 73Anotación de descomposicióndb2-xdb:defaultSQLSchema . . . . . . . 74Anotación de descomposición db2-xdb:rowSet 75Anotación de descomposición db2-xdb:table80Anotación de descomposición db2-xdb:column 82Anotación de descomposicióndb2-xdb:locationPath . . . . . . . . . 84Anotación de descomposicióndb2-xdb:expression . . . . . . . . . . 87Anotación de descomposicióndb2-xdb:condition . . . . . . . . . . 90Anotación de descomposicióndb2-xdb:contentHandling . . . . . . . . 93Anotación de descomposicióndb2-xdb:normalization. . . . . . . . . 97Anotación de descomposición db2-xdb:order99Anotación de descomposicióndb2-xdb:truncate . . . . . . . . . . 101Anotación de descomposicióndb2-xdb:rowSetMapping . . . . . . . 103Anotación de descomposicióndb2-xdb:rowSetOperationOrder . . . . . 105Palabras clave para la descomposición deesquemas XML anotados . . . . . . . 106Tratamiento de las secciones CDATA en ladescomposición del esquema XML anotado . . 107Valores NULL y series vacías en ladescomposición de esquemas XML anotados . . 107Lista de comprobación para la descomposiciónde esquemas XML anotados . . . . . . . 108Ejemplos de correlaciones en la descomposiciónde esquemas XML anotados . . . . . . . 109Anotaciones de tipos complejos derivados109Ejemplo de anotación de descomposición:Correlación con una columna XML . . . . 115ivIBM i: Programación SQL XMLEjemplo de anotación de descomposición: Unvalor correlacionado con una sola tabla quegenera una sola fila . . . . . . . . .Ejemplo de anotación de descomposición: Unvalor correlacionado con una sola tabla quegenera varias filas . . . . . . . . . .Ejemplo de anotación de descomposición: Unvalor correlacionado con varias tablas . . .Ejemplo de anotación de descomposición:Agrupación de varios valores correlacionadoscon una sola tabla . . . . . . . . . .Ejemplo de anotación de descomposición:Varios valores de contextos diferentescorrelacionados con una sola tabla . . . .Compatibilidad de tipos de esquema XMLcon tipos SQL para la descomposición deesquemas anotados . . . . . . . . .Límites y restricciones para ladescomposición de esquemas XML anotados .Esquema para las anotaciones dedescomposición XML. . . . . . . . .Modelo de datos XML . . . . . . . . . .Secuencias y elementos . . . . . . . . .Valores atómicos . . . . . . . . . . .Nodos . . . . . . . . . . . . . . .Nodos de documento. . . . . . . . .Nodos de elemento . . . . . . . . .Nodos de atributo . . . . . . . . . .Nodos de texto . . . . . . . . . . .Nodos de instrucción de proceso . . . . .Nodos de comentario. . . . . . . . .Generación de modelos de datos . . . . . .Valores XML en SQL . . . . . . . . . .Visión general de XPath . . . . . . . . . .Sensibilidad a las mayúsculas y minúsculas enDB2 XPath . . . . . . . . . . . . .Espacios en blanco en DB2 XPath . . . . .Comentarios en DB2 XPath . . . . . . . .Juego de caracteres . . . . . . . . . .Ordenación predeterminada . . . . . . .Espacios de nombres XML y nombrescalificados en DB2 XPath . . . . . . . .Sistema de tipos de XPath . . . . . . . .Visión general del sistema de tipos . . . .Funciones de constructor para tiposincorporados . . . . . . . . . . .Tipos de datos genéricos . . . . . . .xs:anyType . . . . . . . . . . .xs:anySimpleType . . . . . . . . .xs:anyAtomicType . . . . . . . . .Tipos de datos para datos sin tipo . . . .xs:untyped . . . . . . . . . . .xs:untypedAtomic . . . . . . . . .xs:string . . . . . . . . . . . . .Tipos de datos numéricos . . . . . . .xs:decimal . . . . . . . . . . .xs:double . . . . . . . . . . . .xs:integer . . . . . . . . . . . .Límites de rango para tipos numéricosxs:boolean . . . . . . . . . . . .Tipos de datos de fecha y hora . . . . 148148148149149149149150150151151152

xs:date . . . . . . . . . .xs:time . . . . . . . . . .xs:dateTime . . . . . . . . .xs:duration . . . . . . . . .xs:dayTimeDuration . . . . . .xs:yearMonthDuration . . . . .Conversiones entre tipos de datos deesquema XML . . . . . . . . .Expresiones y prólogos XPath . . . . .Prólogos . . . . . . . . . . .Declaraciones de espacio de nombresDeclaraciones de espacio de nombrespredeterminado . . . . . . .Evaluación y proceso de expresiones .Atomización. . . . . . . . .Promoción de tipo. . . . . . .Sustitución de subtipo . . . . .Expresiones primarias . . . . . .Literales . . . . . . . . . .Referencias de variable en DB2 XPathExpresión entre paréntesis . . . .Expresiones de elemento de contextoLlamadas de función . . . . . .Expresiones de vía de acceso . . . .Pasos de eje . . . . . . . . .Sintaxis abreviada para expresiones dede acceso . . . . . . . . . .Expresiones de filtro . . . . . . .Expresiones aritméticas . . . . . .Expresiones de comparación . . . .Comparaciones genéricas . . . .Expresiones lógicas . . . . . . .Expresiones regulares. . . . . . .Descripciones de funciones XPath . . .Función fn:abs . . . . . . . . .Función fn:adjust-date-to-timezone . .Función fn:adjust-dateTime-to-timezoneFunción fn:adjust-time-to-timezone . .Función fn:boolean . . . . . . .Función fn:compare . . . . . . .Función fn:concat . . . . . . . .Función fn:contains . . . . . . .Función fn:count . . . . . . . .Función fn:current-date . . . . . .Función fn:current-dateTime . . . .Función db2-fn:current-local-date . . .Función db2-fn:current-local-dateTime .Función db2-fn:current-local-time. . .Función fn:current-time . . . . . .Función fn:data. . . . . . . . .Función fn:dateTime . . . . . . .Función fn:day-from-date . . . . .152152153154156157.158160161161. . . . . . . . . . . . . .vía. . . . . . . . . . . . . . . . . . . . . . . . . . iónFunciónFunciónfn:day-from-dateTime. . .fn:days-from-duration . .fn:distinct-values . . . .fn:exists . . . . . . .fn:hours-from-dateTime . .fn:hours-from-duration . .fn:hours-from-time . . .fn:implicit-timezone . . .fn:last . . . . . . . .fn:local-name . . . . .db2-fn:local-timezone . . .fn:lower-case . . . . .fn:matches . . . . . .fn:max. . . . . . . .fn:min . . . . . . . .fn:minutes-from-dateTime .fn:minutes-from-duration .fn:minutes-from-time . . .fn:month-from-date . . .fn:month-from-dateTime . .fn:months-from-duration .fn:name . . . . . . .fn:normalize-space. . . .fn:not . . . . . . . .fn:position . . . . . .fn:replace . . . . . . .fn:round . . . . . . .fn:seconds-from-dateTime .fn:seconds-from-duration .fn:seconds-from-time . . .fn:starts-with . . . . .fn:string . . . . . . .fn:string-length . . . . .fn:substring . . . . . .fn:sum. . . . . . . .fn:timezone-from-date . .fn:timezone-from-dateTime .fn:timezone-from-time . .fn:tokenize . . . . . .fn:translate . . . . . .fn:upper-case . . . . .fn:year-from-date . . . .fn:year-from-dateTime . .fn:years-from-duration . 222223223224225225227228228229229Avisos . . . . . . . . . . . . . . 231Información de interfaz de programación .Marcas registradas. . . . . . . . .Términos y condiciones . . . . . . . 233. 233. 233Índice. . . . . . . . . . . . . . . 235Contenidov

viIBM i: Programación SQL XML

Programación SQL XMLDB2 para IBM i proporciona soporte para almacenar y recuperar datos XML utilizando el lenguaje deconsulta estructurado (SQL). Los objetos definidos mediante SQL, como por ejemplo tablas, funciones yprocedimientos, pueden utilizar el tipo de datos XML para definiciones de columna, parámetro yvariable. Además de un tipo de datos XML, existen funciones incorporadas y procedimientos que puedeutilizarse para generar documentos XML y recuperar la totalidad o parte de un documento XML.Nota: Por el hecho de utilizar los ejemplos de código, acepta los términos de la “Información sobrelicencia de código y exención de responsabilidad” en la página 230.Novedades de IBM i 7.2Conozca la información nueva o que ha cambiado sustancialmente en el temario de programación SQLXML. La colección de temas de programación SQL XML es nueva. Incluye todas la información de XML queanteriormente se encontraba en el temario Programación SQL.Cómo ver las novedades o los cambios realizadosPara facilitar la visualización de los cambios técnicos realizados, el centro de información utiliza:v La imagen , que señala dónde empieza la información nueva o cambiada.v La imagenpara marcar el final de la información nueva o modificada.En los archivos PDF, puede ver barras de revisión ( ) en el margen izquierdo de la información nueva omodificada.Para obtener otra información acerca de los cambios y novedades de este release, consulte elMemorándum para los usuarios.Cómo leer los diagramas de sintaxisLos diagramas de sintaxis utilizados en este manual están sujetos a las normas siguientes.v Lea los diagramas de sintaxis de izquierda a derecha y de arriba abajo, siguiendo el recorrido de lalínea.El símbolo indica el principio del diagrama de sintaxis.El símbolo ---? indica que la sintaxis continúa en la línea siguiente.El símbolo indica que la sintaxis continúa de la línea anterior.El símbolo indica el final del diagrama de sintaxis.Los diagramas de unidades sintácticas empiezan con el símbolo y finalizan con el símbolo .v Los elementos obligatorios aparecen en la línea horizontal (la ruta principal). elemento obligatorio v Los elementos opcionales se muestran debajo de la ruta principal. elemento obligatorio elemento opcional Copyright IBM Corp. 2012, 20141

Si un elemento aparece encima de la ruta principal, ese elemento es opcional, no tiene ningún efectosobre la ejecución de la sentencia y se utiliza sólo a efectos de legibilidad.elemento opcional elemento obligatorio v Si puede elegirse más de un elemento, éstos aparecen verticalmente, en una pila.Si uno de los elementos debe elegirse, un elemento de la pila aparece en la ruta principal. elemento obligatorioopción obligatoriaopción obligatoria Si la elección de uno de los elementos es opcional, toda la pila aparece debajo de la línea principal. elemento obligatorio opción opcionalopción opcionalSi uno de los elementos es el valor predeterminado, aparecerá encima de la ruta principal y lasopciones restantes se mostrarán debajo.opción predeterminada elemento obligatorio opción opcionalopción opcionalSi un elemento opcional tiene un valor predeterminado cuando no se especifica, el valorpredeterminado aparece encima de la ruta principal. elemento obligatorio opción opcionalopción predeterminadaopción obligatoriaopción obligatoriaopción opcionalv Una flecha que vuelve a la izquierda, sobre la línea principal, indica un elemento que se puede repetir. elemento obligatorio elemento repetible Si la flecha de repetición contiene una coma, los elementos repetidos se deben separar mediante comas., elemento obligatorio elemento repetible Una flecha de repetición encima de una pila indica que los elementos de la pila se pueden repetir.v Las palabras clave aparecen en mayúsculas (por ejemplo FROM). Se deben escribir exactamente tal comose muestran. Las variables aparecen completamente en minúsculas (por ejemplo, nombre-columna).Representan nombres o valores suministrados por el usuario.v Si se muestran signos de puntuación, paréntesis, operadores aritméticos u otros símbolos de este tipo,debe especificarlos como parte de la sintaxis.2IBM i: Programación SQL XML

Archivo PDF de Programación SQL XMLPuede ver e imprimir un archivo PDF de esta información.Para ver o descargar la versión PDF de este documento, seleccione Programación SQL XML.Cómo guardar los archivos PDFPara guardar un PDF en la estación de trabajo con el fin de verlo o imprimirlo:1. En el navegador, pulse el enlace al PDF con el botón derecho del ratón.2. Pulse la opción que guarda el PDF localmente.3. Navegue hasta el directorio en el que desee guardar el PDF.4. Pulse Guardar.Cómo descargar Adobe ReaderPara poder ver o imprimir archivos PDF, debe instalar Adobe Reader en su sistema. Puede descargar unacopia gratuita desde el sitio Web de Adobe (http://get.adobe.com/reader/).Sentencias SQL y funciones SQL/XMLMuchas sentencias SQL admiten el tipo de datos XML. Esto permite realizar muchas operacionescomunes de base de datos con datos XML, como por ejemplo crear tablas con columnas XML, añadircolumnas XML a tablas existentes, crear desencadenantes en tablas con columnas XML e insertar,actualizar o suprimir documentos XML. Un conjunto de funciones, expresiones y especificaciones deSQL/XML soportadas por el servidor de bases de datos DB2 se beneficia plenamente del tipo de datosXML.Tipo de datos XMLEl tipo de datos XML puede almacenar un valor XML de hasta 2 GB. Puede especificarse un CCSID parael tipo de datos XML. Si no se especifica un CCSID, se utilizará el valor de la opción QAQQINISQL XML DATA CCSID. El valor predeterminado para esta opción es 1208 (UTF-8). El tipo de datosXML puede almacenar caracteres de un solo byte y Unicode de doble byte.Una sola fila de una tabla que contenga uno o más valores LOB o XML no puede superar los 3,5 GB. Eltipo de datos XML puede especificarse en una tabla particionada.Pueden declararse variables de lenguaje principal XML y localizadores de XML en programas deaplicación.Los localizadores de XML pueden utilizarse para hacer referencia a valores XML. Un valor XML puedecaptarse en un localizador de XML. Un localizador XML puede pasarse a un procedimiento o función. Ellocalizador puede especificarse como valor en una sentencia INSERT o UPDATE.Las entradas de diario para las columnas XML son iguales que para los LOB. Consulte "Diseño deentradas de diario de columnas LOB" en la colección de temas de programación SQL.Desarrollo de aplicacionesVarios lenguajes de programación y funciones y procedimientos externos y SQL suministran soporte parael desarrollo de aplicaciones:Programación SQL XML3

Soporte de lenguaje de programaciónEl soporte de desarrollo de aplicaciones de XML permite a las aplicaciones combinar XML yalmacenamiento y acceso a datos relacionales. Los siguientes lenguajes de programación dansoporte al tipo de datos XML para SQL:v ILE RPGv ILE COBOLv C o C (SQL incorporado o CLI de DB2)v Java (JDBC o SQLJ)Funciones y procedimientos externos y SQLLos datos XML pueden pasarse a procedimientos SQL y procedimientos externos mediante lainclusión de parámetros de tipo de datos XML en las signaturas de parámetro de CREATEPROCEDURE. También pueden pasarse datos XML a funciones externas y SQL mediante lainclusión de parámetros del tipo de datos XML en las signaturas de parámetro de CREATEFUNCTION. Las características de la rutina SQL existentes dan soporte a la implementación deun flujo de lógica de procedimientos alrededor de sentencias SQL, que genera o utiliza valoresXML así como almacenamiento temporal de valores de datos XML en variables.AdministraciónLas características de XML suministran un repositorio para la gestión de las dependencias de URI de losdocumentos XML:Repositorio de esquemas XML (XSR)El repositorio de esquemas XML (XSR) es un repositorio para todos los artefactos XML necesariospara procesar documentos de instancia XML almacenados en columnas XML. Almacenaesquemas XML referenciados en documentos XML. Puede utilizarse para validar o descomponerdocumentos de instancia XML.HerramientasIBM i Navigator incluye soporte para el tipo de datos XML.Descomposición de esquemas XML anotadosLas características de XML permiten almacenar y acceder a los datos XML como documentos XML. Puedehaber casos en los que sea necesario acceder a datos XML como datos relacionales. La descomposición deesquemas XML anotados descompone documentos en función de las anotaciones especificadas en unesquema XML.Visión general de la entrada y salida XMLEl servidor de bases de datos DB2, que gestiona los datos relacionales y XML, ofrece diversos métodospara la entrada y salida de documentos XML.Los documentos XML se almacenan en columnas definidas con el tipo de datos XML. Cada fila de unacolumna XML almacena un solo documento XML bien formado. El documento almacenado se mantieneen su formato de documento XML.Las columnas XML pueden definirse en tablas que contengan columnas de otros tipos, que contengandatos relacionales y pueden definirse varias columnas XML para una sola tabla.EntradaEl método que utilice para colocar datos XML en el sistema de bases de datos depende de la tarea quedesee realizar:4IBM i: Programación SQL XML

Insertar o actualizarLos documentos bien formados se insertan en columnas XML mediante la sentencia SQL INSERT.Un documento está bien formado cuando puede analizarse satisfactoriamente. La validación delos documentos XML durante una operación de inserción o actualización es opcional. Si seefectúa la validación, el esquema XML primero debe registrarse en el repositorio de esquemasXML (XSR). Los documentos se actualizan utilizando la sentencia SQL UPDATE.Descomposición de esquemas XML anotadosLos datos de los documentos XML pueden descomponerse o almacenarse en columnasrelacionales y XML utilizando la descomposición de esquemas XML anotados. La descomposiciónalmacena los datos en columnas de acuerdo con las anotaciones que se añaden a los documentosde esquema XML. Estas anotaciones correlacionan los datos de documentos XML con columnasde tablas.Los documentos de esquema XML referenciados por la función de descomposición se almacenanen el repositorio de esquemas XML (XSR).Registro en el repositorio de esquemas XML (XSR)El repositorio de esquemas XML (XSR) almacena esquemas XML que se utilizan para lavalidación o la descomposición de documentos XML. El registro de esquemas XML suele ser unrequisito previo para otras tareas realizadas en documentos XML que tienen una dependencia deestos esquemas. Los esquemas XML se registran en el XSR utilizando procedimientosalmacenados proporcionados por DB2.SalidaSe utiliza SQL para recuperar los datos XML del sistema de base de datos.Al consultar datos XML utilizando una fullselect de SQL, la consulta se realiza en el nivel de columna.Por esta razón, la consulta sólo puede devolver documentos XML completos. Puede utilizarse la funciónde tabla incorporada XMLTABLE para recuperar fragmentos de un documento XML en una consultaSQL.También están disponibles diversas funciones de publicación para construir valores XML a partir de datosrelacionales almacenados en un servidor de bases de datos DB2. Los valores XML construidos con estasfunciones de publicación no tienen que ser documentos XML bien formados.Comparación entre XML y los modelos relacionalesAl diseñar las bases de datos, debe decidir si los datos son más adecuados para el modelo XML o elmodelo relacional. Su diseño también puede aprovechar la naturaleza de una base de datos DB2: lacapacidad de dar soporte a datos tanto relacionales como XML en una única base de datos.Aunque esta descripción explica algunas de las principales diferencias entre los modelos y los factoresque se aplican a cada uno, existen diversos factores que pueden determinar la opción más adecuada parasu implementación. Utilice esta descripción como guía para evaluar los factores que pueden afectar a suimplementación específica.Principales diferencias entre datos XML y datos relacionalesLos datos XML son jerárquicos; los datos relacionales se representan en un modelo de relacioneslógicasUn documento XML contiene información sobre la relación de los elementos de datos entre sí enforma de jerarquía. En el modelo relacional, los únicos tipos de relaciones que pueden definirseson relaciones de tabla padre y tabla dependiente.Los datos XML son autodescriptivos; los datos relacionales, noUn documento XML contiene no sólo los datos, sino también la codificación de los datos queexplica lo que son. Un solo documento puede contener distintos tipos de datos. En el modeloProgramación SQL XML5

relacional, el contenido de los datos se define en su definición de columna. Todos los datos deuna columna deben tener el mismo tipo de datos.Los datos XML tienen un orden inherente; los datos relacionales, noEn un documento XML, se presupone que el orden en que se especifican los elementos de datoses el orden de los datos en el documento. Con frecuencia no hay ninguna otra manera deespecificar el orden dentro del documento. En los datos relacionales, el orden de las filas no estágarantizado a menos que se especifique una cláusula ORDER BY para una o más columnas deuna fullselect.Factores que influyen en la elección del modelo de datosEl tipo de datos que debe almacenar puede ayudarle a determinar cómo almacenarlos. Por ejemplo, si losdatos son naturalmente jerárquicos y autodescriptivos, puede almacenarlos como datos XML. Sinembargo, hay otros factores que pueden influir en su decisión acerca de qué modelo utilizar:Cuando se necesita la máxima flexibilidadLas tablas relacionales siguen un modelo bastante rígido. Por ejemplo, normalización de una tablaen muchas o la desnormalización de muchas tablas en una puede ser muy difícil. Si el diseño delos datos cambia a menudo, representarlos como datos XML es una mejor opción. Por ejemplo,los esquemas XML pueden evolucionar a lo largo del tiempo.Cuando se necesita el máximo rendimiento para la recuperación de datosLa serialización e interpretación de datos XML están sujetas a algunos costes. Si el rendimiento esmás importante que la flexibilidad, los datos relacionales podrían ser la mejor opción.Cuando los datos se procesan posteriormente como datos relacionalesSi el proceso posterior de los datos depende de que los datos estén almacenados en una base dedatos relacional, podría ser adecuado almacenar partes de los datos como relacionales, utilizandola descomposición. Un ejemplo de esta situación es cuando se aplica el proceso analítico en línea(OLAP) a los datos de un almacén de datos. Además, si es necesario otro proceso en eldocumento XML en conjunto, almacenar algunos de los datos como relacionales así comoalmacenar el documento XML completo podría ser un enfoque adecuado en este caso.Cuando los componentes de datos tienen un significado fuera de una jerarquíaLos datos pueden ser inherentemente jerárquicos en su naturaleza, pero los componentes hijo nonecesitan los padres para proporcionar valor. Por ejemplo, una orden de compra puede contenernúmeros de pieza. Las órdenes de compra con los números de pieza pueden representarse mejorcomo documentos XML. Sin embargo, cada número de pieza tiene asociada una descripción depieza. Es posible que sea mejor incluir las descripciones de pieza en una tabla relacional, porquela relación entre los números de pieza y las descripciones de pieza es lógicamente independientede las órdenes de compra en las que se utilizan los números de pieza.Cuando los atributos de datos se aplican a todos los datos, o sólo a un pequeño subconjunto de losdatos Algunos conjuntos de datos tienen un gran número de atributos posibles, pero sólo un pequeñonúmero de esos atributos se aplica a cualquier valor de datos concreto. Por ejemplo, en uncatálogo de venta, hay muchos atributos de datos posibles, como por ejemplo tamaño, color, peso,material, estilo, tejido, requisitos de alimentación o requisito

Ejercicio 1: Crear una tabla que puede almacenar datos XML .7 Ejercicio 2: Insertar documentos XML en columnas de tipo XML .7 Ejercicio 3: Actualizar documentos XML almacenados en una columna XML.8 Ejercicio 4: Validar documentos XML con respecto a esquemas XML .9 Ejercicio 5: Transformación con hojas de estilo