¿Qué es una base de datos de documentos?

La base de datos de documentos definida

Una base de datos de documentos es un tipo de base de datos no relacional que está diseñada para almacenar datos semiestructurados como documentos. Las bases de datos de documentos son intuitivas y los desarrolladores las utilizan ya que los datos en el nivel de la aplicación generalmente se representan como un documento JSON. Los desarrolladores pueden conservar datos utilizando el mismo formato de modelo de documento que usan en el código de su aplicación. En una base de datos de documentos, cada documento puede tener la misma estructura de datos o no, y cada documento es autodescriptivo, incluyendo su posible esquema único, y no depende necesariamente de ningún otro documento. Los documentos se agrupan en "colecciones", que tienen un propósito similar al de una tabla en una base de datos relacional. 

Por ejemplo, en una base de datos de libros simple, un archivo JSON que describe un elemento del libro podría parecerse al siguiente código.

[
    {
        "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
        }
    }
]

Casos de uso

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 documental, cada entidad que rastrea la aplicación se puede almacenar como un único documento. La base de datos de documentos es 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.

Las bases de datos de documentos más conocidas

Amazon DynamoDB

Amazon DynamoDB es una base de datos no relacional que ofrece rendimiento fiable a cualquier escala. Es una base de datos completamente administrada, con varios nodos principales y distribuida en varias regiones que ofrece una latencia estable con milisegundos de un dígito y almacenamiento caché en memoria, copias de seguridad y restauración, y seguridad incorporada. DynamoDB es compatible con JSON nativo, por lo que puede escribir documentos JSON directamente en tablas DynamoDB. Con un tamaño de elemento máximo de 400 KB, DynamoDB le permite almacenar documentos JSON grandes y objetos anidados en una transacción.

Introducción a DynamoDB

Introducción a Amazon DynamoDB

MongoDB

MongoDB es una base de datos no relacional de código abierto que ofrece soporte para sistemas de almacenamiento de estilo JSON orientados a documentos. Es compatible con un modelo de datos flexible que le permite almacenar datos de cualquier estructura, y proporciona un amplio conjunto de características, que incluyen compatibilidad total con la indexación, la fragmentación y la replicación. AWS le permite configurar la infraestructura para admitir la implementación de MongoDB de una manera flexible, escalable y rentable en la nube de AWS. 

Use el documento Quick Start de AWS MongoDB (también disponible en formato PDF) para implementar un clúster de MongoDB en la nube de AWS. Para obtener un información general de MongoDB y su implementación en AWS, consulte el documento técnico MongoDB on AWS: Guidelines and Best Practices (MongoDB en AWS: pautas y prácticas recomendadas). También consulte AWS security recommendations for MongoDB (Recomendaciones de seguridad de AWS para MongoDB).

Couchbase

La plataforma de datos de clase empresarial Couchbase incluye Couchbase Server y Couchbase Mobile, y ha sido diseñada para aprovechar toda la potencia de las aplicaciones móviles, IoT y web. Couchbase Server es una base de datos no relacional nativa de la nube diseñada con una arquitectura distribuida para aumentar el rendimiento, la escalabilidad y la disponibilidad. Permite a los desarrolladores crear aplicaciones combinando la potencia de SQL con la flexibilidad de JSON. Couchbase Mobile incluye una base de datos incrustada totalmente integrada, que incluye características de seguridad y sincronización automática en tiempo real con el servidor Couchbase altamente escalable.

Use el documento Quick Start de AWS Couchbase (también disponible en formato PDF) para implementar un clúster de Couchbase en la nube de AWS.