MongoDB Expo

18
Gestor de Base de Datos NoSQL orientado a documentos:

description

Conceptos Básicos de Mongo DB

Transcript of MongoDB Expo

Gestor de Base de Datos NoSQL

orientado a documentos:

2

EN PRODUCCION

¿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.

SQL vs NoSQL

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.

Empresas que usan BD

NoSQL

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.

JSON

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> )

EJEMPLO CRUD

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.

BALANCEO DE CARGA

• En un sistema con

múltiples servidores, los

archivos pueden ser

distribuidos y copiados

entre los mismos varias

veces y de una forma

transparente, de esta

forma se crea un sistema

eficiente que maneja fallos

y balanceo de carga.