Almacenamento de información
Introdución
A información XML pode ser almacenada:
- directamente en ficheiros de texto
- nunha base de datos relacional (os datos deben ser transformados)
- nunha base de datos XML nativa
- nunha base de datos NoSQL
Para accesos concurrentes as bases de datos deben ser a opción a escollar polas ventaxas que facilitan, entre outros (recuperación de backups, ferramentas de adminsitración, etc.).
As bases de datos relacionais son máis maduras e frecuentes no mercado; mais para tratamento XML terán unha sobrecarga para traducir datos e queries para explotar esa información. Porén, imos profundizar nas posibilidades que ofrecen as bases de datos XML; e deixaremos para o último epígrafe o estudo dalgunhas bases de datos NoSQL para a explotación de información en formatos distintos a XML, coma JSON.
Bases de datos XML
Unha base de datos en XML permite o almacenamiento da información albergando datos no formato XML. Adoitan consistir en bases de datos de tipo documental e permiten que os datos en XML sexan organizados e exportados.
Son una alternativa as relacionais: as táboas cos seus campos son substituidos por por documentos XML cos seus elementos e atributos.
A principal función de usar XML nunha base de datos é proporcionar unha linguaxe estruturada máis sinxela de ler e de entender obtendo así ventaxas entre outros no momento de intercambiar información. Tamén se poden xerar ficheiros con con outras extensións para ser compartidos e que a información sexa máis fácil de ler, por exemplo documentos PDF.
Características das Bases de Datos XML
As bases de datos en XML teñen estas características:
- Empregan a linguaxe XML
- A información disponse de forma xerárquica
- Os datos incorporan etiquetas e marcaxes que os definen: explican qué é e qué significa cada conxunto de datos
- Os datos son presentados en orde: nun documento XML a orde na que aparecen os elementos é a orde dos datos, o cal non sucede nas bases de datos relacionais baseadas en rexistros e columnas.
Ventaxas e desventaxas das bases de datos creadas con XML
A creación de bases de datos en linguaxe XML ten certas ventaxas:
- Son fáciles de ler
- Os documentos XML son sinxelos de procesar
- É unha linguaxe que ten unha gran compatibilidade con SGML
- A linguaxe XML é sinxela de estruturar co que se poden diferenciar fácilmente as distintas partes dun documento
- Podense importar e exportar datos a outras aplicacións, programas e formatos.
- Existen analizadores que permiten corrixir erros de sintexe
- Podense actualizar os documentos simplemente engadindo novas etiquetas,
E tamén algunhas desventaxas:
- Son máis lentas e requiren que os datos estén comprimidos para funcionar máis rápidamente.
- As buscas son máis lentas que nunha base de datos relacional, xa que se deben organizar a través de texto e etiquetas.
- Existe certa limitación en canto aos xestores de bases de datos que poden utilizar linguaxe XML.
- Las bases de datos creadas con documentos XML no están preparadas para el almacenamiento de información a largo plazo.
Arquitectura das bases de datos XML
Dentro das bases de datos que utilizan XML existen dos grandes tipos:
- as bases de datos XML activadas
- as bases de datos XML nativas.
XML Base de datos activada (XML- enabled)
Trátase de bases de datos relacionales nas que a información almacénase en táboas: estas divídense en filas, que conteñen os rexistros, e en columnas, que conteñen os campos.
Permite obter os resultados ds consultas en formato XML, traballando dentro dese paradigma relacional.
Base de datos XML nativa (NXD)
Non posúe campos ni táboas, e o que se almacena son documentos XML. Porén frecuentemente son denominadas bases de datos centradas en documentos.
Estas bases de datos gardan e recuperan documentos do mesmo xeito que os faría un XML; e é preciso utilizar modelos capaces de construir expresións que poidan procesar un documento XML. O maís usado e Xpath (ainda que hai outros coma XML Infoset).
BaseX
baseX é un sistema xestor de bases de datos (SGBD) XML nativo co que é posible realizar consultas usando unha interfaz gráfica; así poderemos visualizar cómo está organizada a base de datos no referente a súa estrutura de etiquetas XML, e evaluaar expresións XPath/XQuery en tempo real .
Tratáse dunha contorna de sofware libre e gratuita independente da plataforma.
A súa descarga:
Unha vez instalado a contorna xa poderemos proceder a crear a base de datos e explotrar despois esa información.
eXistdb
eXist-db (ou eXist para abreviar) é un proxecto de software de código aberto para bases de datos NoSQL creado con tecnoloxía XML.
Clasifícase coma un sistema de base de datos orientado a documentos NoSQL e unha base de datos XML nativa con soporte para documentos XML, JSON, HTML e binarios. A diferencia da linguaxe SQL usada na mayoría deos sistemas de administración de bases de datos relacionais (RDBMS), eXist-db proporciona XQuery e XSLT coma as súas linguaxes de programación de consultas e aplicacións.
Podes consultar o proxecto eXist-db en github para máis información.
Bases de datos NoSQL
MongoDB
Cassandra
Apache CouchDB
Apache CouchDB, comúnmente chamada CouchDB, é un xestor de bases de datos de código aberto focalizada na facilidade do seu uso e en ser "unha base de datos que asume a web de xeito completo".
Trátase dunha base de datos NoSQL que emprega:
- JSON para almacenar os datos
- JavaScript como linguaxe de consulta por medio de MapReduce
- HTTP coma API.
Unha das súas características é a facilidade coa que permite facer replicacións.
A diferencia dunha base de datos relacional, CouchDB non almacena os datos e as súas relacións en táboas; pola contra cada base de datos é unha colección de documentos independentes. Cada documento mantén os seus propios datos e o seu esquema autocontido. Unha aplicación pode acceder a múltiples bases de datos, por exemplo unha residente no teléfono móvil do usuario e outra residente nun servidor. Os metadatos do documento conteñen información acerca da versión do mesmo permitindo refundir calesquera diferencias que poidan terse producido mentres as bases de datos estaban desconectadas.
