15
UNIVERSIDAD PERUANA DE CIENCIAS E INFORMÁTICA FACULTAD DE INGENIERIA ADMINISTRACIÓN DE BASE DE DATOS

MongoDB

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: MongoDB

UNIVERSIDAD PERUANA DE CIENCIAS E INFORMÁTICA

FACULTAD DE INGENIERIA

ADMINISTRACIÓN DE BASE DE DATOS

Page 2: MongoDB

Base de datos no Relacional NoSQL

Page 3: MongoDB

Introducción de MongoDB

MongoDB es un sistema de bases de datos NoSQL orientado a documentos, a diferencia de MySQL, este no es una base de datos relacional. Es open source, lleva entre nosotros desde el 2009. Está escrito en C++ y tiene intención de aumentar la escalabilidad de un sistema. Es compatible con Linux, OS X,Windows y Solaris.

Además de MongoDB existen otros sistemas NoSQL como por ejemplo Cassandra, CouchDB, Redis, Riak, Membase, Neo4j y HBase.

Considera que MongoDB fue diseñado para ser un motor de búsqueda sobre aplicaciones en la nube, debes de ser bien específico al momento de elegir un sistema NoSQL. Esto porque tienen diferentes funciones o están optimizados para diferentes tareas: Como Cassandra que fue diseñado para búsquedas en Facebook

Page 4: MongoDB

Concepto de MongoDB

Primero, ¿Qué significa NoSQL? El término NoSQL se utiliza para indicar que dicha base de datos no utiliza el sistema relacional tan ampliamente utilizado. Las bases de datos NoSQL no se construyen sobre tablas y normalmente tampoco utilizan el lenguaje SQL para realizar consultas.

Muchos sistemas NoSQL utilizan una arquitectura distribuida y tolerante a fallos, lo que permite mantener los datos en varios servidores de forma redundante. De esta forma es bastante fácil escalar el sistema añadiendo más servidores. Normalmente este tipo de base de datos escala horizontalmente permitiendo administrar grandes cantidades de datos.

Page 5: MongoDB

Concepto de MongoDB

El nombre de MongoDB proviene de “humongous”, que significa enorme en inglés, y es una base de datos NoSQL software libre.

MongoDB es un DBMS o mejor conocido como motor de base de datos orientado a documentos, escalable y de alta performance. El motor de base de datos MongoDB fue escrito totalmente en C++ y está liberado como Open Source.

Este motor de DB es actualmente utilizado por muchos servicios online de la más variada índole, por ejemplo como parte de la infraestructura de Grooveshark, el servicio de streaming de música online.

Page 6: MongoDB

Características importantes de MongoDB

Consultas Ad hoc MongoDB soporta la 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 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.

Page 7: MongoDB

Características importantes de MongoDB

Balanceo de carga MongoDB se puede escalar de forma horizontal usando el concepto de “shard”.10 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ú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.

Page 8: MongoDB

Replicación MongoDB soporta el tipo de replicación 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. El esclavo tiene la habilidad de poder elegir un nuevo maestro en caso del que se caiga el servicio con el maestro actual.

Agregación MapReduceLa función MapReduce puede ser utilizada para el procesamiento por lotes de datos y operaciones de agregación. Esta función permite que los usuarios puedan obtener el tipo de resultado que se obtiene cuando se utiliza el comando SQL.

Page 9: MongoDB

Almacenamiento de archivosMongoDB puede ser utilizado con un sistema de archivos, tomando la ventaja de la capacidad que tiene MongoDB para el balanceo de carga y la replicación de datos utilizando múltiples servidores para el almacenamiento de archivos. Esta función (que es llamada GridFS11 ) está incluida en los drivers de MongoDB y disponible para los lenguajes de programación que soporta MongoDB. Esta base de datos expone funciones para la manipulación de archivos y contenido a los desarrolladores. En un sistema con multiple 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. Ejecución de JavaScript del lado del servidor MongoDB tiene la capacidad de realizar consultas utilizando JavaScript, haciendo que estas sean enviadas directamente a la base de datos para ser ejecutadas

Page 10: MongoDB

MongoDB tiene drivers oficiales para los siguientes lenguajes de programación:

C C++ C# / .NET Erlang Haskell Java JavaScript

Lenguaje de programación soportado

node.JS Perl PHP Python Ruby Scala

Page 11: MongoDB

Organización y sistema

La ventaja que tiene MongoDB ante las bases de datos racionales es la velocidad de consulta. Esto se logra gracias a que los documentos son almacenados en formato BSON, que es una versión modificada del ya conocido JSON.

BSON pesa un poco más que un JSON regular, pero gracias a que este guarda longitudes de campos, índices de arrays, entre otras cosas, es mucho más rápido (y menos costoso), acceder a la información que se consulta.

Page 12: MongoDB

En Escritura

•MongoDB es más rápido en las operaciones de escritura.•Para operaciones de escritura sencillas es entre 2 y 4 veces más rápido. Para un número de escrituras elevado (el tests de la escritura de 30 millones de registros de acceso, por ejemplo) MongoDB duplica en rendimiento a MySQL.•En escrituras concurrentes MongoDB es más rápido (15% y 30% en nuestras pruebas)

•MongoDB es más rápido en las operaciones de lectura.•En lecturas concurrentes MongoDB es más rápido (15% y 40% en nuestras pruebas).

En Lectura

Page 13: MongoDB

Conclusión Final

En conclusión con este pequeño repaso de lo que es una base de datos relacional y las base de datos no relacionales podemos ir razonando en que situaciones se puede o no usar NoSQL, realmente se podría usar para todo… Pero también queda de parte de los desarrolladores realizar una aplicación que haga un buen uso de MongoDB o alguna otra base de datos no relacional.

También se dice que es una versión libre que cuenta con más de 5000 usuarios. MongoDB puede ser usado para: la administración de contenido, Inteligencia Operacional, E-Commerce, Administración de datos de Usuarios y como fuentes de datos de alto volumen.Muchas organizaciones en todo el mundo lo utilizan, por mencionar algunas:  Foursquare, Disney, The New York Times, MTV, Blink Media, Ericsson, Radian6, entre otras.

Page 14: MongoDB

Alumno:Américo, Uriarte Quispe

Especialidad:Ing. Sistemas e Informática

E-m@il:[email protected]

Page 15: MongoDB

Gracias