1 - Conceptos de mongoDB
¿Qué es mongoDB?
mongoDB es un sistema de base de datos multiplataforma orientado a documentos (escrito en C++), es decir que NO guarda los datos en registros sino en DOCUMENTOS, que son almacenados en BSON (representación binaria de JSON), lo cual hace que se almacene datos en documentos flexibles, lo que facilita la persistencia y la combinación de datos de cualquier estructura.
No se trabaja con un único esquema como en las Base de Datos Relacionales, sino con documentos de una misma colección.
En el gráfico de la derecha se puede observar un documento que tiene una colección (de Personas), y en el gráfico de abajo un ejemplo de como se relacionan tres documentos.
Principales características
Entre las principales características se destaca:
-
Alto rendimiento
Para la persistencia en MongoDB se basa:-
La posibilidad de tener documentos con la información anidada, evitando, de esta forma, un número elevado de operaciones de I/O.
-
El soporte de índices y la posibilidad de crear índices sobre arrays y subdocumentos.
-
-
Alta disponibilidad
A través de la réplica automática conocida como replica set, la cual proporciona redundancia de datos y failover automático (transferencia automática a un nuevo nodo cuando se encuentra un fallo en uno de los nodos). -
Escalado Automático
Hace escalado horizontal, para ello el sistema de sharding distribuye información por diferentes cluster de máquinas.
Ventajas de mongoDB
-
Plataforma de datos distribuidos: puede ejecutarse dentro y a través de centros de datos distribuidos geográficamente y regiones en la nube, proporcionando nuevos niveles de disponibilidad y escalabilidad, a medida que sus implementaciones crecen en términos de volumen de datos y rendimiento, mongoDB escala elásticamente y a medida que sus objetivos de rendimiento y disponibilidad evolucionan se adapta con flexibilidad.
-
Funciones integradas: tiene funciones incorporadas tales como:
-
Visualización analítica y de datos
-
Búsqueda de texto y geoespacial
-
Procesamiento de gráficos
-
Canalizaciones de datos de transmisión controladas por eventos
-
Rendimiento en memoria
-
Replicación global
-