• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MongoDB
 

MongoDB

on

  • 664 views

 

Statistics

Views

Total Views
664
Views on SlideShare
664
Embed Views
0

Actions

Likes
1
Downloads
17
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    MongoDB MongoDB Presentation Transcript

    • Introducción de MongoDBMongoDB es un sistema de bases de datos NoSQL orientado adocumentos, a diferencia de MySQL, este no es una base de datosrelacional. Es open source, lleva entre nosotros desde el 2009. Estáescrito en C++ y tiene intención de aumentar la escalabilidad de unsistema. Es compatible con Linux, OS X,Windows y Solaris.Además de MongoDB existen otros sistemas NoSQL como porejemplo Cassandra, CouchDB, Redis, Riak, Membase, Neo4j yHBase.Considera que MongoDB fue diseñado para ser un motor debúsqueda sobre aplicaciones en la nube, debes de ser bienespecífico al momento de elegir un sistema NoSQL. Esto porquetienen diferentes funciones o están optimizados para diferentestareas: Como Cassandra que fue diseñado para búsquedasen Facebook
    • Concepto de MongoDBPrimero, ¿Qué significa NoSQL? El término NoSQL se utilizapara indicar que dicha base de datos no utiliza el sistemarelacional tan ampliamente utilizado. Las bases de datosNoSQL no se construyen sobre tablas y normalmentetampoco utilizan el lenguaje SQL para realizar consultas.Muchos sistemas NoSQL utilizan una arquitectura distribuiday tolerante a fallos, lo que permite mantener los datos envarios servidores de forma redundante. De esta forma esbastante fácil escalar el sistema añadiendo más servidores.Normalmente este tipo de base de datos escalahorizontalmente permitiendo administrar grandes cantidadesde datos.
    • Concepto de MongoDBEl nombre de MongoDB proviene de “humongous”, que significaenorme en inglés, y es una base de datos NoSQL software libre.MongoDB es un DBMS o mejor conocido como motor de base dedatos orientado a documentos, escalable y de alta performance. Elmotor 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 onlinede la más variada índole, por ejemplo como parte de la infraestructurade Grooveshark, el servicio de streaming de música online.
    • Características importantes de MongoDB Consultas Ad hocMongoDB soporta la búsqueda por campos, consultas derangos y expresiones regulares. Las consultas puedendevolver un campo específico del documento pero tambiénpuede ser una función JavaScript definida por el usuario. IndexaciónCualquier campo en un documento de MongoDB puede serindexado, al igual que es posible hacer índices secundarios. Elconcepto de índices en MongoDB es similar a los encontradosen base de datos relacionales.
    • Características importantes de MongoDB Balanceo de cargaMongoDB se puede escalar de forma horizontal usando elconcepto de “shard”.10 El desarrollador elije una llave shard, lacual determina cómo serán distribuidos los datos en unacolección. Los datos son divididos en rangos (basado en lallave shard) y distribuidos a través de múltiples shard. Un shardes un maestro con uno o más esclavos.MongoDB tiene la capacidad de ejecutarse en múltipleservidores, balanceando la carga y/o duplicando los datos parapoder mantener el sistema funcionando en caso que exista unfallo de hardware. La configuración automática es fácil deimplementar bajo MongoDB y nuevas máquinas pueden seragregadas a MongoDB con el sistema de base de datoscorriendo.
    •  ReplicaciónMongoDB soporta el tipo de replicación maestro-esclavo. El maestropuede ejecutar comandos de lectura y escritura. El esclavo puedecopiar los datos del maestro y sólo se puede usar para lectura o paracopia de seguridad, pero no se pueden realizar escrituras. El esclavotiene la habilidad de poder elegir un nuevo maestro en caso del que secaiga el servicio con el maestro actual. Agregación MapReduceLa función MapReduce puede ser utilizada para el procesamiento porlotes de datos y operaciones de agregación. Esta función permite quelos usuarios puedan obtener el tipo de resultado que se obtienecuando se utiliza el comando SQL.
    •  Almacenamiento de archivosMongoDB puede ser utilizado con un sistema de archivos, tomando laventaja de la capacidad que tiene MongoDB para el balanceo de cargay la replicación de datos utilizando múltiples servidores para elalmacenamiento de archivos. Esta función (que es llamada GridFS11 )está incluida en los drivers de MongoDB y disponible para los lenguajesde programación que soporta MongoDB. Esta base de datos exponefunciones para la manipulación de archivos y contenido a losdesarrolladores.En un sistema con multiple servidores, los archivos pueden serdistribuidos y copiados entre los mismos varias veces y de una formatransparente, de esta forma se crea un sistema eficiente que manejafallos y balanceo de carga. Ejecución de JavaScript del lado del servidorMongoDB tiene la capacidad de realizar consultas utilizandoJavaScript, haciendo que estas sean enviadas directamente a la basede datos para ser ejecutadas
    • MongoDB tiene drivers oficiales para lossiguientes lenguajes de programación: C C++ C# / .NET Erlang Haskell Java JavaScriptLenguaje de programación soportado node.JS Perl PHP Python Ruby Scala
    • Organización y sistemaLa ventaja que tiene MongoDB ante las bases de datosracionales es la velocidad de consulta. Esto se logragracias a que los documentos son almacenados enformato BSON, que es una versión modificada del yaconocido JSON.BSON pesa un poco más que un JSON regular, perogracias a que este guarda longitudes de campos, índicesde arrays, entre otras cosas, es mucho más rápido (ymenos 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 vecesmás rápido. Para un número de escrituras elevado (el tests dela 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% y30% 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 FinalEn conclusión con este pequeño repaso de lo que es una base dedatos relacional y las base de datos no relacionales podemos irrazonando en que situaciones se puede o no usar NoSQL, realmentese podría usar para todo… Pero también queda de parte de losdesarrolladores realizar una aplicación que haga un buen uso deMongoDB o alguna otra base de datos no relacional.También se dice que es una versión libre que cuenta con más de5000 usuarios. MongoDB puede ser usado para: la administración decontenido, Inteligencia Operacional, E-Commerce, Administración dedatos de Usuarios y como fuentes de datos de alto volumen.Muchas organizaciones en todo el mundo lo utilizan, por mencionaralgunas: Foursquare, Disney, The New York Times, MTV, BlinkMedia, Ericsson, Radian6, entre otras.
    • Alumno:Américo, Uriarte QuispeEspecialidad:Ing. Sistemas e InformáticaE-m@il:americuq@gmail.com