que es mongodb

17
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 . Es de alto rendimiento y de esquema libre, está licenciado como GNU AGPL 3.0, de modo que se puede descargar gratuitamente desde su sitio web: http://www.mongodb.org/downloads Las características mas destacadas de MongoDB son su velocidad y su sencillo, pero potente, sistema de consulta de datos, en resumen es un sistema de base de datos que tiene el equilibrio entre rendimiento y funcionalidad en el que podemos realizar casi todas las consultas que utilizaríamos en un sistema relacional pero sin sacrificar el rendimiento.

Upload: jessica-poma-espinal

Post on 25-May-2015

784 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Que es MongoDB

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.

Es de alto rendimiento y de esquema libre, está licenciado como GNU AGPL 3.0, de modo que se puede descargar gratuitamente desde su sitio web:

http://www.mongodb.org/downloads

Las características mas destacadas de MongoDB son su velocidad y su sencillo, pero potente, sistema de consulta de datos, en resumen es un sistema de base de datos que tiene el equilibrio entre rendimiento y funcionalidad en el que podemos realizar casi todas las consultas que utilizaríamos en un sistema relacional pero sin sacrificar el rendimiento.

Page 2: Que es MongoDB

Quienes lo usan?

http://www.mongodb.org/display/DOCS/Production+Deployments

Page 3: Que es MongoDB

Que ventajas nos ofrece?

• Es gratuito y es multiplataforma• Es rápida y es funcional• Fácil de probar• Fácil de entender• Escalabilidad, Replicación y Alta Disponibilidad• Formación• Soporte Comercial

Page 4: Que es MongoDB

Es gratuito y es multiplataforma

MongoDB esta disponible para descarga gratuita desde su sitio web: http://www.mongodb.org/download

Esta disponible para todas las plataformas:

Page 5: Que es MongoDB

Es rápido y es funcionalNormalmente tenemos que sacrificar rendimiento por funcionalidad o viceversa, incluso usar dos sistemas (RDBMS + Cache) redundando los datos, MongoDB alcanza el equilibrio entre rendimiento y funcionalidad.

Page 6: Que es MongoDB

Fácil de probar: Una instancia se levanta en minutos

Podemos tener una instancia de mongo levantada en cuestión de minutos, solo tenemos que de bajar los ejecutables, descomprimirlos, crear un directorio de datos y arrancar la instancia con:mongod --dbpath c:\data\

Page 8: Que es MongoDB

Fácil de Entender: Conceptos Conocidos

Bases de Datos Bases de Datos

Tablas Colecciones

Registros Documentos

Page 9: Que es MongoDB

Fácil de Entender: Documento = Registro/Registros

> db.persons.findOne(){ "_id" : ObjectId("5062b9a0fe2d230a58c5c104"), "Name" : "Antonio Gomez", "Age" : 30, "Chidls" : [ { "Name" : "Pedro Gomez", "Age" : 4 }, { "Name" : "Antonio Gomez", "Age" : 11 } ]}

Que es un documento?

Page 10: Que es MongoDB

Fácil de Entender: Funcionalidades similares

Consultas dinámicas (1/3):

SELECT * FROM PERSONSdb.persons.find()

SELECT * FROM PERSONS WHERE NAME = “Antonio Gomez”db.persons.find({Name:"Antonio Gomez"})

SELECT AGE FROM PERSONS WHERE NAME = “Antonio Gomez” AND AGE = 30db.persons.find({Name:"Antonio Gomez“, Age:30}, {Age:true})

Page 11: Que es MongoDB

Fácil de Entender: Funcionalidades similares

Índices:

Ascendentedb.persons.ensureIndex({Age: 1})

Descendentedb.persons.ensureIndex({Age: -1})

Unicodb.persons.ensureIndex({Name: 1}, {unique: true})

Page 12: Que es MongoDB

Escalabilidad, Replicación y Alta Disponibilidad

Replica Setshttp://www.mongodb.org/display/DOCS/Replica+Sets

Maestro / Esclavo (en desuso)http://www.mongodb.org/display/DOCS/Master+Slave

Auto Shardinghttp://www.mongodb.org/display/DOCS/Sharding

Page 13: Que es MongoDB

Fácil de Instalar: Instalación Ubuntu

La instalación es realmente sencilla, simplemente hay que añadir el repositorio de 10gen e instalarlo con apt-get.

Para añadir el repositorio e instalar MongoDB:

1. Importamos la key GPC publica de 10gen con: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

2. Añadimos esta linea a nuestra lista de repositories, que esta en /etc/apt/sources.list: deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

3. Instalamos con: 1. sudo apt-get update2. sudo apt-get install mongodb-10gen

4. Arrancamos el servidor con: sudo service mongodb start

Listo, ya tenemos el servidor de MongoDB instalado y funcionando.

Page 14: Que es MongoDB

Fácil de Instalar: Instalación Windows

La instalación sobre Windows es tan simple como bajar un Zip y descomprimirlo en un directorio.

Una vez tenemos los binarios de MongoDB descomprimidos en un directorio podemos instalarlo como un servicio de Windows o correrlo en la consola:

1. Correrlo en la consola:1. Creamos una carpeta donde se alojaran los datos (ejem c:\data\)2. Ejecutamos el mongod pasandole la carpeta:

mongod --dbpath c:\data\2. Instalarlo como servicio:

1. Creamos una carpeta donde se alojaran los datos (ejem c:\data\)2. Creamos un fichero de log (ejem: c\data\log\log.txt)3. Ejecutamos el mongod pasandole la carpeta, el log y la opcion de servicio:

mongod --dbpath c:\data\ --logpath c\data\log\log.txt --service

4. Buscamos el servicio Mongo DB en los servicios de windows y lo iniciamos

Listo, ya tenemos el servidor de MongoDB instalado y funcionando.

Page 15: Que es MongoDB

Sin Instalación: MongoDB en la nube

Hay varios proveedores que te ofrecen instancias gratuitas de MongoDB en la nube de manera que puedas hacer pruebas sin necesidad de tener instalada ninguna instancia de MongoDB.

• Mongolab te ofrece una instancia gratuita de hasta 500 megas: • https://mongolab.com/home

• Mongohq te ofrece una instancia gratuita de hasta 512 megas: • https://www.mongohq.com

Estas instancias gratuitas son mas que suficientes para las pruebas de desarrollo e incluso para pequeñas aplicaciones.