Una base de datos XML es un sistema de software de persistencia de datos que permite especificar y, en ocasiones, almacenar datos en formato XML . Estos datos se pueden consultar , transformar, exportar y devolver a un sistema que los llama. Las bases de datos XML son una variante de las bases de datos orientadas a documentos , que a su vez son una categoría de bases de datos NoSQL .
Fundamento del uso de XML en bases de datos
Existen varias razones para especificar datos directamente en XML u otros formatos de documentos como JSON . En el caso de XML en particular, se incluyen: [1] [2]
- Una empresa puede tener una gran cantidad de XML en un formato estándar existente
- Es posible que sea necesario exponer o ingerir los datos como XML, por lo que el uso de otro formato, como el relacional, obliga a un doble modelado de los datos.
- XML es muy adecuado para datos dispersos, datos profundamente anidados y contenido mixto (como texto con etiquetas de marcado integradas).
- XML es legible para humanos, mientras que las tablas relacionales requieren experiencia para acceder a ellas.
- Los metadatos suelen estar disponibles en formato XML
- Los datos de la web semántica están disponibles en formato RDF /XML
- Proporciona una solución para el desajuste de impedancia relacional de objetos [3]
Steve O'Connell ofrece una razón para el uso de XML en bases de datos: el uso cada vez más común de XML para el transporte de datos , lo que ha significado que "los datos se extraen de las bases de datos y se colocan en documentos XML y viceversa". [4] [ necesita actualización ] Puede resultar más eficiente (en términos de costos de conversión) y más fácil almacenar los datos en formato XML. En aplicaciones basadas en contenido, la capacidad de la base de datos XML nativa también minimiza la necesidad de extracción o entrada de metadatos para respaldar la búsqueda y la navegación.
Bases de datos compatibles con XML
Las bases de datos compatibles con XML generalmente ofrecen uno o más de los siguientes enfoques para almacenar XML dentro de la estructura relacional tradicional:
- XML se almacena en un CLOB ( objeto de carácter grande )
- El XML se "desmenuza" en una serie de tablas basadas en un esquema [5]
- XML se almacena en un tipo XML nativo según lo define la norma ISO 9075-14 [6]
Los RDBMS que admiten el tipo ISO XML son:
- IBM DB2 (XML puro [7] )
- Servidor SQL de Microsoft [8]
- Base de datos Oracle [9]
- PostgreSQL [10]
Por lo general, una base de datos compatible con XML es la más adecuada cuando la mayoría de los datos no son XML. Para los conjuntos de datos donde la mayoría de los datos son XML, una base de datos XML nativa es más adecuada.
Ejemplo de consulta de tipo XML en IBM DB2 SQL
seleccione id , vol , xmlquery ( '$j/name' , pasando la revista como "j" ) como nombre de revistas donde xmlexists ( '$j[licence="CreativeCommons"]' , pasando la revista como "j" )
Bases de datos XML nativas
Las bases de datos XML nativas están especialmente diseñadas para trabajar con datos XML. Dado que gestionar XML como cadenas de gran tamaño sería ineficiente y debido a la naturaleza jerárquica de XML, se utilizan estructuras de datos personalizadas y optimizadas para el almacenamiento y las consultas. Esto suele aumentar el rendimiento tanto en términos de consultas de solo lectura como de actualizaciones. [11] Los nodos y documentos XML son la unidad fundamental de almacenamiento (lógico), al igual que una base de datos relacional tiene campos y filas.
El estándar para consultar datos XML según la recomendación del W3C es XQuery ; la última versión es XQuery 3.1. [12] XQuery incluye XPath como sublenguaje y XML en sí mismo es una subsintaxis válida de XQuery. Además de XPath, algunas bases de datos XML admiten XSLT como método para transformar documentos o resultados de consultas recuperados de la base de datos.
Características del lenguaje
API compatibles
Conjuntos de datos XML centrados en datos
Para los conjuntos de datos XML centrados en datos, el método de búsqueda de palabras clave único y distinto, es decir, XDMA [13] para bases de datos XML, está diseñado y desarrollado con base en la indexación dual y la suma mutua.
Referencias
- ^ Nicola, Matthias (28 de septiembre de 2010). «5 razones para almacenar XML en una base de datos». Base de datos XML nativa . Consultado el 17 de marzo de 2015 .
- ^ Feldman, Damon (11 de abril de 2013). Pasando del modelado relacional a XML y modelos de datos MarkLogic. MarkLogic World . Consultado el 17 de marzo de 2015 .
- ^ [NoSQL Distilled: una breve guía para el mundo emergente de la persistencia políglota. Addison-Wesley Educational Publishers Inc, 2009] ISBN 978-0321826626
- ^ O'Connell, Steve (2005). Sección 9.2. Notas del curso de bases de datos avanzadas (programa de estudios). Southampton, Inglaterra: Universidad de Southampton .
- ^ "Almacenamiento y consulta de esquemas XML: básico". Guía del desarrollador de Oracle XML DB, 10 g , versión 2. Oracle Corporation. Agosto de 2005. Consultado el 17 de marzo de 2015 .. Sección Creación de tablas y columnas XMLType basadas en esquemas XML
- ^ "ISO/IEC 9075-14:2011: Tecnología de la información - Lenguajes de bases de datos - SQL - Parte 14: Especificaciones relacionadas con XML (SQL/XML)". Organización Internacional de Normalización . 2011 . Consultado el 17 de marzo de 2015 .
- ^ "Descripción general de pureXML: DB2 como base de datos XML". IBM Knowledge Center . IBM . Consultado el 17 de marzo de 2015 .
- ^ "Uso de XML en SQL Server". Microsoft Developer Network . Microsoft Corporation . Consultado el 17 de marzo de 2015 .
- ^ "Operaciones XMLType". Guía del desarrollador de Oracle XML DB, 10 g , versión 2. Oracle Corporation. Agosto de 2005. Consultado el 17 de marzo de 2015 .
- ^ "8.13. Tipo XML". Documentación de PostgreSQL 9.6 . Consultado el 1 de abril de 2017 .
- ^ Matthias, Nicola (22 de agosto de 2010). "XML versus rendimiento de bases de datos relacionales". Base de datos XML nativa . Consultado el 28 de junio de 2017 .
- ^ "Recomendación de XQuery 3.1". 21 de marzo de 2017.
- ^ Selvaganesan, S.; Haw, Su-Cheng; Soon, Lay-Ki (2014). "XDMA: Un algoritmo de búsqueda de palabras clave basado en suma mutua e indexación dual para bases de datos XML". Revista internacional de ingeniería de software e ingeniería del conocimiento . 24 (4): 591–615. doi :10.1142/s0218194014500223.
Enlaces externos
- Clasificación de DBMS XML nativos por popularidad, actualizada mensualmente, de DB-Engines
- Bases de datos XML - El caso de negocio, Charles Foster, junio de 2008 (enlace roto) - Habla sobre el estado actual de las bases de datos y la persistencia de datos, cómo el modelo actual de bases de datos relacionales está empezando a resquebrajarse y ofrece una idea de una alternativa sólida para los requisitos actuales.
- Una base de datos basada en XML de vías moleculares (2005-06-02) Comparaciones de velocidad y rendimiento de eXist, X-Hive, Sedna y Qizx/open
- Sistemas de bases de datos nativos XML: revisión de Sedna, Ozone, NeoCoreXMS 2006
- Almacenes de datos XML: prácticas emergentes
- Bhargava, P.; Rajamani, H.; Thaker, S.; Agarwal, A. (2005) Bases de datos relacionales habilitadas para XML , Texas, Universidad de Texas en Austin.
- Iniciativa para bases de datos XML
- XML y bases de datos, Ronald Bourret, septiembre de 2005
- El estado de las bases de datos XML nativas, Elliotte Rusty Harold, 13 de agosto de 2007