Академический Документы
Профессиональный Документы
Культура Документы
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.
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.
El valor de un campo puede ser cualquiera de los tipos de datos BSON, incluidos otros
documentos, matrices y matrices de documentos.
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.
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:
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.
11
En comparación con las bases de datos relacionales, la fragmentación es automática y está
integrada en la base de datos.
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.
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.
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,
Ops Manager
El gestor de operaciones permite administrar MongoDB en un centro de datos. Incluye:
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
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.
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()
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.
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.
21