Вы находитесь на странице: 1из 11

Contenido

INTRODUCCIÓN _________________________________________________________________________ 3
Base de datos de documentos ________________________________________________________ 3
Un documento MongoDB ___________________________________________________________ 3
SISTEMA MONGODB _____________________________________________________________________ 4
Características generales____________________________________________________________ 4
Arquitectura Nexus __________________________________________________________________ 5
Modelo de datos MongoDB ___________________________________________________________ 6
Arquitectura Multimodel MongoDB __________________________________________________ 6
Datos como documentos ___________________________________________________________ 6
Esquema dinámico MongoDB con control de gobierno de datos ______________________ 7
Estructura del documento ___________________________________________________________ 7
Atomicidad de las operaciones de escritura__________________________________________ 9
Crecimiento del documento ________________________________________________________ 9
Modelo de consultas y visualización de datos __________________________________________ 9
Controladores idiomáticos ___________________________________________________________ 9
Herramientas para interactuar con la base de datos _________________________________ 9
Tipos de consulta __________________________________________________________________ 10
Visualización de datos______________________________________________________________ 11
Indexación ________________________________________________________________________ 11
Gestión de datos ____________________________________________________________________ 12
Auto-sharding para escalabilidad lineal _____________________________________________ 12
Arquitectura de almacenamiento conectable para la flexibilidad de la aplicación ___ 13
Compresión de extremo a extremo _________________________________________________ 14
Consistencia y disponibilidad _________________________________________________________ 14
Modelo de transacción ____________________________________________________________ 15
Conjuntos de réplica _______________________________________________________________ 15
Seguridad _________________________________________________________________________ 15
Productos ___________________________________________________________________________ 17
Mongo DB Community Server _______________________________________________________ 17
Mongo DB Entrerprise Server ________________________________________________________ 17
Ops Manager ______________________________________________________________________ 17
MongoDB Compass ________________________________________________________________ 17
MongoDB Atlas ____________________________________________________________________ 17
INTRODUCCIÓN
En el presente trabajo se detalla, en medida de lo posible, el sistema de bases de datos
NoSQL “MongoDB”, describiendo sus características, aplicaciones, ventajas, desventajas y el
desarrollo que ha tenido desde su origen hasta la fecha actual.

MongoDB es una base de datos de documentos de código abierto que ofrece alto
rendimiento, alta disponibilidad y escalado automático.

Base de datos de documentos


Un registro en MongoDB es un documento, que es una estructura de datos compuesta por
pares de campo y valor. Los documentos MongoDB son similares a los objetos JSON. Los
valores de los campos pueden incluir otros documentos, matrices y matrices de
documentos.

Un documento MongoDB
Las ventajas de usar documentos son:

• Los documentos (es decir, objetos) corresponden a tipos de datos nativos en muchos
lenguajes de programación.
• Los documentos y arreglos integrados reducen la necesidad de costosas
combinaciones.
• El esquema dinámico admite polimorfismo fluido.

3
• Menor TCO. MongoDB se ejecuta en hardware básico, lo que reduce drásticamente
los costos. MongoDB ofrece precios a pedido, pago por uso y suscripciones anuales
accesibles, que incluyen soporte global 24/7 los 365 días del año. Sus aplicaciones
pueden ser una décima parte del costo de entrega en comparación con el uso de
una base de datos relacional.
• Transacciones ACID multi-documento. MongoDB 4.0, programado para el verano de
2018, agregará soporte para transacciones de múltiples documentos, convirtiéndose
en la única base de datos que combina las garantías ACID de bases de datos
relacionales tradicionales, la velocidad, flexibilidad y potencia del modelo de
documento, con los sistemas distribuidos inteligentes diseño para escalar y colocar
datos donde lo necesite.

Arquitectura Nexus
La filosofía de diseño de MongoDB se centra en combinar las capacidades críticas de las
bases de datos relacionales con las innovaciones de las tecnologías NoSQL. Su visión es
aprovechar el trabajo que Oracle y otros han realizado en los últimos 40 años para hacer
que las bases de datos relacionales sean lo que son hoy en día. En lugar de descartar
décadas de madurez comprobada de la base de datos, MongoDB continúa donde lo
dejaron combinando las capacidades clave de las bases de datos relacionales con el
trabajo que los pioneros de Internet han hecho para satisfacer los requisitos de las
aplicaciones modernas. [2]

5
A diferencia de muchas bases de datos NoSQL, los usuarios no necesitan renunciar a JOINs
por completo. Para una flexibilidad adicional, MongoDB proporciona la capacidad de
realizar equi y non-equi JOINs que combinan datos de múltiples colecciones, generalmente
cuando se ejecutan consultas analíticas contra datos operativos en vivo.

Esquema dinámico MongoDB con control de gobierno de datos


Los documentos de MongoDB pueden variar en estructura. Los campos pueden variar de un
documento a otro; no es necesario declarar la estructura de los documentos al sistema; los
documentos son autodescriptivos. Si se debe agregar un nuevo campo a un documento, el
campo se puede crear sin afectar a todos los demás documentos en el sistema, sin
actualizar un catálogo del sistema central y sin desconectar el sistema.

Los campos pueden variar de un documento a otro; no es necesario declarar la estructura


de los documentos al sistema; los documentos son autodescriptivos. Si se debe agregar un
nuevo campo a un documento, el campo se puede crear sin afectar a todos los demás
documentos en el sistema, sin actualizar un catálogo del sistema central y sin desconectar el
sistema.

Mediante la validación de esquemas, los DBA pueden aplicar estándares de gobierno de


datos a su esquema, mientras que los desarrolladores mantienen los beneficios de un
modelo de documento flexible. [2]

Estructura del documento


Los documentos MongoDB están compuestos por pares campo-valor y tienen la siguiente
estructura:
{
Campo1 : valor1 ,
campo2 : valor2 ,
field3 : valor3 ,
...
campoN : valorN
}

El valor de un campo puede ser cualquiera de los tipos de datos BSON, incluidos otros
documentos, matrices y matrices de documentos.

La decisión clave en el diseño de modelos de datos para aplicaciones MongoDB gira en


torno a la estructura de los documentos y cómo la aplicación representa las relaciones entre
los datos. Hay dos herramientas que permiten a las aplicaciones representar estas
relaciones: referencias y documentos integrados.

7
Atomicidad de las operaciones de escritura
En MongoDB, las operaciones de escritura son atómicas a nivel de documento y ninguna
operación de escritura puede afectar atómicamente a más de un documento o más de
una colección. Un modelo de datos desnormalizado con datos integrados combina todos
los datos relacionados para una entidad representada en un solo documento. Esto facilita
las operaciones de escritura atómica ya que una sola operación de escritura puede insertar
o actualizar los datos de una entidad. La normalización de los datos dividiría los datos entre
múltiples colecciones y requeriría múltiples operaciones de escritura que no son atómicas
colectivamente. Sin embargo, los esquemas que facilitan las escrituras atómicas pueden
limitar las formas en que las aplicaciones pueden usar los datos o pueden limitar las formas
de modificar las aplicaciones.

Crecimiento del documento


Algunas actualizaciones, como insertar elementos en una matriz o agregar nuevos campos,
aumentan el tamaño de un documento.

Para el motor de almacenamiento MMAPv1, si el tamaño del documento excede el espacio


asignado para ese documento, MongoDB reubica el documento en el disco. Al utilizar el
motor de almacenamiento MMAPv1, la consideración del crecimiento puede afectar la
decisión de normalizar o desnormalizar los datos. [3]

Modelo de consultas y visualización de datos


Controladores idiomáticos
MongoDB proporciona controladores nativos para todos los lenguajes y lenguajes de
programación populares para hacer que el desarrollo sea natural. Los controladores
compatibles incluyen Java, Javascript, .NET, Python, Perl, PHP, Scala y otros, además de más
de 30 controladores desarrollados por la comunidad. Los controladores MongoDB están
diseñados para ser idiomáticos para el lenguaje dado.

Herramientas para interactuar con la base de datos


MongoDB ofrece a los desarrolladores y administradores una gama de herramientas para
interactuar con la base de datos, independientemente de los controladores.

El shell mongo es un shell de JavaScript rico e interactivo que se incluye con todas las
distribuciones de MongoDB. Además, MongoDB Compass es una GUI sofisticada e intuitiva
para MongoDB. Al ofrecer exploración y administración de esquemas completos, Compass
permite a los DBA modificar documentos, crear reglas de validación de datos y optimizar de
manera eficiente el rendimiento de las consultas visualizando planes de explicación y uso de
índices. Se pueden crear y ejecutar consultas sofisticadas simplemente seleccionando los
elementos del documento de la interfaz de usuario, con los resultados visualizados como un
conjunto de documentos JSON o en una vista de tabla. Todas estas tareas pueden realizarse
desde una interfaz de apuntar y hacer clic, y todas con cero conocimientos del lenguaje de
consulta de MongoDB.

9
Visualización de datos
Usando el Conector MongoDB para BI, incluido con MongoDB Enterprise Advanced, los
datos de las aplicaciones modernas se pueden analizar fácilmente con las plataformas
analíticas y de BI basadas en el estándar SQL de la industria. Los analistas de negocios y los
científicos de datos pueden analizar sin problemas los datos semi y no estructurados
administrados en MongoDB, junto con los datos tradicionales en sus bases de datos SQL,
utilizando las mismas herramientas de BI desplegadas en millones de empresas.

Indexación
Los índices son un mecanismo crucial para optimizar el rendimiento y la escalabilidad del
sistema a la vez que brindan un acceso flexible a sus datos. MongoDB incluye soporte para
muchos tipos de índices secundarios que se pueden declarar en cualquier campo del
documento, incluidos los campos dentro de las matrices:

• Se pueden definir índices compuestos, únicos, de matriz, parciales, TTL, geoespaciales,


dispersos, hash y de texto para optimizar múltiples patrones de consulta, tipos de
datos multi estructurados y restricciones.

La intersección de índices permite a MongoDB usar más de un índice para optimizar
una consulta ad-hoc en tiempo de ejecución. [2]

Los índices admiten la ejecución eficiente de consultas en MongoDB. Sin índices, MongoDB
debe realizar un escaneo de colección, es decir, escanear cada documento en una
colección, para seleccionar los documentos que coinciden con la declaración de consulta.
Si existe un índice apropiado para una consulta, MongoDB puede usar el índice para limitar
la cantidad de documentos que debe inspeccionar.

El índice almacena el valor de un campo específico o conjunto de campos, ordenados por


el valor del campo. El orden de las entradas de índice admite coincidencias de igualdad
eficientes y operaciones de consulta basadas en rango. Además, MongoDB puede devolver
resultados ordenados mediante el uso del orden en el índice.

11
En comparación con las bases de datos relacionales, la fragmentación es automática y está
integrada en la base de datos.

A diferencia de otras bases de datos distribuidas, existen varias políticas de fragmentación


que permiten a los desarrolladores y administradores distribuir datos a través de un clúster de
acuerdo con patrones de consulta o localidad de datos:

• Range Sharding. Los documentos se dividen en fragmentos de acuerdo con el key-


value del fragmento. Es probable que los documentos con valores de clave de
fragmento, cercanos uno al otro, compartan el mismo fragmento.
• Hash Sharding. Los documentos se distribuyen de acuerdo con un hash MD5 del key-
value del fragmento. Este enfoque garantiza una distribución uniforme de las
escrituras a través de los fragmentos, pero no es óptimo para las consultas basadas en
el rango.
• Zone Sharding. Brinda la capacidad para que los DBA y los equipos de operaciones
definan reglas específicas que rigen la ubicación de datos en un clúster
fragmentado. Las zonas se adaptan a una gama de escenarios de implementación,
por ejemplo, ubicación de datos con base en la región geográfica, la configuración
de hardware para arquitecturas de almacenamiento por niveles o la función de la
aplicación. Los administradores pueden refinar continuamente las reglas de
ubicación de datos modificando rangos de claves de fragmentos, y MongoDB
migrará automáticamente los datos a su nueva zona.

Arquitectura de almacenamiento conectable para la flexibilidad de la


aplicación
Con MongoDB, las organizaciones pueden abordar diversas necesidades de aplicaciones,
recursos de hardware y diseños de implementación con una única tecnología de base de
datos. Mediante el uso de una arquitectura de almacenamiento conectable, MongoDB
puede ampliarse con nuevas capacidades y configurarse para un uso óptimo de
arquitecturas de hardware específicas. Los usuarios pueden aprovechar el mismo lenguaje
de consulta de MongoDB, el modelo de datos, la escala, la seguridad y las herramientas
operativas en diferentes aplicaciones, cada una alimentada por diferentes motores de
almacenamiento MongoDB conectables.

13
Modelo de transacción
Debido a que los documentos pueden reunir datos relacionados que de otro modo se
modelarían en tablas padre-hijo separadas en un esquema relacional, las operaciones del
documento único atómico de MongoDB ya proporcionan semánticas de transacción que
satisfacen las necesidades de integridad de datos para la mayoría de las aplicaciones. Se
pueden escribir uno o más campos en una sola operación, incluidas las actualizaciones de
múltiples subdocumentos y elementos de una matriz. Las garantías proporcionadas por
MongoDB incluyen un aislamiento completo a medida que se actualiza un documento;
cualquier error hace que la operación retroceda para que los usuarios reciban una vista
consistente del documento.

Para la disponibilidad de escritura siempre activa, los controladores MongoDB reintentan


automáticamente las operaciones de escritura en caso de fallas transitorias de la red o una
elección primaria, mientras que el servidor MongoDB aplica la semántica de procesamiento
exactamente una vez.

Conjuntos de réplica
MongoDB mantiene múltiples copias de los datos llamados
conjuntos de réplicas utilizando replicación nativa. Un
conjunto de réplicas es un fragmento completamente
autocorrectivo que ayuda a evitar el tiempo de inactividad
de la base de datos. La conmutación por error de réplicas
está totalmente automatizada, lo que elimina la necesidad
de que los administradores intervengan manualmente.

El número de réplicas en un conjunto de réplicas de


MongoDB es configurable: un mayor número de réplicas
proporciona una mayor disponibilidad de datos y
protección contra el tiempo de inactividad de la base de
datos (por ejemplo, en caso de fallas de múltiples máquinas,
fallas de rack, fallas del centro de datos o particiones de
red). Opcionalmente, las operaciones se pueden configurar
para escribir en varias réplicas antes de volver a la
aplicación, proporcionando así una funcionalidad que es similar a la replicación sincrónica.

Los conjuntos de réplicas MongoDB ofrecen tolerancia a fallas y recuperación ante


desastres. La conciencia del centro de datos múltiples permite la distribución de datos
globales y la separación entre cargas de trabajo analíticas y operativas. Los conjuntos de
réplicas también proporcionan flexibilidad operativa al proporcionar una forma de
actualizar el hardware y el software sin que la base de datos se desconecte.

Seguridad
MongoDB Enterprise Advanced presenta amplias capacidades para defender, detectar y
controlar el acceso a los datos.

15

Cifrado Los datos de MongoDB se pueden cifrar en la red, en el disco y en las copias
de seguridad. Con el motor de almacenamiento Encriptado, la protección de datos
en reposo es una característica integral dentro de la base de datos. Al cifrar de forma
nativa los archivos de bases de datos en el disco, los administradores eliminan tanto la
administración como la sobrecarga de rendimiento de los mecanismos de cifrado
externos. Solo aquellos empleados que tienen las credenciales de autorización de
base de datos adecuadas pueden acceder a los datos cifrados, lo que proporciona
niveles de defensa adicionales. [2]

Productos
Mongo DB Community Server
Es la versión de comunidad del servidor MongoDB, que se puede instalar en los distintos
sistemas operativos soportados,

Mongo DB Entrerprise Server


MongoDB Enterprise Server es la edición comercial de MongoDB. Incluye:

• Motor de almacenamiento en memoria: ofrece un alto rendimiento y baja latencia


predecible.
• Motor de almacenamiento cifrado: cifra los datos en reposo.
• Seguridad avanzada: protege los datos con controles de acceso LDAP, Kerberos, y
auditoría integral.

Ops Manager
El gestor de operaciones permite administrar MongoDB en un centro de datos. Incluye:

• Monitoreo: supervisa, visualiza y alerta en más de 100 métricas de rendimiento.


• Automatización: permite realizar instalaciones de un solo clic, actualizaciones y
mantenimiento de índices, sin tiempo de inactividad.
• Copia de seguridad: captura copias de seguridad continuas e incrementales, con
recuperación puntual.
• Optimización de consultas: permite identificar y tratar sin problemas las consultas de
ejecución lenta con el Analizador de consultas visuales, sugerencias de índices y
despliegues automáticos de índices.

MongoDB Compass
MongoDB Compass está diseñado para permitir a los usuarios analizar y comprender
fácilmente los contenidos de sus colecciones de datos dentro de MongoDB y realizar
consultas, sin requerir el conocimiento de la sintaxis de la consulta MongoDB.

MongoDB Compass proporciona a los usuarios una vista gráfica de su esquema MongoDB al
muestrear aleatoriamente un subconjunto de documentos de la colección. Los documentos
de muestreo minimizan el impacto en el rendimiento en la base de datos y pueden producir
resultados rápidamente.

MongoDB Atlas

17
Operaciones CRUD de MongoDB
Las operaciones de CRUD crean, leen, actualizan y eliminan documentos.

Operaciones de creación

Operaciones de crear o insertar, agregan nuevos documentos a una colección. Si la


colección no existe actualmente, las operaciones de inserción crearán la colección.

MongoDB proporciona los siguientes métodos para insertar documentos en una colección:
db.collection.insertOne()
db.collection.insertMany()

En MongoDB, las operaciones de inserción se dirigen a una sola colección. Todas las
operaciones de escritura en MongoDB son atómicas en el nivel de un solo documento.

Imagen 4. Los componentes de las operaciones de MongoDB insertOne.

Operaciones de lectura

Las operaciones de lectura recuperan documentos de una colección; es decir, consulta una
colección de documentos. MongoDB proporciona los siguientes métodos para leer
documentos de una colección:
db.collection.find()

Se pueden especificar filtros de consulta o criterios que identifiquen los documentos a


devolver.

Imagen 5. Los componentes de una operación de búsqueda MongoDB.

19
Esquema de validación
MongoDB proporciona la capacidad de realizar validación de esquema durante
actualizaciones e inserciones. Las reglas de validación son por colección.

Para especificar reglas de validación al crear una nueva colección, se utiliza


db.createCollection()con la opción validator.

MongoDB también proporciona las siguientes opciones relacionadas:

• validationLevel. Determina qué tan estrictamente MongoDB aplica reglas de


validación a documentos existentes durante una actualización.
• validationAction. Determina si MongoDB debe rechazar documentos que infringen las
reglas de validación.

Esquema JSON
A partir de la versión 3.6, MongoDB admite la validación del esquema JSON. Para especificar
la validación del esquema JSON se utiliza el operador $jsonSchema en su expresión
validator.

Expresiones de consulta
Además de la validación JSON Schema, MongoDB soporta la validación con expresiones de
filtro de consulta utilizando los operadores de consulta, con la excepción de $near,
$nearSphere, $text, y $where.

¿Dónde utilizar MongoDB?


• Cualquier aplicación que necesite datos semiestructurados (aplicaciones que utilicen
CRUD)
• Entornos que necesiten escalabilidad (con opciones de replicación o sharding
podemos conseguir que el sistema escale horizontalmente).

¿Dónde no utilizar MongoDB?


• Proyectos en dónde no sea indispensable las transacciones puesto que en esta BD no
existen las transacciones, MongoDB puede utilizar alguna técnica para simularlo, pero
MongoDB no tiene la capacidad.
• Sistema donde no se utilicen los JOINs. Si nuestro sistema necesita consultar datos
relacionados en dos o más colecciones, se debe realizar más de una consulta, pero
en caso de tener datos estructurados en tablas y se necesitan las relaciones, es mejor
optar por un RDBMS clásico.

21

Вам также может понравиться