Ir al contenido

Base de datos XML

De Wikipedia, la enciclopedia libre

Esta es una versión antigua de esta página, editada a las 22:00 14 mar 2013 por Juvalen (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.

Una base de datos XML es un sistema software que da persistencia a datos almacenados en formato XML. Estos datos pueden ser interrogados, exportados y serializados. Las bases de datos XML están generalmente asociadas con las bases de datos documentales.

Existen dos grandes clases de bases de datos XML:[1]

  1. XML habilitado: éstas bien pueden mapear XML en estructuras tradicionales de bases de datos (como las relacionales[2]​), aceptando XML como entrada y formateando en XML la salida, o más recientemente soportando tipos XML nativos en la propia base de datos. Esto implica que la base de datos procesa el XML internamente (lo opuesto a soportarlo mediante middleware).
  2. XML nativo (NXD): el modelo interno de estas bases de datos usa documentos XML como la unidad elemental de almacenamiento, los cuales no han de almacenarse necesariamente en formato de texto.

Lógica del uso de XML en bases de datos

O'Connell da una razón para el uso de XML en bases de datos: el generalizado aumento del transporte de datos en formato XML, lo que significa que "los datos se extraen de bases de datos y convertidos a XML o viceversa"[3]​. Resultaría más eficiente (en términos de costes de conversión) y fácil almacenar los datos en formato XML directamente.

Bases de datos habilitadas XML

Típicamente ofrecen alguna de las siguientes aproximaciones para almacenar XML en la estructura relacional clásica:

  1. El XML se almacena en un campo CLOB (Character large object)
  2. El XML se desgaja en una serie de tablas según un esquema[4]
  3. El XML se almacena de forma nativa como tipo XML según define ISO[5]

Entre los SGBD que soportan ISO XML están:

  • IBM DB2 (XML puro[6]​)
  • Microsoft SQL Server [7]
  • Oracle Database [8]
  • PostgreSQL [9]

Típicamente una base de datos habilitada XML se adapta mejor allí donde la mayoría de los datos no están en XML, para aquellos datos en los que la mayoría están en XML, una base de datos nativa XML se adaptará mejor.

Ejemplo de interrogación XML en IBM DB2 SQL

select
   id, vol, xmlquery('$j/name', passing journal as "j") as name
from
   journals
where 
   xmlexists('$j[publisher="Elsevier"]', passing journal as "j")

Bases de datos nativas XML

El término "base de datos nativa XML" (NXD) puede llevar a confusión. Muchas NXDs no funcionan como bases de datos independientes, y no almacenan el texto nativo en XML.

La definición formal de la iniciativa XML:DB (que parece inactiva desde 2003[10]​) afirma quee:

  • Define un modelo (lógico) para un documento XML —contrapuesto a los datos en ese documento— y almacena y recupera documentos según ese modelo. Como mínimo el modelo debe incluir elementos, atributos, PCDATA y orden de los documentos. Ejemplos de estos modelos incluyen el modelo de datos XPath, XML Infoset y los que implica el DOM y los eventos en SAX 1.0.
  • Has an XML document as its fundamental unit of (logical) storage, just as a relational database has a row in a table as its fundamental unit of (logical) storage.
  • Need not have any particular underlying physical storage model. For example, NXDs can use relational, hierarchical, or object-oriented database structures, or use a proprietary storage format (such as indexed, compressed files).

Referencias

  1. Bourret, Ronald (20 de junio de 2010). «XML Database Products». Consultado el 16 de diciembre de 2011. 
  2. Mustafa Atay and Shiyong Lu, “Storing and Querying XML: An Efficient Approach Using Relational Databases”, ISBN 3-639-11581-3, VDM Verlag, 2009.
  3. O'Connell, S. Advanced Databases Course Notes, Southampton, University of Southampton, 2005, 9.2
  4. Creating XMLType Tables and Columns Based on XML Schema
  5. ISO/IEC 9075-14:2011
  6. IBM DB2 pureXML overview -- DB2 as an XML database
  7. Using XML in SQL Server
  8. XMLType Operations
  9. PostgreSQL - Data Types - XML Type
  10. «Frequently Asked Questions About XML:DB». The XML:DB Initiative. Sourceforge. 2003. Consultado el 16 December 2011.