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
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.
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.
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.
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.
 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 MapReduce
La 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.
 Almacenamiento de archivos
MongoDB 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
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
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.
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
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.
Alumno:
Américo, Uriarte Quispe
Especialidad:
Ing. Sistemas e Informática
E-m@il:
americuq@gmail.com
MongoDB

MongoDB

  • 3.
    Introducción de MongoDB MongoDBes 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
  • 4.
    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.
  • 5.
    Concepto de MongoDB Elnombre 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.
  • 6.
    Características importantes deMongoDB  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.
  • 7.
    Características importantes deMongoDB  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.
  • 8.
     Replicación MongoDB soportael 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 MapReduce La 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.
  • 9.
     Almacenamiento dearchivos MongoDB 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
  • 10.
    MongoDB tiene driversoficiales 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
  • 11.
    Organización y sistema Laventaja 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.
  • 12.
    En Escritura •MongoDB esmá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
  • 13.
    Conclusión Final En conclusióncon 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.
  • 14.
    Alumno: Américo, Uriarte Quispe Especialidad: Ing.Sistemas e Informática E-m@il: americuq@gmail.com