martes, 10 de junio de 2014

Bases de datos NoSQL (II) - MongoDB

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