database xml basex

En este post, vamos a hablar de una herramienta de escritorio, multiplataforma, de software libre y que se llama BaseX. A día de hoy, una de las bases de datos XML nativas más potentes, capaz de competir con sistemas nativos comerciales. Cuenta con una implementación muy eficiente de XPath y XQuery y además un interfaz gráfico que facilita en gran medida el acceso visual a los datos almacenados. BaseX es una aplicación completamente gratuita, está desarrollada en Java y es realmente ligera y estable. Está desarrollada por el grupo de Bases de Datos y Sistemas de Información de la Universidad de Konstanz en Alemania.

Para entenderlo mejor indaguemos en qué son las bases de datos XML nativas.

Bases de datos XML nativas

Su modelo interno se basa en XML y su unidad de almacenamiento es el documento XML (para bases de datos relacionales recordemos que es la fila).

Las bases de datos XML nativas, son las que mejores prestaciones ofrecen trabajando con documentos XML. A diferencia de las bases de datos XML enabled, puede recuperarse el documento original, puesto que lo almacena sin alterarlo y además lo maneja dentro de proyectos, facilitando su gestión y uso.

Cuando los documentos son grandes o complejos, las bases de datos XML enabled suelen generar problemas, disponiendo de menor margen para la escalabilidad, siendo una mejor opción el uso de bases de datos nativas.

Estas bases de datos utilizan el modelo jerárquico del documento XML, identificando los nodos, comentarios, atributos, instrucciones, etc y permiténdonos navegar dentro de estos y realizar consultas y extrayendo resultados.

XQuery es un lenguaje de más bajo nivel que el estándar de SQL, y permite declarar variables o insertar estructuras de control de flujo, aunque no permite la modificación o update propia de las bases de datos relacionales, por el momento. Sin embargo su estructura de consulta es muy similar a la de las bases de datos que responden al modelo entidad – relación.

En entornos nativos XML, no se utiliza SQL (es por esto que son referidas como bases de datos noSQL), lenguajes como XQuery y Xpath estarían dentro de estas. Entre las ventajas de trabajar con bases de datos noSQL podemos destacar:

  • Permite trabajar con grandes volúmenes de datos estructurados, semiestructurados y no estructurados en constante cambio.
  • Las bases de datos XML no precisan necesariamente de un motor que lo soporte.
  • Es programación orientada a objetos flexible y relativamente sencilla de utilizar.
  • Arquitectura de escalado horizontal distribuida, en lugar de una arquitectura monolítica.
  • Destacan sus desarrollo ágiles, iteración rápida de los esquemas y generación frecuente de código.

Algunas bases de datos nativas XML son:

  • BaseX: Con licencia BSD.
  • MarkLogic: Con licencia propietaria.
  • sedna: Con licencia Apache.
  • eXist-db: Con licencia LGPL.

BaseX

Cobra especial atención el software BaseX. Un compacto y potente sistema de código abierto de base de datos XML con procesador XPath / XQuery, soporte completo para su actualización, cuenta con el respaldo del W3C (World Wide Web Consortium) y extensiones de texto completo. Su interfaz gráfica es interactiva y sin duda proporciona una gran comprensión de los documentos XML. Pertenece a la familia de las bases de datos XML nativas y está disponible tanto para Linux, Mac OS y Microsoft Windows.

Es una herramienta muy atractiva por su usabilidad, presentandose con una interfaz gráfica muy similar a la de las bases de datos relacionales.

Descarga BaseX:

BaseX es una base de datos nosql nativa, más en concreto una base de datos documental, no responde al modelo relacional y sirve para trabajar con ficheros XML, cuya estructura es generalmente jerárquica. Nos da soporte para la consulta dentro de la base de datos de un modo muy similar a como lo hace PHPmyAdmin o Workbench trabajando con una base de datos que responda al modelo relacional de Alfred Codd.
Descarga BaseX clicando en Get BaseX

Como ves, su interfaz es muy atractiva:

Interfaz de BaseX, una de las más fiables bases de datos XML nativas que existen

BaseX es una base de datos nosql, considerada una base de datos documental, no responde al modelo relacional, sirve para trabajar con ficheros XML, cuya estructura es generalmente jerárquica. Nos da soporte para la consulta dentro de la base de datos de un modo muy similar a como lo hace PHPmyAdmin o Workbench trabajando con una base de datos con lenguaje SQL, es decir con una base de datos relacional que responda al modelo de Alfred Codd.

BaseX utiliza una representación tabular de las estructuras de árbol para almacenar documentos XML. La base de datos actúa como un contenedor para un documento único o una colección de ellos. Además, ofrece varios tipos de índices para mejorar el rendimiento de las operaciones de trazado, comparaciones de atributos de texto y búsquedas de texto completo.

Con BaseX podemos crear bases de datos y tablas, importar y exportar datos, realizar consultas y copias de seguridad con facilidad, entre otras funcionalidades. Además es de gran utilidad en el soporte web.

Entre sus principales características se podría incluir:

  • Tiene una elevadísima capacidad de almacenamiento de bases de datos.
  • Proporciona un apoyo eficiente del W3C, XPath / WQuery con recomendaciones, texto completo y extensiones de actualización.
  • Conforma una de las mayores tasas de cumplimiento disponibles para todas las especificaciones compatibles.
  • Cuenta con un diseño cliente / servidor que apoya las transacciones seguras y la óptima gestión de los usuarios.
  • Aporta visualizaciones altamente interactivas, proporcionando un gran apoyo a los documentos XML de gran tamaño.
  • Permite buscar de forma sencilla, explorar y analizar datos, y evaluar expresiones XPath / XQuery en tiempo real.
  • Proporciona un editor con resaltado de sintaxis y marcación del error.

Bases de datos documentales

Una base de datos documental , es un tipo de BBDD NoSQL que orienta su funcionamiento a datos alojados en documentos. Estas bases de datos se utilizan para almacenar, recuperar y administrar datos semiestructurados.

Las bases de datos documentales almacenan cada uno de los registros y los datos asociados en un solo documento. Cada documento contiene datos semiestructurados que pueden ser consultados con diferentes herramientas de análisis. Estas bases de datos ofrecen mucha flexibilidad, escritura rápida, y consultas rápidas gracias a su gran capacidad de indexación. Entre las BBDD documentales más reconocidas encontramos: MongoDb, de 10gen, y CouchDB, de Apache. También destacan entre las Bases de datos NoSQL Rhinos, Ravendb, la mencionada BaseX, djondb, eXist, SimpleDB, de Amazon, IBM Lotus Domino y Terrastore.

A continuación voy a insertar un conjunto de ejercicios que se pueden realizar con BaseX, contiene su sintaxis y pantallazos de los ejercicios resueltos. Pincha a continuación para descargar:

Ejercicios prácticos con BaseX

Descarga el fichero .xml con los registros para realizar el ejercicio:

Registros para el ejercicio de BaseX

BaseX es relativamente sencillo de utilizar. Es muy estable y además de ser gratuito cuenta con una interfaz de usuario muy intuitiva. Es de enorme utilidad, por ejemplo en la elaboración de páginas web, ya que nos permite elaborar tabulaciones que se convierten en código HTML como podéis ver a continuación:

Soporte al desarrollo de sintaxis HTML con BaseX

BaseX es un recurso de software libre que no podemos dejar de conocer por su elevado grado de versatilidad a la hora de trabajar con documentos XML y por ser ligero, estable y compacto.

La gran ventaja

La gran ventaja del uso en los Sistemas de Información de BaseX y los ficheros XML, es que permiten su tratamiento aun careciendo de estructuras o que sean sólo semiestructuradas. Por ejemplo, no necesitamos que el nodo o el atributo país esté ubicado de la misma forma dentro de una base de datos. Es decir, no necesitaremos que esté en la misma columna (en terminos de bases de datos relacionales u objeto relacionales), será indiferente para procesarla. Esta enorme ventaja, disminuye el tratamiento que hay que dar a los datos antes de poder analizados y por otro lado facilita el análisis de datos ubicados en contenedores indexados y repositorios de contenidos, sin necesidad de que se ubiquen dentro del gestor.

BaseX es compatible con ficheros XML, HTML, JSON, CSV, TEXT, RAW.

Autor: ignacio

Profesor de Sistemas de Gestión de Información

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *