Jean piere sarumo mongodb
Upcoming SlideShare
Loading in...5
×
 

Jean piere sarumo mongodb

on

  • 337 views

 

Statistics

Views

Total Views
337
Slideshare-icon Views on SlideShare
317
Embed Views
20

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 20

http://libretecperu.blogspot.com 20

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

    Jean piere sarumo mongodb Jean piere sarumo mongodb Presentation Transcript

    • ADMINISTRACION DE BASE DE DATOS UNIVERSIDAD PERUANA DE CIENCIAS E INFORMATICA jeanpier9910@gmail.com
    •  En informática, NoSQL (a veces llamado "no sólo SQL") es una amplia clase de sistemas de gestión de bases de datos que difieren del modelo clásico del sistema de gestión de bases de datos relacionales (RDBMS) en aspectos importantes, el más destacado que no usan SQL como el principal lenguaje de consultas.  Los sistemas de bases de datos NoSQL crecieron con las principales compañías de Internet, como Google, Amazon, Twitter y Facebook. Estas compañías se dieron cuenta que el rendimiento y sus propiedades de tiempo real eran más importantes que la coherencia, en la que las bases de datos relacionales tradicionales dedicaban una gran cantidad de tiempo de proceso. (NoSQL)
    • Introducción  El nombre de MongoDB proviene de “humongous”, que significa enorme en inglés, y es una base de datos NoSQL software libre, escalable y de alto rendimiento escrita en C++.  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.  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.
    •  MongoDB es un sistema de base de datos multiplataforma orientado a documentos, de esquema libre. Esto significa que cada entrada o registro puede tener un esquema de datos diferente, con atributos o “columnas” que no tienen por qué repetirse de un registro a otro.  Está escrito en C++, lo que le confiere cierta cercanía al bare metal, o recursos de hardware de la máquina, de modo que es bastante rápido a la hora de ejecutar sus tareas. Además, está licenciado como GNUAGPL 3.0, de modo que se trata de un software de licencia libre. Funciona en sistemas operativos Windows, Linux, OS X y Solaris.
    •  En MongoDB, cada registro o conjunto de datos se denomina documento. Los documentos se pueden agrupar en colecciones, las cuales se podría decir que son el equivalente a las tablas en una base de datos relacional (sólo que las colecciones pueden almacenar documentos con muy diferentes formatos, en lugar de estar sometidos a un esquema fijo).  Una base de datos en MongoDB tiene diferentes conceptos a una base de datos regular como MySQL. Cada registro o unidad básica de datos se le denomina documento. Y cada conjunto de documentos, que formarían una tabla, se le llama colección.  Un documento se podría comprar con el concepto de fila y una colección a una tabla.
    • Características:  Software abierto  Escalable  Alta disponibilidad (puede trabajar en modo maestro- esclavo)  Orientado a documentos (no es relacional)  Simplicidad basada en esquemas de tipo JSON  Consultas dinámicas
    • Características:  Completo soporte de índices, incluyendo índices secundarios, objetos internos, arrays (cadenas).  Rápido, actualizaciones in situ.  Almacenamiento eficiente de datos binarios en objetos largos, tales como vídeos o fotografías  Replicación y soporte a prueba de fallos  Auto fragmentación para escalabilidad a nivel de nube.  Acceso y gestión mediante drivers en multitud de lenguajes de programación: C, C++, C#, .NET, Java, JavaScript, PHP, Phyton, Ruby, Perl, et c.  Soporte, formación y consultoría.
    • Formato de los documentos:  Los distintos documentos se almacenan en formato BSON, o Binary JSON, que es una versión modificada de JSON que permite búsquedas rápidas de datos. Para hacernos una idea, BSON guarda de forma explícita las longitudes de los campos, los índices de los arrays, y demás información útil para el escaneo de datos. Es por esto que, en algunos casos, el mismo documento en BSON ocupa un poco más de espacio de lo que ocuparía de estar almacenado directamente en formato JSON.  Pero una de las ideas claves en los sistemas NoSQL es que el almacenamiento es barato, y es mejor aprovecharlo si así se introduce un considerable incremento en la velocidad de localización de información dentro de un documento.
    • Colecciones  Una colección nos ayuda a organizarnos de manera mucho más fácil y rápida. Código : Notas importantes - Mantener diferentes tipos de documentos en una misma colección es de masoquistas. - Un string vacío no es un nombre válido, así como no se puede utilizar un string con signo de dolar. - Es más rápido obtener una lista de documentos que mantengan la misma estructura. - Siempre planea la estructura de tus colecciones y documentos antes de comenzar.
    •  Cómo consultar los datos: Sin entrar demasiado en detalles acerca de todas las posibilidades que MongoDB nos ofrece para consultar los datos almacenados, sí quisiera nombrar algunas de ellas, para hacer notar que no estamos frente a un sistema simple de almacenamiento de pares clave-valor.  En primer lugar, MongoDB nos permite utilizar funciones Map y Reduce escritas en Javascript para seleccionar los atributos que nos interesan de los datos, y agregarlos (unificarlos, simplificarlos) en la manera deseada, respectivamente. Esto es algo habitual en muchos sistemas NoSQL, y en algunos casos es incluso la única forma posible de consultar datos.
    • Trabajando con documentos  Para insertar documentos en nuestra BD usaremos la orden “db.coleccion.insert”:  MongoDB soporta varios tipos para sus datos. Tenemos los típicos del formato JSON (string, integer, boolean, double, null, array, object) asi como varios especiales (date, object id, binary data, regular expression, code).  Como tenemos un interprete Javascript todo para nosotros podemos hacer como como esta:
    •  Para poder consultar los datos de nuestra BD podemos usar la orden “db.coleccion.find”:  En caso de que tengamos muchos resultados MongoDB solo muestra los 10 primeros y podemos ir viendo los grupos restantes con la orden “it”.
    •  Aquí es interesante ver como MongoDB nos ha generado un campo “_id” para cada una de los documentos insertados. Este campo id es autogenerado por defecto y está indexado (hace que las búsquedas por él sean mucho mas rápidas). Si ya tenemos un código que nos pueda servir como identificador se lo podemos pasar en la inserción y MongoDB lo usará.
    •  Lo interesante es que a find le podemos pasar un documento de forma que MongoDB nos devolverá aquellos documentos cuyos valores coincidan. Esto es lo que se conoce como “query by example”.  Un detalle importante es que podemos utilizar el tipo “regular expression” en estas consultas:
    •  En MongoDB se pueden utilizar consultas al valor de un atributo específico. Por ejemplo, podemos capturar el post que tiene un determinado título:  El valor a consultar puede estar anidado en un tipo de datos más completo en el atributo del documento (por ejemplo, como valor de un hash asociado al atributo, o como el valor de uno de los ítems de un array). Se utiliza un punto como separador de los nombres de las claves de los diferentes hashes que hay que recorrer hasta llegar al valor deseado. Por ejemplo, la siguiente consulta devolvería todos los posts escritos por un determinado autor:
    •  Y esta otra los posts etiquetados con MongoDB:  El hash utilizado como conjunto de condiciones que deben cumplir los documentos a devolver puede incluir operadores de muy diversos tipos, Algunos de ellos son:  $all : Para indicar que el array almacenado como valor del atributo debe tener los mismos elementos que el proporcionado en la condición.  $exists : Para comprobar que el atributo existe en el documento.  $mod : Para comprobar el resto de una división del valor del atributo por un número.  $ne : Para indicar que el valor no puede ser el proporcionado.  $in : Para indicar que el valor debe estar entre alguno de los proporcionados.  $nin : Contrario de $in.
    •  Ejemplo
    •  Por ejemplo, si tenemos un blog podemos guardar los comentarios dentro de cada post (esto iría en una colección llamada “posts”):  Lo bueno es que podemos realizar consultas sobre los datos de estos documentos embebidos de forma que podemos obtener los posts que contengan un comentario hecho por Manolo:
    • Manejo de datos desde la shell  Para hacer una inserción y guardarla escribimos lo siguiente para obtener algo parecido a pepito = tontito… Código :  Y para imprimir el contenido Código :
    • Ejemplo de uso en Java:  Lo primero es descargar e añadir al classpath ”el driver .jar necesario para poder conectar a la base de datos”.  A continuación un ejemplo de conexion a la base de datos y de diferentes acciones, el ejemplo esta basado en la documentación oficial.