Articulo de referencia

Base de datos orientada a documentos

Una base de datos orientada a documentos , o almacén de documentos , es un programa informático y un sistema de almacenamiento de datos diseñado para almacenar, recuperar y gest...

Una base de datos orientada a documentos , o almacén de documentos , es un programa informático y un sistema de almacenamiento de datos diseñado para almacenar, recuperar y gestionar información orientada a documentos, también conocida como datos semiestructurados . [ 1 ]

Las bases de datos orientadas a documentos son una de las principales categorías de bases de datos NoSQL , y la popularidad del término "base de datos orientada a documentos" ha crecido a la par de la adopción de NoSQL. Las bases de datos XML son una subclase de las bases de datos orientadas a documentos, optimizadas para documentos XML . Las bases de datos de grafos son similares, pero añaden una capa adicional, la relación , que les permite vincular documentos para una navegación rápida.

Las bases de datos orientadas a documentos son conceptualmente una extensión del almacén clave-valor , otro tipo de base de datos NoSQL. En los almacenes clave-valor, la base de datos trata los datos como opacos, mientras que los sistemas orientados a documentos explotan la estructura interna de los documentos para extraer metadatos y optimizar el almacenamiento y las consultas. [ 2 ] Aunque en la práctica la distinción puede ser mínima debido a las herramientas modernas, los almacenes de documentos están diseñados para proporcionar una experiencia de programación más completa con técnicas de programación modernas. [ Notas 1 ]

Las bases de datos documentales difieren significativamente de las bases de datos relacionales tradicionales (RDB). [ Nota 2 ] Las bases de datos relacionales almacenan datos en tablas predefinidas, lo que a menudo requiere que un objeto se divida entre varias tablas. En cambio, las bases de datos documentales almacenan toda la información de un objeto determinado en un único documento, y cada documento puede tener una estructura única. Este diseño elimina la necesidad de mapeo objeto-relacional al cargar datos en la base de datos. [ 3 ]

Documentos

El concepto central de una base de datos orientada a documentos es la noción de documento . Aunque las implementaciones varían en sus definiciones específicas, las bases de datos orientadas a documentos generalmente tratan los documentos como unidades autocontenidas que encapsulan y codifican datos en un formato estandarizado. [ 2 ] [ 3 ] Los formatos de codificación comunes incluyen XML , YAML , JSON , así como representaciones binarias como BSON . [ 4 ]

Los documentos en un repositorio de documentos son equivalentes al concepto de objeto en programación. No es necesario que se ajusten a un esquema fijo, y los documentos dentro de la misma colección pueden contener diferentes campos o estructuras. Los campos pueden ser opcionales, y los documentos del mismo tipo lógico pueden diferir en su composición. Por ejemplo, el siguiente ejemplo ilustra un documento codificado en JSON:

{"firstName" : "Bob" ,"apellido" : "Smith" ,"DIRECCIÓN" : {"tipo" : "Inicio" ,"calle1" : "5 Oak St." ,"ciudad" : "Chicos" ,"estado" : "AR" ,"zip" : "32225" ,"país" : "EE. UU."},"hobby" : "navegación ""teléfono" : {"tipo" : "Celda" ,"número" : "(555)-123-4567"}}

Un segundo documento podría codificarse en XML de la siguiente manera:

<contacto> <nombre> Bob </nombre> <apellido> Smith </apellido> <teléfono tipo= "Celular" > (123) 555-0178 </teléfono> <teléfono tipo= "Trabajo" > (890) 555-0133 </teléfono> <dirección> <tipo> Casa </tipo> <calle1> 123 Back St. </calle1> <ciudad> Boys </ciudad> <estado> AR </estado> <código postal> 32225 </ código postal> <país> EE. UU. </país> </ dirección> </contacto>

Los dos documentos de ejemplo comparten algunos elementos estructurales, pero también contienen campos únicos. La estructura, el texto y otros datos de cada documento se denominan colectivamente contenido del documento y se puede acceder a ellos o modificarlos mediante operaciones de recuperación o edición. A diferencia de las bases de datos relacionales, en las que cada registro contiene los mismos campos y los campos no utilizados se dejan vacíos, las bases de datos orientadas a documentos no requieren campos uniformes en todos los documentos. Este diseño permite añadir nueva información a algunos documentos sin afectar la estructura de los demás.

Las bases de datos de documentos suelen admitir el almacenamiento de metadatos adicionales junto con el contenido del documento. Dichos metadatos pueden estar relacionados con características organizativas, seguridad, indexación u otras características específicas de la implementación. [ 3 ]

Operaciones CRUD

Las operaciones básicas que admite una base de datos orientada a documentos para manipular documentos son similares a las de otras bases de datos. Aunque la terminología no está perfectamente estandarizada, estas operaciones se reconocen generalmente como Crear, Leer, Actualizar y Eliminar ( CRUD ). [ 3 ] [ 4 ]

  • Creación (C): Agrega un nuevo documento a la base de datos.
  • Recuperación (R): Recupera documentos o campos en función de consultas.
  • Actualizar (U): Modifica el contenido de los documentos existentes.
  • Eliminación (D): Elimina documentos de la base de datos.

Llaves

En una base de datos orientada a documentos, los documentos se identifican mediante un identificador único . Este identificador, que suele ser una cadena de caracteres , una URI o una ruta , permite recuperar el documento de la base de datos. La mayoría de los sistemas de almacenamiento de documentos mantienen un índice de la clave para optimizar la recuperación, y en algunas implementaciones, la clave es necesaria al crear o insertar un nuevo documento. [ 3 ] [ 4 ]

Recuperación

Además del acceso mediante claves, las bases de datos orientadas a documentos suelen ofrecer una API o un lenguaje de consulta que permite la recuperación de información en función del contenido del documento o de sus metadatos asociados. Por ejemplo, una consulta puede devolver todos los documentos cuyo campo específico coincida con un valor determinado. Las funcionalidades de consulta, las opciones de indexación y las características de rendimiento varían según la implementación.

Las bases de datos de documentos se diferencian de las bases de datos clave-valor en que aprovechan la estructura interna y los metadatos de los documentos almacenados. En muchas bases de datos clave-valor, los valores se tratan como datos opacos o de "caja negra", lo que significa que el sistema de base de datos no interpreta su estructura interna. Por el contrario, las bases de datos orientadas a documentos pueden clasificar e interpretar el contenido de los documentos. Esto permite realizar consultas que distinguen entre tipos de datos; por ejemplo, recuperar todos los números de teléfono que contienen "555" sin que coincidan también con un código postal como "55555". [ 3 ] [ 4 ]

Edición

Las bases de datos de documentos suelen proporcionar mecanismos para actualizar o editar el contenido o los metadatos de un documento. Las actualizaciones pueden implicar la sustitución del documento completo o la modificación de elementos o campos individuales dentro del documento. [ 4 ]

Organización

Las implementaciones de bases de datos de documentos admiten una variedad de métodos para organizar documentos, entre los que se incluyen:

  • Colecciones: Grupos de documentos. Dependiendo de la implementación, un documento puede requerir pertenecer a una sola colección o puede permitirse que pertenezca a varias colecciones. [ 4 ]
  • Etiquetas y metadatos no visibles: Datos adicionales almacenados fuera del contenido principal del documento.
  • Jerarquías de directorios: Documentos organizados en una estructura similar a un árbol, a menudo basada en una ruta o URI.

Estas estructuras organizativas pueden diferir entre las representaciones lógicas y físicas (por ejemplo, en disco o en memoria).

Relación con otras bases de datos

Relación con los almacenes de clave-valor

Una base de datos orientada a documentos puede considerarse una forma especializada de almacén clave-valor , que a su vez es una categoría de base de datos NoSQL. En un almacén clave-valor básico, el sistema de base de datos suele tratar el valor almacenado como opaco. Por el contrario, una base de datos orientada a documentos proporciona API o un lenguaje de consulta y actualización que permite realizar consultas y modificaciones basadas en la estructura interna del documento. Para los usuarios que no requieren capacidades avanzadas de consulta, recuperación o actualización, la distinción entre bases de datos orientadas a documentos y almacenes clave-valor puede ser mínima. [ 2 ]

Relación con los motores de búsqueda

Algunos sistemas de búsqueda y recuperación de información , como Apache Solr y Elasticsearch , ofrecen almacenamiento de documentos y admiten operaciones básicas relacionadas con ellos. Por lo tanto, pueden cumplir con ciertas definiciones funcionales de una base de datos orientada a documentos, aunque sus objetivos de diseño principales difieren.

Relación con las bases de datos relacionales

En una base de datos relacional, los datos se organizan en tipos predefinidos representados como tablas. Cada tabla contiene filas (registros) con un conjunto fijo de columnas (campos), por lo que todos los registros de una tabla comparten la misma estructura. Los administradores suelen definir índices en campos seleccionados para mejorar el rendimiento de las consultas. Un principio fundamental del diseño de bases de datos relacionales es la normalización de la base de datos , en la que los datos que de otro modo podrían repetirse se almacenan en tablas separadas y se vinculan mediante claves. [ 5 ] Cuando se relacionan registros de diferentes tablas, se utiliza una clave externa para asociarlos.

Por ejemplo, una aplicación de agenda de contactos puede almacenar el nombre, la imagen, los números de teléfono, las direcciones postales y las direcciones de correo electrónico de un contacto. En un diseño relacional normalizado, se podrían crear tablas separadas para contactos, números de teléfono y direcciones de correo electrónico. La tabla de números de teléfono incluiría una clave externa que hace referencia al contacto asociado. Para reconstruir un registro de contacto completo, la base de datos recupera la información relacionada de cada tabla mediante las claves externas y la combina en un único registro.

En cambio, una base de datos orientada a documentos almacena todos los datos relacionados con un objeto en un único documento, y se guarda en la base de datos como una sola entrada. En el ejemplo de la agenda de contactos, el nombre, la imagen y la información de contacto del contacto pueden almacenarse juntos en un documento. El documento se recupera mediante una clave única y toda la información relacionada se devuelve de forma conjunta, sin necesidad de consultar varias tablas. [ 3 ]

Una diferencia clave entre los modelos orientados a documentos y relacionales es que los formatos de datos no están predefinidos en el caso de los documentos. En la mayoría de los casos, cualquier tipo de documento puede almacenarse en una base de datos, y los documentos pueden cambiar de tipo y formato con el tiempo. Por ejemplo, se puede agregar un nuevo campo, como COUNTRY_FLAG, a los nuevos documentos a medida que se insertan, sin afectar a los documentos existentes. Para facilitar la recuperación, los sistemas orientados a documentos generalmente permiten al administrador proporcionar sugerencias a la base de datos para localizar ciertos tipos de información. Estas sugerencias funcionan de manera similar a los índices en las bases de datos relacionales. [ 2 ] Muchos sistemas también permiten metadatos adicionales fuera del contenido del documento en sí, como etiquetar las entradas como parte de una libreta de direcciones, lo que permite recuperar información relacionada, por ejemplo, todas las entradas de la libreta de direcciones. Esto proporciona una funcionalidad similar a la de una tabla, pero separa el concepto (categorías de datos) de su implementación física (tablas). [ 4 ]

En el modelo relacional normalizado tradicional, los objetos de la base de datos se representan como filas de datos independientes, sin una estructura inherente más allá de la definida en las tablas. Esto puede generar dificultades al traducir objetos de programación hacia y desde sus filas correspondientes en la base de datos, un problema conocido como desajuste de impedancia objeto-relacional . [ 6 ] En cambio, los almacenes de documentos suelen mapear los objetos de programación directamente en la base de datos, conservando gran parte de su estructura interna. Las bases de datos que utilizan este enfoque se denominan frecuentemente sistemas NoSQL .

Implementaciones

Implementaciones de bases de datos XML

La mayoría de las bases de datos XML son bases de datos orientadas a documentos.

Véase también

Notas

  1. Los almacenes de clave-valor generalmente tratan los valores almacenados como datos opacos, mientras que las bases de datos orientadas a documentos están diseñadas para interpretar y consultar la estructura interna de los documentos.
  2. Las bases de datos orientadas a documentos y los sistemas clave-valor suelen ofrecer capacidades operativas similares. Sin embargo, sus objetivos de diseño difieren significativamente.

Referencias

  1. Drake, Mark (9 de agosto de 2019). "Una comparación de sistemas y modelos de gestión de bases de datos NoSQL" . DigitalOcean . Archivado del original el 13 de agosto de 2019. Recuperado el 23 de agosto de 2019 .
  2. 1 2 3 4 Corbellini, Alejandro; Mateos, Cristian; Zunino, Alejandro; Godoy, Daniela; Schiaffino, Silvia (enero de 2017). "Big data persistente: el panorama NoSQL" . Information Systems . 63 : 1–23 . doi : 10.1016/j.is.2016.07.009 . hdl : 11336/58462 . ISSN 0306-4379 . Recuperado el 25 de mayo de 2025 . 
  3. 1 2 3 4 5 6 7 Davoudian, Ali; Chen, Liu; Liu, Mengchi. "Un estudio sobre almacenes NoSQL" . dl.acm.org . doi : 10.1145/3158661 . Recuperado el 13 de marzo de 2026 .
  4. 1 2 3 4 5 6 7 Truică, Ciprian-Octavian; Apostol, Elena-Simona; Darmont, Jérôme; Pedersen, Torben Bach (15 de julio de 2021). "Los sistemas de gestión de bases de datos orientados a documentos olvidados: una visión general y una evaluación comparativa de los DODBMS XML nativos en comparación con los DODBMS JSON" . Big Data Research . 25 100205. arXiv : 2102.02246 . doi : 10.1016/j.bdr.2021.100205 . ISSN 2214-5796 . 
  5. Cloud-Writer. "Descripción de la normalización de la base de datos - Aplicaciones de Microsoft 365" . learn.microsoft.com . Consultado el 15 de marzo de 2026 .
  6. Ambler, Scott W. (marzo de 2023). "Superando la incompatibilidad de impedancia objeto-relacional" . Datos ágiles .
  7. "Documentación | Aerospike - Almacén de clave-valor" . docs.aerospike.com . Consultado el 3 de mayo de 2021 .
  8. "Documentación | Aerospike" . docs.aerospike.com . Consultado el 3 de mayo de 2021 .
  9. "Protocolo HTTP para AllegroGraph" .
  10. "Base de datos NoSQL multimodelo de alta disponibilidad" . ArangoDB .
  11. Documentación archivada el 20 de agosto de 2012 en Wayback Machine . Couchbase. Consultado el 18 de septiembre de 2013.
  12. "Apache CouchDB" . Apache Couchdb . Archivado del original el 20 de octubre de 2011.
  13. "HTTP_Document_API - Couchdb Wiki" . Archivado del original el 1 de marzo de 2013. Recuperado el 14 de octubre de 2011 .
  14. "Crate SQL HTTP Endpoint (Copia archivada)" . Archivado del original el 22 de junio de 2015. Recuperado el 22 de junio de 2015 .
  15. eXist-db Base de datos XML nativa de código abierto . Exist-db.org. Consultado el 18 de septiembre de 2013.
  16. "Comparación de las ediciones de Informix Versión 12" . IBM . 22 de julio de 2016.
  17. "Licencias de MongoDB" .
  18. "El nuevo controlador Rust para MongoDB" . MongoDB . Consultado el 1 de febrero de 2018 .
  19. "MongoDB con Scala - Documentación de MongoDB - MongoDB Docs" . www.mongodb.com . Consultado el 15 de marzo de 2026 .
  20. "Interfaz HTTP — Ecosistema MongoDB" . Documentación de MongoDB .
  21. "Documentación del ecosistema de MongoDB" . GitHub . 27 de junio de 2019.
  22. "GT.M Motor de base de datos TP de gama alta" . 26 de septiembre de 2023.
  23. "RedisJSON: un tipo de datos JSON para Redis" .
  24. "Transferencia de derechos de autor a The Linux Foundation, relicenciamiento de RethinkDB bajo ASLv2" . github.com . Consultado el 27 de enero de 2020 .
  25. "solr/LICENSE.txt en main · apache/solr · GitHub" . github.com . Consultado el 24 de diciembre de 2022 .
  26. "Response Writers :: Apache Solr Reference Guide" . solr.apache.org . Consultado el 24 de diciembre de 2022 . 
  27. "Recursos administrados :: Guía de referencia de Apache Solr" . solr.apache.org . Consultado el 24 de diciembre de 2022 . 
  28. "TerminusDB y base de datos gráfica orientada a documentos en memoria de código abierto" . terminusdb.com . Consultado el 9 de agosto de 2023 .

Lecturas adicionales

  • Arkin, Assaf. (20 de septiembre de 2007). "Lee la coherencia: bases de datos tontas, servicios inteligentes". Labnotes : ¡Que no se te suba a la cabeza! Archivado el 27 de marzo de 2008 en Wayback Machine.
  • Clasificación de DB-Engines de almacenes de documentos por popularidad, actualizada mensualmente.