Base de datos documental

conjunto de programas que almacenan, recuperan y gestionan datos estructurados

Una base de datos documental está constituida por un conjunto de programas que almacenan, recuperan y gestionan datos de documentos o datos de algún modo estructurados. Este tipo de bases de datos constituyen una de las principales subcategorías dentro de las denominadas bases de datos NoSQL. A diferencia de las bases de datos relacionales, estas bases de datos están diseñadas alrededor de una noción abstracta de "Documento".

Los documentos

editar

El concepto central de una base de datos orientada a documentos es el concepto mismo de Documento. Mientras cada implementación de base de datos orientada a documentos difiere en los detalles, en general todas ellas comparten el principio de que los documentos encapsulan y codifican datos o información siguiendo algún formato estándar. Entre las codificaciones usadas en la actualidad se encuentran XML, YAML y JSON, así como formatos binarios como BSON.

Los documentos dentro de una base de datos orientada a documentos son similar, de algún modo, a registros, tuplas o filas en una base de datos relacional pero menos rígidos. No se les requiere ajustarse a un esquema estándar ni tener todos las mismas secciones, atributos, claves o cosas por el estilo. Por ejemplo un documento puede ser:

 {
    Nombre:Miguel Ignacio Barboteo Piñero
    Dirección:Málaga
    Profesión:"Bancario"
 }

Mientras que otro:

 {
     Nombre:Miguel Ignacio Barboteo Piñero
     Dirección:Málaga
     Hijos:[
        {Nombre:"Iñaki"},
        {Nombre:"Nando"},
        {Nombre:"Maria"},
    Esposa:[
        {Nombre:"Maria Begoña"},

Estos documentos contienen alguna información similar y otra diferente. Al contrario que una base de datos relacional en la que todos los registros deben tener los mismos atributos -que pueden quedar vacíos- , en un documento no quedan 'campos' vacíos. De este modo es posible añadir nueva información sin necesidad de establecer qué información queda excluida.

Claves

editar

Se direccionan los documentos mediante una clave única que identifica el documento. Generalmente esta clave se compone de una simple cadena. En algunos casos puede tratarse de un URI o un camino, que sirve para rescatar el documento de la base de datos. Generalmente la base de datos mantiene un índice de dichas claves, por lo que la recuperación es rápida.

Recuperación

editar

Otra de las características que definen una base de datos orientada a documentos es que, más allá de la sencilla correspondencia clave-documento (o clave-valor) usada para recuperar un documento, la base de datos ofrece un API o un lenguaje de interrogación para recuperar documentos según su contenido. Por ejemplo, para preguntar por todos los documentos que tienen un valor dado en un campo. El conjunto de características del API o del lenguaje de interrogación, así como lo que se obtiene, varía significativamente entre distintas implementaciones.

Organización

editar

Las distintas implementaciones de bases de datos documentales que podemos organizan los documentos de muy distintas formas, entre las que se encuentran:

  • Colecciones
  • Etiquetas
  • Metadatos ocultos
  • Jerarquías de directorios

Implementaciones

editar
Nombre Editor Licencia Lenguaje Notas API RESTful
BaseX BaseX Team BSD Java, XQuery Soporta XML, JSON y formatos binarios; arquitectura cliente-servidor; búsquedas de texto completo concurrentes.
ArangoDB triAGENS Apache 2 C, C++ & Javascript Almacén de documentos y presentación gráfica. [1]
Clusterpoint Clusterpoint Ltd. Libre/Comercial[2] C++ Base de datos documental sin esquema, búsqueda de texto completo, ordenación por relevancia y funcionamiento en Cluster.
Couchbase Server Couchbase, Inc. Apache Erlang y C Base de datos NoSQL distribuida documental. [3]
CouchDB Apache Software Foundation Apache Erlang JSON sobre REST/HTTP con propiedades ACID mediante multiversion concurrency control limitadas. Usa map y reduce para las vistas e interrogaciones.[4] [5]
eXist eXist, [2] GPL XQuery, Java XML sobre REST/HTTP, WebDAV, búsqueda de texto completo con Lucene, validación, versionado, clustering, triggers, reescritura de URLs, colecciones, ACLs, XQuery Update [6]
FleetDB FleetDB MIT Clojure Una base de datos basada en JSON sin esquema, optimizada para desarrollo Agile. (desconocido)
Jackrabbit Apache Software Foundation Apache Java (desconocido)
Lotus Notes IBM Proprietaria LotusScript, Java, Lotus @Formula (desconocido)
MarkLogic MarkLogic Corporation Libre o comercial REST, Java, XQuery, XSLT, C++ Base de datos documental distribuida con multiversion concurrency control, búsqueda de texto completo y transacciones ACID.
MongoDB MongoDB, Inc GNU AGPL v3.0[7] C++ Base de datos documental optimizada para contenido muy transitorio Opcional[8]
MUMPS[9] Proprietaria y GNU Affero GPL[10] MUMPS Muy usada en aplicaciones médicas. (desconocido)
OrientDB Orient Technologies Archivado el 20 de abril de 2012 en Wayback Machine. Apache Java JSON sobre HTTP
Redis BSD License ANSI C Almacén clave-valor con soporte de listas y conjuntos (desconocido)
Rocket U2 Rocket Software Proprietaria UniData, UniVerse Sí (Beta)
RavenDB Hibernating Rhinos GNU AGPL v3.0[11][12]​ o Commercial C# JSON sobre HTTP
Knosys Micronet, S.A. Propietaria C++, Java, C# Base de datos documental con control de flujos de trabajo Si


Bases de datos XML

editar

La mayoría de las bases de datos XML están orientadas a documentos.

Véase también

editar

Referencias

editar
  1. «ArangoDB REST API». Archivado desde el original el 4 de julio de 2014. Consultado el 4 de marzo de 2013. 
  2. Clusterpoint DBMS Licensing Options
  3. «Copia archivada». Archivado desde el original el 20 de agosto de 2012. Consultado el 21 de agosto de 2012. 
  4. CouchDB Overview Archivado el 20 de octubre de 2011 en Wayback Machine.
  5. «CouchDB Document API». Archivado desde el original el 1 de marzo de 2013. Consultado el 4 de marzo de 2013. 
  6. [1]
  7. Licencia MongoDB
  8. «Interfaces MongoDB REST». Archivado desde el original el 29 de enero de 2013. Consultado el 4 de marzo de 2013. 
  9. «Extreme Database programming with MUMPS Globals». Archivado desde el original el 6 de julio de 2016. Consultado el 4 de marzo de 2013. 
  10. GTM MUMPS FOSS on SourceForge
  11. «NoSQL Document Database - Embedding RavenDB into an ASP.NET MVC 3 Application». docs.microsoft.com. 2011. Consultado el 4 de enero de 2021. 
  12. RavenDB OSS license Archivado el 14 de mayo de 2010 en Wayback Machine.