SlideShare une entreprise Scribd logo
1  sur  20
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.

Contenu connexe

Tendances (20)

MongoDB
MongoDBMongoDB
MongoDB
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Mongo db
Mongo dbMongo db
Mongo db
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Instalacion nosql "mongodb"
Instalacion nosql "mongodb"Instalacion nosql "mongodb"
Instalacion nosql "mongodb"
 
Diapositva
DiapositvaDiapositva
Diapositva
 
Base de datos rodrigo
Base de datos rodrigoBase de datos rodrigo
Base de datos rodrigo
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Diapositivas de base de datos
Diapositivas de base de datosDiapositivas de base de datos
Diapositivas de base de datos
 
Base de datos no sql
Base de datos no sqlBase de datos no sql
Base de datos no sql
 
JSON
JSONJSON
JSON
 
Bases de datos
Bases de datos Bases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
Pricipales bases de datos
Pricipales bases de datosPricipales bases de datos
Pricipales bases de datos
 
NO SQL y Cassandra
NO SQL y CassandraNO SQL y Cassandra
NO SQL y Cassandra
 
Base de datos
Base de datosBase de datos
Base de datos
 

Similaire à Jean piere sarumo mongodb

Similaire à Jean piere sarumo mongodb (20)

Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
 
Sgbd mongodb
Sgbd   mongodbSgbd   mongodb
Sgbd mongodb
 
Mongo db
Mongo dbMongo db
Mongo db
 
Mongo db
Mongo dbMongo db
Mongo db
 
Mongo db
Mongo dbMongo db
Mongo db
 
Tipos de bases de datos por Juan del Ángel Oláez González
Tipos de bases de datos por Juan del Ángel Oláez GonzálezTipos de bases de datos por Juan del Ángel Oláez González
Tipos de bases de datos por Juan del Ángel Oláez González
 
Base de datos jennifer garcia montiel
Base de datos jennifer garcia montielBase de datos jennifer garcia montiel
Base de datos jennifer garcia montiel
 
Act 04 rivera_alfredo_bd
Act 04 rivera_alfredo_bdAct 04 rivera_alfredo_bd
Act 04 rivera_alfredo_bd
 
Base de datos
Base de datosBase de datos
Base de datos
 
Rila
RilaRila
Rila
 
Base datos
Base datos Base datos
Base datos
 
Base de datos ventajas y desventajas
Base de datos ventajas y desventajasBase de datos ventajas y desventajas
Base de datos ventajas y desventajas
 
Semana 3 Mongodb
Semana 3   MongodbSemana 3   Mongodb
Semana 3 Mongodb
 
Act. 4 screencast y base de datos norma
Act. 4 screencast y base de datos normaAct. 4 screencast y base de datos norma
Act. 4 screencast y base de datos norma
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
 
Base de datos
Base de datosBase de datos
Base de datos
 
1 tutorial de mongo db
1 tutorial de mongo db1 tutorial de mongo db
1 tutorial de mongo db
 
Base de datos
Base de datosBase de datos
Base de datos
 
Presentacion de power point
Presentacion de power pointPresentacion de power point
Presentacion de power point
 
Presentacion de power point
Presentacion de power pointPresentacion de power point
Presentacion de power point
 

Jean piere sarumo mongodb

  • 1. ADMINISTRACION DE BASE DE DATOS UNIVERSIDAD PERUANA DE CIENCIAS E INFORMATICA jeanpier9910@gmail.com
  • 2.  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)
  • 3. 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.
  • 4.  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.
  • 5.  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.
  • 6. 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
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10.  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.
  • 11. 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:
  • 12.  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”.
  • 13.  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á.
  • 14.  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:
  • 15.  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:
  • 16.  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.
  • 18.  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:
  • 19. 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 :
  • 20. 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.