¿Que es NoSQL?
• Son sistemas de almacenamiento de información
que no cumplen con el esquema entidad-
relacion, es decir, que no imponen una estructura
de datos en forma de tablas y relaciones entre
ellas, en ese sentido son mas flexibles, ya que
permiten almacenar información en otros
formatos como clave-valor (similar a tablas
HASH), mapeo de columnas, documentos o
grafos.
NOSQL
• BD Referenciado por
Llave Valor (Key-value)
• BD Orientado a Grafos
• BD Orientado a
Documentos
• BD Orientado a Columnas
¿Que es MongoDB?
• MongoDB (de la palabra en inglés
“humongous” que significa enorme) es un
sistema de base de datos NoSQL orientado
a documentos, desarrollado bajo el concepto
de código abierto.
Equivalencias
RDBMS MongoDB
Database Database
Tabla Colección
Fila Documento (JSON,
BSON)
Columna Campo
Index Index
Join Documento
Foreign Key Referencia
Ventajas de NoSQL
• Estos sistemas responden a las necesidades de escalabilidad
horizontal que tienen cada vez más empresas.
• Pueden manejar enormes cantidades de datos.
• No generan cuellos de botella.
• Escalamiento sencillo.
• Diferentes DBs NoSQL para diferentes proyectos.
• Se ejecutan en clusters de máquinas baratas.
Ventajas de NoSQL
• Las bases de datos NoSQL están concebidas
para obtener una altísima capacidad de volumen
de almacenamiento y velocidad de proceso de la
información. Para lograr esto, el lenguaje NoSQL
usa técnicas que pueden asustar a los gestores
de bases de datos relacionales, como el que los
datos que componen la data, no son coherentes
todo el tiempo dentro del sistema.
MongoDB
• MongoDB forma parte de la nueva familia de
sistemas de base de datos NoSQL.
• En vez de guardar los datos en tablas, como se
hace en las base de datos relacionales,
MongoDB guarda estructuras de datos en
documentos tipo JSON con un esquema
dinámico (MongoDB llama ese formato BSON),
haciendo que la integración de los datos en
ciertas aplicaciones sea más fácil y rápida.
CRUD
Create
db.collection.insert( <document> )
db.collection.save( <document> )
db.collection.update( <query>, <update>, { upsert: true } )
Read
db.collection.find( <query>, <projection> )
db.collection.findOne( <query>, <projection> )
Update
db.collection.update( <query>, <update>, <options> )
Delete
db.collection.remove( <query>, <justOne> )
INDEXACIÓN
• Cualquier campo en un documento de
MongoDB puede ser indexado, al igual que
es posible hacer índices secundarios. El
concepto de índices en MongoDB es
similar a los encontrados en base de datos
relacionales.
REPLICACIÓN
• MongoDB soporta el tipo dereplicación maestro-esclavo. Elmaestro puede ejecutar comandosde lectura y escritura.
• El esclavo puede copiar los datosdel maestro y sólo se puede usarpara lectura o para copia deseguridad, pero no se puedenrealizar escrituras.
• El esclavo tiene la habilidad depoder elegir un nuevo maestro encaso de que se caiga el serviciocon el maestro actual.
BALANCEO DE CARGA
• MongoDB se puede escalar de forma horizontal usando el concepto de “shard”. El
desarrollador elige 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últiple servidores, balanceando la carga y/o duplicando los datos
para poder mantener el sistema funcionando en caso que exista un fallo de
hardware.
• La configuración automática es fácil de implementar bajo MongoDB y nuevas
máquinas pueden ser agregadas a MongoDB con el sistema de base de datos
corriendo.
Top Related