Contenido verificado asociado a este RA
Métodos de Almacenamiento de Documentos XML: Análisis y Criterios de Selección
Esta unidad identifica y compara los principales métodos para almacenar documentos XML (sistema de ficheros, bases de datos relacionales, bases de datos nativas XML y bases de datos NoSQL), analizando sus ventajas e inconvenientes técnicos. Se complementa con una reflexión sobre los inconvenientes generales de almacenar XML y con criterios prácticos para elegir la tecnología más adecuada según el contexto profesional, cerrando con un caso práctico que el alumno debe resolver.
Integración de XML con Bases de Datos Relacionales
Esta unidad detalla cómo utilizar sistemas gestores de bases de datos relacionales para almacenar y recuperar información en formato XML, explorando técnicas de mapeo y funciones SQL/XML para la generación de documentos XML a partir de datos relacionales.
Bases de Datos Nativas XML: Características, Instalación y Gestión
Esta unidad profundiza en las bases de datos nativas XML, sus características distintivas, el proceso de instalación de un SGBD nativo XML y las técnicas para gestionar eficientemente la información almacenada en ellas.
Lenguajes y Herramientas para el Tratamiento y Almacenamiento de Información XML
Esta unidad identifica los lenguajes y herramientas clave para el tratamiento, consulta y almacenamiento de información XML, incluyendo XPath, XQuery, XSLT y APIs de procesamiento, destacando su aplicación en la gestión de documentos XML.
Conceptos clave
XMLDatos semiestructuradosSistema de ficherosRDBMSCLOB/BLOBShreddingBase de datos nativa XMLXPath/XQueryNoSQL orientada a documentosTransacciones ACIDEscalabilidadCLOBBLOBSQL/XMLXMLELEMENTXMLATTRIBUTESFOR XML PATHXMLTABLE
Errores que conviene evitar
- **Error:** Almacenar todos los XML como CLOB en una RDBMS sin analizar las necesidades de consulta.
**Causa:** Simplicidad inicial y desconocimiento del coste de parsear el CLOB en cada consulta.
**Corrección:** Evaluar frecuencia y complejidad de las consultas internas; si son habituales y complejas, valorar 'shredding' o una base de datos nativa XML.
- **Error:** Usar el sistema de ficheros para documentos XML que requieren acceso concurrente y transaccional.
**Causa:** Subestimar la importancia del control de concurrencia y la integridad de datos.
**Corrección:** Para datos críticos o compartidos por varios usuarios, usar una solución de base de datos con mecanismos ACID.
- **Error:** Asumir que una base de datos NoSQL 'almacena XML' de forma nativa igual que una base nativa XML.
**Causa:** Confundir flexibilidad de esquema con soporte nativo del formato XML.
**Corrección:** Recordar que en NoSQL documental el XML normalmente se transforma antes a JSON/BSON o se guarda como texto plano, perdiendo el soporte directo de XPath/XQuery.
- **Error:** Intentar almacenar XML muy grandes como CLOBs sin considerar el impacto en la memoria y el rendimiento de la base de datos.
**Causa:** No dimensionar correctamente los recursos del SGBD o la aplicación.
**Corrección:** Para XML extremadamente grandes, evaluar si es mejor almacenarlos en un sistema de ficheros y guardar solo la ruta en la RDBMS, o usar una base de datos nativa XML.
- **Error:** No escapar correctamente los caracteres especiales (como '<', '>', '&') al generar XML manualmente desde SQL o la aplicación.
**Causa:** Olvido de las reglas de sintaxis XML.
**Corrección:** Siempre usar las funciones SQL/XML o librerías de parsing XML que manejan automáticamente el escape de caracteres.
- **Error:** No crear índices en las rutas XPath más consultadas en una NXDB.
**Causa:** Desconocimiento del impacto de la indexación en el rendimiento de XQuery.
**Corrección:** Analizar los patrones de consulta y definir índices adecuados para las rutas y valores que se usan frecuentemente en los predicados de XQuery.
- **Error:** Intentar usar SQL para consultar una base de datos nativa XML.
**Causa:** Confusión entre modelos de datos relacionales y XML.
**Corrección:** Las NXDB se consultan con XQuery y XPath, que están diseñados para su modelo jerárquico. SQL no es aplicable directamente.
- **Error:** Intentar usar XPath para transformar documentos XML.
**Causa:** Confundir la función de selección de XPath con la de transformación de XSLT.
**Corrección:** XPath es para seleccionar nodos; XSLT es para transformar documentos utilizando XPath para la selección.