MongoDB, que viene de la palabra en ingles “humongous” (enorme), es un
sistema de base de datos NoSQL orientado a documentos.
MongoDB
guarda estructuras de datos en documentos tipo BSON (Binary JSON, JSON Binario) con un esquema dinámico, haciendo que la integración
de los datos en ciertas aplicaciones sea mas fácil y rápida.
Lo
que MongoDB no puede hacer:
• No
hay tablas de BBDD
• No
hay “joins”
• No
hay transacciones
• Y
MongoDB no usa esquemas de datos
CARACTERÍSTICAS
PRINCIPALES DE MONGODB
•
Consultas Ad hoc:
búsqueda por campos, consultas de rangos y expresiones regulares.
Las consultas pueden devolver un campo específico del documento pero también
puede ser una función JavaScript definida por el usuario.
•
Indexación de
cualquier campo en un documento.
•
Replicación del
tipo maestro-esclavo.
- El maestro puede ejecutar comandos de lectura y escritura.
- El esclavo puede copiar los datos del maestro y sólo se puede usar para lectura o para copia de seguridad, pero no se pueden realizar escrituras. Tiene la habilidad de poder elegir un nuevo maestro en caso del que se caiga el servicio con el maestro actual.
•
Balanceo de carga:
Mongo DB se puede escalar de forma horizontal usando el concepto de
“shard”.
– El
desarrollador elije una llave shard, la cual determina cómo serán
distribuidos los datos en una colección. Los datos son divididos en
rangos (basado en la llave shard) y distribuidos a través de
múltiples shard.
– Un
shard es un maestro con uno o más esclavos.
- MongoDB tiene la capacidad de ejecutarse en múltiples servidores, balanceando la carga y/o duplicando los datos para poder mantener el sistema funcionando en caso que exista un fallo de hardware.
•
Almacenamiento de
archivos: balanceo de carga y replicación de datos utilizando
múltiples servidores para el almacenamiento de archivos.
•
Agregación:
procesamiento por lotes de datos y operaciones de agregación.
Estos
mecanismos permiten que los usuarios puedan obtener el tipo de
resultado que se obtiene cuando se utiliza el comando SQL “group-by”.
CASOS
DE USO DE MONGODB
•
Almacenamiento y
registro de eventos
• Sistemas de manejo de documentos y contenido
•
Comercio Electrónico
• Juegos
•
Problemas de alto
volumen
•
Aplicaciones móviles
•
Almacén de datos
operacional de una página Web
• Manejo
de contenido
•
Almacenamiento de
comentarios
–
Votaciones
–
Registro de usuarios
–
Perfiles de usuarios
–
Sesiones de datos
•
Proyectos que utilizan
metodologías de desarrollo iterativo o ágiles
• Manejo
de estadísticas en tiempo real
¿CUÁNDO
USAR MONGODB?
MongoDB
puede ser utilizado como una alternativa directa a las bases de datos
relacionales. Es muy importante considerarlo como una alternativa y
no como un sustituto: puede hacer lo mismo que otras
herramientas (algunas cosas las hará mejor y otras peor).
Aunque
no usar esquemas puede ser cómodo y ágil, casi todos los datos son
estructurados.
El
beneficio real es no tener que crear las estructuras de datos antes
de usarlas y reducir el cisma entre OOP y datos.
No hay comentarios:
Publicar un comentario