Una base de datos XML es un sistema de software de persistencia de datos que permite especificar los datos y, a veces, almacenarlos en formato XML . Estos datos se pueden consultar , transformar, exportar y devolver a un sistema de llamadas. Las bases de datos XML son una variedad de bases de datos orientadas a documentos que, a su vez, son una categoría de base de datos NoSQL .
Justificación de XML en bases de datos
Hay varias razones para especificar datos directamente en XML u otros formatos de documentos como JSON . Para XML en particular, incluyen: [1] [2]
- Una empresa puede tener una gran cantidad de XML en un formato estándar existente
- Es posible que los datos deban exponerse o ingerirse como XML, por lo que el uso de otro formato, como las fuerzas relacionales, obliga al doble modelado de los datos.
- XML es muy adecuado para datos escasos, datos profundamente anidados y contenido mixto (como texto con etiquetas de marcado incrustadas)
- XML es legible por humanos, mientras que las tablas relacionales requieren experiencia para acceder
- Los metadatos suelen estar disponibles como XML
- Los datos de la web semántica están disponibles como RDF / XML
- Proporciona una solución para la falta de coincidencia de impedancia relacional entre objetos [3]
Steve O'Connell da 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 , 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 de almacenar los datos en formato XML. En las aplicaciones basadas en contenido, la capacidad de la base de datos XML nativa también minimiza la necesidad de extraer o ingresar metadatos para respaldar la búsqueda y la navegación.
Bases de datos habilitadas para XML
Las bases de datos habilitadas para XML suelen ofrecer uno o más de los siguientes enfoques para almacenar XML dentro de la estructura relacional tradicional:
- XML se almacena en un CLOB ( objeto grande de caracteres )
- XML se "tritura" en una serie de tablas basadas en un esquema [5]
- XML se almacena en un tipo XML nativo según lo definido por la norma ISO 9075-14 [6]
Los RDBMS que admiten el tipo XML ISO son:
Normalmente, una base de datos habilitada para XML es más adecuada cuando la mayoría de los datos no son XML. Para 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 revista como "j" ) como nombre de revistas donde xmlexists ( '$ j [licencia = "CreativeCommons"]' , pasando 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 la gestión de XML como cadenas de gran tamaño sería ineficaz y, debido a la naturaleza jerárquica de XML, se utilizan estructuras de datos optimizadas personalizadas para el almacenamiento y las consultas. Esto generalmente aumenta el rendimiento tanto en términos de consultas como de actualizaciones de solo lectura. [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 de W3C es XQuery ; la última versión es XQuery 3.1. [12] XQuery incluye XPath como sub-lenguaje y XML en sí mismo es una sub-sintaxis 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 idioma
Nombre | Licencia | Lengua materna | XQuery 3.1 | XQuery 3.0 | XQuery 1.0 | Actualización de XQuery | Texto completo de XQuery | Extensiones EXPath | Extensiones EXQuery | XSLT 2.0 | XForms 1.1 | XProc 1.0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
BaseX | BSD | Java | sí | sí | sí | sí | sí | sí | sí | sí | sí | No |
existe | GNU LGPL | Java | Parcial | Parcial | sí | Propiedad | Propiedad | sí | sí | sí | sí | sí |
Servidor MarkLogic | Comercial | C ++ | No | Parcial | sí | Propiedad | Propiedad | No | No | sí | sí | No |
OpenText xDB | Comercial | Java | Parcial | Parcial | sí | sí | sí | No | No | No | No | No |
XML de Oracle Berkeley DB | Comercial | |||||||||||
Qizx | Comercial | Java | No | No | sí | sí | sí | No | No | sí | No | No |
Sedna | Licencia Apache 2.0 |
API compatibles
Nombre | XQJ | XML: DB | Sosegado | RESTXQ | WebDAV |
---|---|---|---|---|---|
BaseX | sí | sí | sí | sí | sí |
existe | sí | sí | sí | sí | sí |
Servidor MarkLogic | sí | No | sí | sí | sí |
Qizx | No | No | sí | No | No |
Sedna | sí | sí | No | No | No |
Conjuntos de datos XML centrados en datos
Para conjuntos de datos XML centrados en datos, el método de búsqueda de palabras clave único y distinto, a saber, XDMA [13] para bases de datos XML, está diseñado y desarrollado en base a 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). Pasar del modelado relacional a modelos de datos XML y MarkLogic . MarkLogic World . Consultado el 17 de marzo de 2015 .
- ^ [NoSQL destilado: 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 (plan de estudios). Southampton, Inglaterra: Universidad de Southampton .
- ^ "Consulta y almacenamiento de esquemas XML: básico" . Guía del desarrollador de Oracle XML DB, versión 10 g 2 . Oracle Corporation. Agosto de 2005 . Consultado el 17 de marzo de 2015 .. Sección Creación de tablas y columnas XMLType basadas en el esquema 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 .
- ^ "Visión general de pureXML - DB2 como base de datos XML" . Centro de conocimiento de IBM . IBM . Consultado el 17 de marzo de 2015 .
- ^ "Usando XML en SQL Server" . Red de desarrolladores de Microsoft . Microsoft Corporation . Consultado el 17 de marzo de 2015 .
- ^ "Operaciones XMLType" . Guía del desarrollador de Oracle XML DB, versión 10 g 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 XQuery 3.1" . 2017-03-21.
- ^ Selvaganesan, S .; Haw, Su-Cheng; Pronto, Lay-Ki (2014). "XDMA: un algoritmo de búsqueda de palabras clave basado en doble indexación y suma mutua 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
- Ranking de DBMS XML nativo por popularidad, actualizado mensualmente, de DB-Engines
- Bases de datos XML - The Business Case, Charles Foster, junio de 2008 - Habla sobre el estado actual de las bases de datos y la persistencia de los datos, cómo el modelo actual de bases de datos relacionales está comenzando a romperse y da una idea de una alternativa sólida para los requisitos actuales.
- Una base de datos de vías moleculares basada en XML (2005-06-02) Comparaciones de velocidad / 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