Anuncio¡Presentamos MongoDB 8.0, el MongoDB más rápido de la historia! Leer más > >>
AnuncioVoyage AI se une a MongoDB para potenciar aplicaciones de IA más precisas y confiables en Atlas. Más información > >>

¿Qué es una base de datos de documentos?

Una base de datos de documentos (también conocida como base de datos orientada a documentos o almacén de documentos) es una base de datos que almacena información en documentos.

Las bases de datos de documentos ofrecen una variedad de ventajas, entre ellas:

  • Un modelo de datos intuitivo con el que los desarrolladores pueden trabajar de forma rápida y sencilla
  • Un esquema flexible que permite que el modelo de datos evolucione a medida que cambian las necesidades de la aplicación
  • La capacidad de escalar horizontalmente

Gracias a estas ventajas, las bases de datos de documentos son bases de datos de propósito general que pueden utilizarse en diversos casos de uso y sectores.

Las bases de datos de documentos se consideran bases de datos no relacionales (o NoSQL). En lugar de almacenar datos en filas y columnas fijas, las bases de datos de documentos utilizan documentos flexibles. Las bases de datos de documentos son la alternativa más popular a las bases de datos relacionales tabulares. Más información sobre las bases de datos NoSQL.

Índice:

¿Qué son los documentos?

Un documento es un registro en una base de datos de documentos. Un documento suele almacenar información sobre un objeto y cualquiera de sus metadatos relacionados.

Los documentos almacenan datos en pares de valor de campo. Los valores pueden ser de una variedad de tipos y estructuras, incluyendo strings, números, fechas, arreglos u objetos. Los documentos pueden almacenarse en formatos como JSON, BSON y XML.

A continuación se muestra un documento JSON que almacena información sobre un usuario llamado Tom.

 

 

Colecciones

Una colección es un grupo de documentos. Las colecciones suelen almacenar documentos que tienen contenido similar.

No es necesario que todos los documentos de una colección tengan los mismos campos, ya que las bases de datos de documentos tienen esquemas flexibles. Tenga en cuenta que algunas bases de datos de documentos proporcionan validación de esquema, por lo que el esquema puede bloquearse opcionalmente cuando sea necesario.

Continuando con el ejemplo anterior, el documento con información sobre Tom podría almacenarse en una colección llamada users. Se podrían agregar más documentos a la colección users para almacenar información sobre otros usuarios. Por ejemplo, el documento siguiente, que almacena información sobre Donna, podría agregarse a la colección users.

 

 

Tenga en cuenta que el documento de Donna no contiene los mismos campos que el documento de Tom. La colección de usuarios aprovecha un esquema flexible para almacenar la información que existe para cada usuario.

Operaciones CRUD

Las bases de datos de documentos suelen tener una API o un lenguaje del query que permite a los desarrolladores ejecutar las operaciones CRUD (crear, leer, actualizar y borrar).

  • Create: Se pueden crear documentos en la base de datos. Cada documento tiene un identificador único.
  • Lectura: Los documentos se pueden leer en la base de datos. La API o el languaje del query permite a los desarrolladores buscar documentos mediante sus identificadores únicos o los valores de campo. Los índices se pueden agregar a la base de datos para mejorar el rendimiento de lectura.
  • Actualización: Los documentos existentes se pueden actualizar — ya sea en su totalidad o en parte.
  • Borrar: se pueden eliminar documentos de la base de datos.

¿Cuáles son las funcionalidades clave de las bases de datos de documentos?

Las bases de datos de documentos tienen las siguientes funcionalidades clave:

¿Qué diferencia a las bases de datos de documentos de las bases de datos relacionales?

Tres factores clave diferencian las bases de datos de documentos de las bases de datos relacionales:

  1. La intuitividad del modelo de datos: los documentos se asignan a los objetos en código, por lo que son mucho más naturales para trabajar. No es necesario descomponer los datos en tablas, ejecutar JOIN costosos o integrar una capa de mapeo relacional de objetos (ORM) por separado. Los datos a los que se accede juntos se almacenan juntos, por lo que los desarrolladores tienen que escribir menos código y los usuarios finales obtienen un mejor rendimiento.
  2. La ubicuidad de los documentos JSON: JSON se ha convertido en un estándar establecido para el intercambio y el almacenamiento de datos. Los documentos JSON son ligeros, independientes del lenguaje y legibles para los humanos. Los documentos son un superconjunto de todos los demás modelos de datos, por lo que los desarrolladores pueden estructurar los datos de la forma que necesitan sus aplicaciones —objetos enriquecidos, pares clave-valor, tablas, datos geoespaciales y de series de tiempo, o los nodos y las aristas de un grafo—.
  3. La flexibilidad del esquema: el esquema de un documento es dinámico y autodescriptivo, por lo que los desarrolladores no necesitan predefinirlo primero en la base de datos. Los campos pueden variar de un documento a otro. Los desarrolladores pueden modificar la estructura en cualquier momento, evitando las disruptivas migraciones de esquemas. Algunas bases de datos de documentos ofrecen validación de esquema para que opcionalmente pueda aplicar reglas que gobiernan las estructuras de documentos.

Aprenda más sobre NoSQL frente a bases de datos relacionales.

¿Cuánto más fáciles son de usar los documentos que las tablas?

Los desarrolladores suelen considerar que trabajar con datos en documentos es más fácil e intuitivo que hacerlo con datos en tablas. Los documentos se asignan a estructuras de datos en los lenguajes de programación más populares. Los desarrolladores no tienen que preocuparse por dividir manualmente los datos relacionados en varias tablas al almacenarlos ni por volver a unirlos al recuperarlos. Tampoco necesitan usar un ORM para que gestione la manipulación de los datos. En cambio, pueden trabajar fácilmente con los datos directamente en las aplicaciones.

Echemos otro vistazo a un documento de un usuario llamado Tom.

Usuarios

 

Toda la información sobre Tom se almacena en un solo documento.

Ahora veamos cómo podemos almacenar la misma información en una base de datos relacional. Empezaremos creando una tabla que almacene la información básica sobre el usuario.

Usuarios

IDfirst_nameemailcell
1Tomtom@example.com765-555-5555

Un usuario puede dar "Me gusta" a muchas cosas (lo que significa que hay una relación de uno a varios entre un usuario y "Me gusta"), así que crearemos una nueva tabla llamada "Me gusta" para almacenar los "Me gusta" de un usuario. La tabla "Me gusta" tendrá una clave foránea que hará referencia a la columna ID de la tabla "Usuarios".

Me gusta

IDuser_idlike
101fashion
111spas
121shopping

Del mismo modo, un usuario puede dirigir varios negocios, así que crearemos una nueva tabla llamada "Negocios" para almacenar información sobre los negocios. La tabla "Negocios" tendrá una clave foránea que hará referencia a la columna ID de la tabla "Usuarios".

Negocios

IDuser_idnamepartnerstatusdate_founded
201Entertainment 1080JeanBankrupt2011-05-19
211Swag for TweensNULLNULL2012-11-01

 

En este sencillo ejemplo, vemos que los datos sobre un usuario podrían almacenarse en un único documento en una base de datos documental o en tres tablas en una base de datos relacional. Cuando un desarrollador quiere recuperar o actualizar información sobre un usuario en la base de datos de documentos, puede escribir una sola query sin necesidad de realizar uniones. Interactuar con la base de datos es sencillo y modelar los datos en ella es intuitivo.

Visite Asociación de términos y conceptos de SQL a MongoDB para obtener más información.

¿Qué relaciones existen entre las bases de datos de documentos y otras bases de datos?

El modelo orientado a documentos es un superconjunto de otros modelos de datos, incluidos los pares clave-valor, relacionales, objetos, grafos y geoespaciales.

Gracias a sus ricas capacidades de modelado de datos, las bases de datos de documentos son bases de datos de uso general que pueden almacenar datos para una variedad de casos de uso.

¿Por qué no usar simplemente JSON en una base de datos relacional?

Dado que las bases de datos de documentos permiten a los desarrolladores crear más rápido, la mayoría de las bases de datos relacionales han añadido compatibilidad con JSON. Sin embargo, simplemente añadir un tipo de dato JSON no aporta los beneficios de una base de datos con soporte nativo para JSON. ¿Por qué? Porque el enfoque relacional resta valor a la productividad del desarrollador, en lugar de mejorarla. Estas son algunas de las cosas con las que tienen que lidiar los desarrolladores.

Extensiones propietarias

Trabajar con documentos significa usar funciones SQL personalizadas y específicas del proveedor, que no son familiares para la mayoría de los desarrolladores y no funcionan con sus herramientas SQL favoritas. Añada drivers JDBC/ODBC de bajo nivel y ORM y se enfrentará a procesos de desarrollo complejos que se traducen en una baja productividad.

Manejo de datos primitivos

Presentar los datos de JSON como cadenas y números simples en lugar de los tipos de datos enriquecidos compatibles con bases de datos de documentos nativas como MongoDB hace que el cálculo, la comparación y la clasificación de los datos sean complejos y propensos a errores.

Mala calidad de los datos & tablas rígidas

Las bases de datos relacionales ofrecen poco para validar el esquema de los documentos, por lo que no tiene ninguna forma de aplicar controles de calidad a sus datos JSON. Y aún es necesario definir un esquema para los datos tabulares regulares, con todos los gastos en general adicionales que esto conlleva cuando se necesita modificar las tablas a medida que cambian las funcionalidades de la aplicación.

Bajo rendimiento

La mayoría de las bases de datos relacionales no mantienen estadísticas sobre los datos JSON, lo que impide que el planificador de queries optimice las queries en los documentos y que usted ajuste las queries.

Sin escalado horizontal nativo

Las bases de datos relacionales tradicionales no ofrecen ninguna forma de particionar la base de datos en varias instancias para escalar a medida que aumentan las cargas de trabajo. En cambio, tiene que implementar el particionado usted mismo en la capa de aplicación o depender de costosos sistemas de escalado vertical.

¿Cuáles son las fortalezas y debilidades de las bases de datos de documentos?

Las bases de datos de documentos tienen muchas fortalezas:

  • El modelo orientado a documentos es omnipresente, intuitivo y permite el desarrollo rápido de software.
  • El esquema flexible permite que el modelo de datos cambie a medida que cambian los requisitos de una aplicación.
  • Las bases de datos de documentos cuentan con ricas API y lenguajes del query que permiten a los desarrolladores interactuar fácilmente con sus datos.
  • Las bases de datos de documentos son distribuidas (lo que permite el escalado horizontal y la distribución global de datos) y resilientes.

Estas ventajas hacen de las bases de datos de documentos una excelente elección para una base de datos de uso general.

Una debilidad común que se menciona sobre las bases de datos de documentos es que muchas no admiten transacciones ACID multidocumento. Estimamos que el 80%-90% de las aplicaciones que aprovechan el modelo orientado a documentos no necesitarán usar transacciones multidocumento.

Tenga en cuenta que algunas bases de datos de documentos como MongoDB ofrecen soporte para transacciones ACID multidocumento.

Visite ¿Qué son las transacciones ACID? para obtener más información sobre cómo el modelo orientado a documentos en su mayoría elimina la necesidad de transacciones multidocumento y cómo MongoDB admite transacciones en los raros casos en que se necesitan.

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

Las bases de datos de documentos son bases de datos de uso general que sirven para una variedad de casos de uso para aplicaciones transaccionales y analíticas:

  • Vista única o centro de datos
  • Gestión de datos del cliente y personalización
  • Internet of Things (IoT) y datos de series de tiempo
  • Catálogos de productos y gestión de contenido
  • Procesamiento de pagos
  • Aplicaciones móviles
  • Delegación del mainframe
  • Análisis operativo
  • Real-Time Analytics

Resumen

Las bases de datos de documentos utilizan el intuitivo y flexible modelo de datos de documentos para almacenar datos. Las bases de datos de documentos son bases de datos de uso general que pueden utilizarse para una variedad de casos de uso en distintos sectores.

Comience con bases de datos documentales creando una base de datos en MongoDB Atlas, la plataforma de datos de MongoDB. Atlas tiene un generoso nivel gratuito para siempre que puede utilizar para experimentar y explorar el modelo orientado a documentos.

Preguntas frecuentes

Comience a usar Atlas hoy mismo

Comience en cuestión de segundos. Nuestros clústeres gratuitos vienen con 512 MB de almacenamiento para que pueda jugar con datos de muestra y orientarse con nuestra plataforma.
Probar gratisContactar a ventas
PRIMEROS PASOS CON:
  • Más de 125 regiones en todo el mundo
  • Conjuntos de datos de muestra
  • Autenticación siempre activa
  • Cifrado de extremo a extremo
  • Herramientas de línea de comandos