Una base de datos de documentos es un tipo de base de datos NoSQL que se puede usar para almacenar y consultar datos como documentos tipo JSON. La notación de objetos de JavaScript (JSON) es un formato abierto de intercambio de datos legible tanto por los humanos como por las máquinas. Los desarrolladores pueden usar documentos JSON en su código y guardarlos directamente en la base de datos de documentos. La naturaleza flexible, semiestructurada y jerárquica de los documentos y las bases de datos de documentos permite que evolucionen según las necesidades de las aplicaciones.

Bases de datos de documentos JSON
Consulta de base de datos de documentos JSON

¿Cuáles son las ventajas de las bases de datos de documentos?

Las bases de datos de documentos permiten una indexación fácil, potentes consultas ad hoc y análisis de colecciones de documentos. Obtenga más información sobre los beneficios a continuación.

Facilidad de desarrollo

Los documentos JSON se asignan a objetos, un tipo de datos común en la mayoría de los lenguajes de programación. Al crear aplicaciones, los desarrolladores pueden crear y actualizar documentos de forma flexible directamente desde el código. Esto significa que dedican menos tiempo a crear modelos de datos de antemano. Por lo tanto, el desarrollo de aplicaciones es más rápido y eficiente.

Esquema flexible

Una base de datos orientada a documentos le permite crear varios documentos con diferentes campos dentro de la misma colección. Esto puede resultar útil cuando se almacenan datos no estructurados, como correos electrónicos o publicaciones en redes sociales. Sin embargo, algunas bases de datos de documentos ofrecen validación de esquemas, por lo que puede imponer algunas restricciones a la estructura.

Rendimiento a escala

Las bases de datos de documentos ofrecen capacidades de distribución integradas. Puede escalarlas horizontalmente en varios servidores sin afectar al rendimiento, lo que también es rentable. Además, las bases de datos de documentos proporcionan tolerancia a errores y disponibilidad a través de la replicación integrada.

¿Cuáles son los casos de uso de las bases de datos de documentos?

El modelo de documentos funciona bien con casos de uso como la administración de contenido, los catálogos, la administración de sensores y más. Para cada caso de uso, cada documento es único y evoluciona con el tiempo.

Administración de contenido

Una base de datos de documentos es una excelente opción para aplicaciones de administración de contenido, como blogs y plataformas de video. Con una base de datos de documentos, cada entidad que rastrea la aplicación se puede almacenar como un único documento. La base de datos de documentos es una manera más intuitiva para que un desarrollador actualice una aplicación a medida que evolucionan los requisitos. Además, si el modelo de datos necesita cambiar, solo se deben actualizar los documentos afectados. No se requiere actualización del esquema y no es necesario tiempo de inactividad de la base de datos para realizar los cambios.

Catálogos

Las bases de datos de documentos son eficientes y efectivas para almacenar información de catálogo. Por ejemplo, en una aplicación de e-commerce, los diferentes productos generalmente tienen diferentes números de atributos. La administración de miles de atributos en bases de datos relacionales no es eficiente y afecta al rendimiento de lectura. Al utilizar una base de datos de documentos, los atributos de cada producto se pueden describir en un solo documento para que la administración sea fácil y la velocidad de lectura sea más rápida. Cambiar los atributos de un producto no afectará a otros.

Gestión de sensores

La Internet de las cosas (IoT) ha hecho que las organizaciones recopilen regularmente datos de dispositivos inteligentes como sensores y medidores. Los datos del sensor suelen llegar como un flujo continuo de valores variables. Debido a problemas de latencia, es posible que algunos objetos de datos estén incompletos, duplicados o que falten. Además, debe recopilar un gran volumen de datos antes de poder filtrarlos o resumirlos para su análisis.

Los almacenes de documentos son más convenientes en este caso. Puede almacenar rápidamente los datos del sensor tal como están, sin limpiarlos ni ajustarlos a esquemas predeterminados. También puede escalarlo según sea necesario y eliminar documentos completos una vez que se hayan realizado los análisis.

¿Cómo funcionan las bases de datos de documentos?

Las bases de datos de documentos almacenan los datos como pares clave-valor en formato JSON. Puede leer y escribir documentos JSON en las bases de datos programáticamente.

Estructura de documentos JSON

JSON representa los datos de tres maneras:

Valor clave

Los pares clave-valor se registran entre corchetes. La clave es una cadena y el valor puede ser cualquier tipo de datos, como entero, decimal o booleano. Por ejemplo, un valor-clave simple es {"year": 2013}.

Matriz

Una matriz es una colección ordenada de valores definidos entre corchetes izquierdo ([) y derecho (]). Los elementos de la matriz están separados por comas. Por ejemplo, {"fruit": ["apple","mango"]}.

Objetos

Un objeto es un conjunto de pares clave-valor. Básicamente, los documentos JSON permiten a los desarrolladores incrustar objetos y crear pares anidados. Por ejemplo, {"address": {"country": "USA","state": "Texas"}}.

Ejemplo de documentos JSON

En el siguiente ejemplo, un documento de tipo JSON describe un conjunto de datos de una película.

[
    {
        "year" : 2013,
        "title" : "Turn It Down, Or Else!",
        "info" : {
            "directors" : [ "Alice Smith", "Bob Jones"],
            "release_date" : "2013-01-18T00:00:00Z",
            "rating" : 6.2,
            "genres" : ["Comedy", "Drama"],
            "image_url" : "http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg",
            "plot" : "A rock band plays their music at high volumes, annoying the neighbors.",
            "actors" : ["David Matthewman", "Jonathan G. Neff"]
        }
    },
    {
        "year": 2015,
        "title": "The Big New Movie",
        "info": {
            "plot": "Nothing happens at all.",
            "rating": 0
        }
    }
]

Puede observar que el documento JSON contiene valores, matrices y objetos simples con bastante flexibilidad. Incluso puede tener una matriz con objetos JSON dentro de ella. Por lo tanto, las bases de datos orientadas a documentos le permiten crear una jerarquía de niveles ilimitados de objetos JSON incrustados. Depende totalmente de usted el esquema que quiera darle a su almacén de documentos.

Operaciones de bases de datos de documentos

Puede crear, leer, actualizar y eliminar documentos completos almacenados en la base de datos. Las bases de datos de documentos proporcionan un lenguaje de consulta o API que permite a los desarrolladores ejecutar las siguientes operaciones:

Crear

Puede crear documentos en la base de datos. Cada documento tiene un identificador único que sirve como clave.

Leer

Puede usar la API o el lenguaje de consulta para leer los datos del documento. Puede ejecutar consultas mediante valores de campo o claves. También puede agregar índices a la base de datos para aumentar el rendimiento de lectura.

Actualizar

Puede actualizar los documentos existentes de forma flexible. Puede volver a escribir todo el documento o actualizar valores individuales.

¿Cuál es la diferencia entre la base de datos de documentos y los almacenes de valores clave?

Una base de datos de clave-valor es una base de datos NoSQL que usa un método simple de clave-valor para almacenar datos. Almacena datos como un conjunto de pares clave-valor en los que una clave sirve como un identificador único. Tanto las claves como los valores pueden ser cualquier cosa, desde objetos simples hasta compuestos complejos.

Una base de datos orientada a documentos es un tipo especial de almacén de valores clave en el que las claves solo pueden ser cadenas. Además, el documento está codificado usando estándares como JSON o lenguajes relacionados como XML. También puede almacenar archivos PDF, archivos de imagen o documentos de texto directamente como valores.

Al consultar su almacén de documentos, puede leer el valor o una parte de un valor, especialmente si el valor es otro objeto JSON. Por ejemplo, puede tener {"book": {"id": 1,"price": $10}}, luego consultar book.price y la base de datos devolverá el valor 10. Las bases de datos de clave-valor siempre devuelven el valor completo con información de ID y precio.

¿Cómo puede AWS cumplir con los requisitos de su base de datos de documentos?

Amazon DocumentDB (con compatibilidad con MongoDB) es un servicio nativo de base de datos de documentos JSON totalmente administrado que admite cargas de trabajo de documentos, incluido MongoDB. Los desarrolladores pueden utilizar el mismo código de aplicación, controladores y herramientas de MongoDB para ejecutar, administrar y escalar cargas de trabajo en Amazon DocumentDB. Puede disfrutar de un rendimiento, una escalabilidad y una disponibilidad con mejoras sin preocuparse por la administración de la infraestructura subyacente. Con Amazon DocumentDB puede:

  • Escalar hasta millones de solicitudes de lectura y escritura por segundo con Amazon DocumentDB Elastic Clusters, con un impacto mínimo o nulo en el rendimiento y sin administración de la infraestructura subyacente.
  • Almacenamiento y procesamiento desacoplados para que pueda aumentar el rendimiento de lectura con hasta 15 réplicas de lectura que comparten el mismo almacenamiento subyacente, sin tener que realizar escrituras en los nodos de réplica.
  • Automatizar las tareas manuales indiferenciadas de administración de bases de datos sin gastos de licencia, incluido el aprovisionamiento de hardware, la aplicación de parches, la configuración y otras más.
  • Logre una alta disponibilidad del 99,99 % mejorada con los clústeres globales de Amazon DocumentDB para aplicaciones distribuidas por todo el mundo que permiten un rendimiento de lectura local rápido. 
  • Logre una disponibilidad del 99,99 % con la replicación automática, la copia de seguridad continua y el aislamiento estricto de la red.
  • Altamente fiable y duradero, con almacenamiento con recuperación automática y tolerante a errores, recuperación puntual, copias de seguridad continuas y mucho más. Amazon DocumentDB hace que sus datos sean duraderos en tres AZ dentro de una región al replicar las nuevas escrituras de seis maneras mientras usted solo paga por una copia.
  • Muy seguro, con cifrado en reposo predeterminado, aislamiento de la red y auditoría avanzada, a la vez que permite controlar los permisos a nivel de recursos con un acceso detallado.
  • Amplia cobertura de cumplimiento que incluye SOC (1, 2 y 3), PCI DSS, apta para HIPAA y más.

Para comenzar con las bases de datos de documentos en AWS, cree una cuenta gratuita hoy mismo.

Modelado de datos con Amazon DocumentDB
Introducción a Amazon DocumentDB Elastic Clusters