very large databases (vldb) (bases de datos muy grandes) · nosql - introducción las bases de...

32
Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica Very Large Databases (VLDB) (Bases de Datos Muy Grandes) Luis Valencia Cabrera ([email protected]) Research Group on Natural Computing Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla 09-01-2014, Bases de Datos, 3 o Grado en Estadística Luis Valencia Cabrera ([email protected]) Bases de Datos, 3 o Grado en Estadística Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Upload: others

Post on 30-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Luis Valencia Cabrera ([email protected])

Research Group on Natural ComputingDepartamento de Ciencias de la Computación e Inteligencia Artificial

Universidad de Sevilla

09-01-2014, Bases de Datos, 3o Grado en Estadística

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 2: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Índice

1 Introducción

2 Very Large Databases (VLDB)

3 Big Data

4 Big Data y NoSQL

5 NoSQL

6 MongoDB

7 Descarga e instalación

8 Práctica

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 3: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Índice

1 Introducción

2 Very Large Databases (VLDB)

3 Big Data

4 Big Data y NoSQL

5 NoSQL

6 MongoDB

7 Descarga e instalación

8 Práctica

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 4: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Introducción

Introducción (I)

El mundo en el que vivimos se encuentra en constante evolución, formamos parte de un

súper organismo sujeto a cambio.

Especialmente en el caso del ser humano, debido a las cotas de inteligencia que alcanza, al

hecho de ser un ser social y, a día de hoy, a la dimensión a la que ha llegado el fenómeno de

la globalización, el entorno que nos rodea, en muchos sentidos, cambia cada día.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 5: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Introducción

Introducción (II)

Si ponemos el foco en los aspectos tecnológicos, los cambios son aún más rápidos y

acuciantes, y tienen un reflejo directo en muchos aspectos de nuestras vidas. Sin ir más

lejos, la explosión de Internet se produjo aproximadamente a mediados de los 90, y el

impacto en la forma de hacer investigación, de tener acceso a información y conocimiento,

cambió radicalmente.

Fenómenos como Google, la Wikipedia, las redes sociales, Twitter, etc. han implicado en

los últimos años un nuevo cambio de escala en el empleo de las tecnologías de la

información, y un reto en cuanto a la actualización y la disponibilidad de enormes conjuntos

de información a través de la red.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 6: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Índice

1 Introducción

2 Very Large Databases (VLDB)

3 Big Data

4 Big Data y NoSQL

5 NoSQL

6 MongoDB

7 Descarga e instalación

8 Práctica

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 7: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Very Large Databases (VLDB)

Very Large Database (VLDB)

Definición

Las siglas VLDB (Very Large Databases) denotan a bases de datos que contienen un

número de tuplas extremadamente alto.

No tiene mucho sentido hablar de cifras concretas ya que este concepto va cambiando con

el tiempo, va evolucionando conforme aumenta la capacidad de almacenamiento de los

equipos personales, servidores, aplicaciones, la realidad que nos rodea, la evolución de

Internet, y del ámbito científico y empresarial. No obstante, a día de hoy se puede entender

como VLDB una base de datos del orden de terabytes, o mil millones de filas.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 8: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Very Large Databases (VLDB)

Very Large Database (VLDB) - Referencias

Algunas referencias útiles

http://www.softdevtube.com/2012/04/18/an-introduction-to-very-large-databases/

http://en.wikipedia.org/wiki/Very_large_database

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 9: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Índice

1 Introducción

2 Very Large Databases (VLDB)

3 Big Data

4 Big Data y NoSQL

5 NoSQL

6 MongoDB

7 Descarga e instalación

8 Práctica

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 10: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Big Data

Big Data

Los últimos años, meses, días, estamos asistiendo a una proliferación cada vez mayor de

publicaciones en la web relacionadas con Big Data.

Definición

Entendemos por Big Data a conjuntos de información enormes, que superan con mucho la

capacidad del software de gestión de bases de datos convencional para procesar los datos

en un tiempo razonable.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 11: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Big Data

Big Data - Referencias

Este término viene en algunos casos sustituyendo a VLDB, pero de forma más difundida y

correcta hace referencia a algunos órdenes de magnitud adicionales. Las dificultades o retos

a encarar en este tipo de tecnologías se centran en la captura, almacenamiento, búsqueda,

compartición, análisis y visualización de los datos.

Algunas referencias útiles

http://es.wikipedia.org/wiki/Big_data

http://online-behavior.com/analytics/big-data-intro

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 12: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Big Data

Big Data - Four V’s

En el marco de Big Data se viene imponiendo la terminología de las 4 V’s para resumir las

características fundamentales:

4 V’s

Volume Involucra grandes volúmenes de datos, pudiendo llegar al ordende petabytes, exabytes, etc.

Variety Big Data no se limita a información relacional o datosestructurados. Puede incluir datos no estructurados comoimágenes, vídeos, texto, audios, etc.

Velocity Se refiere a la velocidad a la que cambian los datos. Cuanto másalta sea ésta, más eficiente debería ser el sistems para podercapturar y analizar los datos. Perder cualquier punto importantepodría conllevar realizar un análisis de datos erróneo o unaeventual pérdida de parte de los mismos.

Veracity Significa veracidad, adhesión a la verdad. Se trata de un retodifícil de afrontar, como es asegurar la veracidad de una enormecantidad de datos, preservando la velocidad de cambio. Lasolución generalmente es mantener datos imprecisos o inciertos,posiblemente no actualizados, durante cierto margen temporal.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 13: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Big Data

Big Data - Referencias adicionales

A continuación se proporcionan algunas referencias adicionales.

Algunas referencias útiles

http://strata.oreilly.com/2012/01/what-is-big-data.html

http://blog.sqlauthority.com/2012/10/26/sql-server-introduction-to-big-data-guest-post/

http://mashable.com/2012/06/19/big-data-myths/

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 14: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Índice

1 Introducción

2 Very Large Databases (VLDB)

3 Big Data

4 Big Data y NoSQL

5 NoSQL

6 MongoDB

7 Descarga e instalación

8 Práctica

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 15: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Big Data y NoSQL

Big Data y NoSQL

Los enormes volúmenes de datos y las condiciones impuestas por las 4 V’s, referentes a

disponibilidad, frecuencia de actualización, etc, suponen un reto distinto de los encarados

cuando se concibieron los SGBD tradicionales de 1a, 2a y 3a generación.

En este contexto, a pesar de toda la potencia y robustez proporcionada por las bases de

datos relacionales, y la funcionalidad y capacidad de estandarización que nos proporcionan,

necesitamos acudir a nuevas soluciones. El modelo relacional implica la existencia de

muchas interrelaciones entre las entidades (tablas relacionales), lo que dificulta la

distribución de una base de datos entre múltiples nodos servidores, suponiendo por tanto

una barrera para la escalabilidad. Además, la necesidad de realizar joins sobre un

conjunto de tablas con miles de millones de registros conlleva una pérdida de eficiencia

cuando hablamos de volúmenes tan grandes.

Las razones anteriores implican la aparición de distintas alternativas

dentro de lo que se conoce como NoSQL, que veremos a continuación.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 16: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Big Data y NoSQL

Big Data y NoSQL - Referencias

Algunas referencias útiles

http://blog.movilforum.com/big-data-nosql-que-paso-con-las-bbdd/

http://www.datastax.com/resources/webinars/nosql-for-bigdata

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 17: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Índice

1 Introducción

2 Very Large Databases (VLDB)

3 Big Data

4 Big Data y NoSQL

5 NoSQL

6 MongoDB

7 Descarga e instalación

8 Práctica

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 18: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

NoSQL

NoSQL - Introducción

Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo

relacional, para conseguir un rendimiento extremo en bases de datos enormes, a través de

un modelo basado fundamentalmente en estructuras de datos planas (evitando la

amalgama de interrelaciones existentes en BD relacionales) y en distribución a través de

escalabilidad horizontal (muchos nodos servidores).

Si bien la variedad de modelos e implementaciones es muy grande (al contrario que la

estandarización presente en BD relacionales basadas en SQL), existen básicamente 4 tipos

de bases de datos NoSQL:

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 19: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

NoSQL

NoSQL - Tipos

Clave-valor Forma mas típica, como un HashMap donde cada elemento esta identificado por una clave única, permitiendo la recuperaciónde la información de manera muy rápida. El tipo de contenido no es importante. Son muy eficientes para lecturas y escrituras,y se pueden escalar fácilmente particionando los valores de acuerdo a su clave (por ejemplo, los de clave entre 1 y 1000 vana un servidor, los de 1001 a 2000 a otro, etc.) Dentro de estas bases de datos podemos encontrar a BigTable de Google,SimpleDB de Amazon, Cassandra (usada por Facebook), Hadoop, Riak, Voldemort y MemcacheDB entre otras.

Documentos Almacenan la información como un documento (generalmente con estructura simple como JSON o XML) y con una claveúnica. Similar a las anteriores, pero el fichero generado puede ser entendido, y por tanto el servidor puede hacer operacionescon ellos. Varias de sus implementaciones permiten consultas muy avanzadas sobre los datos, e incluso establecerrelaciones sin joins. Podemos encontrar a MongoDB y CouchDB entre las mas importantes de este tipo.

Columnas Guardan los valores en columnas en lugar de filas. Ganamos mucha velocidad en lecturas (al recuperar columnas concretasen lugar de toda la tabla), pero ineficiente para realizar escrituras. Se usa en aplicaciones con pocas escrituras en relación alas lecturas. Por ejemplo, Cassandra.

Grafos Almacenan la información como grafos donde las relaciones entre los nodos son lo más importante. Muy útiles pararepresentar información de redes sociales. Las relaciones pueden tener atributos y permiten consultas directas a ellas, siendomucho más eficiente navegar entre estas relaciones que en un modelo relacional. Sólo son aprovechables si la información sepuede representar fácilmente como una red.Encontramos a neo4j entre otras.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 20: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

NoSQL

NoSQL - Referencias

Algunas referencias útiles

Curso NoSQL, MongoDB, PHP de 0utkast

http://codecriticon.com/?p=281

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=introduccion_bases_de_datos_nosql

http://en.wikipedia.org/wiki/NoSQL

http://newtech.about.com/od/databasemanagement/a/Nosql.htm

http://www.itbusinessedge.com/cm/blogs/lawson/beyond-hadoop-understanding-big-data-options/?cs=49833

http://bosqueviejo.net/2012/04/25/cassandra-la-nosql-de-facebook/

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 21: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Índice

1 Introducción

2 Very Large Databases (VLDB)

3 Big Data

4 Big Data y NoSQL

5 NoSQL

6 MongoDB

7 Descarga e instalación

8 Práctica

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 22: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

MongoDB

MongoDB

Descripción

MongoDB es un sistema de base de datos multiplataforma orientado a documentos, de

esquema libre (cada registro puede tener un esquema diferente, con atributos distintos de

un registro a otro).

Cada registro se denomina documento. Los documentos se pueden agrupar en

colecciones (“equivalente” a tablas en una BD relacional, pero pudiendo almacenar

documentos con muy diferentes formatos, sin esquema fijo). Se pueden crear índices

para algunos atributos de los documentos, manteniendo una estructura interna eficiente

para el acceso a la información por los contenidos de estos atributos.

Destaca por su velocidad y su rico pero sencillo sistema de consulta de los contenidos de

la base de datos. Tiene un buen equilibrio entre rendimiento y funcionalidad,

incorporando muchos de los tipos de consulta que utilizaríamos en un sistema relacional,

pero sin sacrificar el rendimiento.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 23: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

MongoDB

MongoDB - Almacenamiento

Formato de los datos

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.

Guarda de forma explícita longitudes de campos, índices de arrays, y otra información útil

para el escaneo de datos. Por ello ocupa incluso algo más espacio que en formato JSON.

Pero como premisa de NoSQL el almacenamiento es barato, y mejor aprovecharlo para

incrementar en velocidad de localización de información dentro de un documento.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 24: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

MongoDB

MongoDB - Referencias

Algunas referencias útiles

Curso NoSQL, MongoDB, PHP de 0utkast

http://www.genbetadev.com/bases-de-datos/una-introduccion-a-mongodb

http://en.wikipedia.org/wiki/MongoDB

http://www.slideshare.net/willshulman/mongodb-its-not-just-about-big-data

http://docs.mongodb.org/manual/installation/

http://docs.mongodb.org/manual/tutorial/getting-started/

http://docs.mongodb.org/manual/reference/sql-comparison/

http://docs.mongodb.org/manual/reference/javascript/

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 25: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Índice

1 Introducción

2 Very Large Databases (VLDB)

3 Big Data

4 Big Data y NoSQL

5 NoSQL

6 MongoDB

7 Descarga e instalación

8 Práctica

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 26: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Descarga e instalación

Descarga e instalación

Descarga

MongoDB es multiplataforma, luego la instalación dependerá de las características del

S.O. destino. Está disponible para su descarga en MongDB downloads. Consiste en un

archivo zip, que podremos descargar y descomprimir donde queramos (en la práctica

realizada descomprimimos en C: \ y renombramos la carpeta como mongodb).

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 27: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Índice

1 Introducción

2 Very Large Databases (VLDB)

3 Big Data

4 Big Data y NoSQL

5 NoSQL

6 MongoDB

7 Descarga e instalación

8 Práctica

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 28: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Práctica

Ejecución del servidor y el cliente

El servidor de base de datos de MongoDB (contiene el SGDB) se lanza mediante el

programa ejecutable mongod.exe. Para ello, vamos a la línea de comandos (símbolo

del sistema), a través de Inicio → Ejecutar → cmd . Una vez allí, navegamos hasta la

carpeta bin dentro de la carpeta mongodb (recordemos, para ir a la carpeta superior

tecleamos cd.., y para entrar en una carpeta tecleamos cd nombreCarpeta, luego para ir a

la carpeta que deseamos podemos teclear C : \mongodb\bin). Una vez en la carpeta bin,

tecleamos mongod , y con ello se lanza el servidor.

El proceso para lanzar el cliente es muy similar. Abrimos otra línea de comandos, sin cerrar

la del servidor, hacemos lo mismo que antes, y en el último paso lanzamos mongo. En ese

momento estamos listos para lanzar órdenes contra la base de datos.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 29: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Práctica

Primeros pasos con MongoDB - Bases de datos

Una vez hemos arrancado nuestro cliente, mongo, apuntando a nuestro servidor debase de datos, mongod, debemos seleccionar una base de datos con la quetrabajar.

Para ver las bases de datos disponibles en nuestro servidor mongod, tecleamos

show dbs.

Podemos seleccionar una haciendo: use mydb, de forma que si no existe la base de

datos mydb, ésta será creada automáticamente. No es necesario por tanto una

declaración explícita de creación de la base de datos.

Si necesitamos acudir a la ayuda del sistema para consultar alguna funcionalidad

podemos hacerlo mediante help, o a la ayuda de una determinada función mediante

nombrefuncion.help().

Para una visión más detallada de las funciones permitidas, consultar la

referencia del lenguaje admitido por MongoDB.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 30: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Práctica

Primeros pasos con MongoDB - Colecciones

Una colección en MongoDB sería el “equivalente” a una tabla en modelo relacional,con las diferencias comentadas. Para crear una colección, no es necesario definirexplícitamente el nombre de la colección y su estructura, su esquema, sino que segenerará y actualizará automáticamente conforme vayamos insertando registros(documentos en su terminología) en la base de datos.

Para insertar un documento en la base de datos, podemos hacer:

db.cosas.insert({v : 27}).También podríamos hacer una asignación de los datos a una variable (medianteJavascript), y posteriormente insertarla. Por ejemplo, podemos lanzar las siguienteslíneas declarando variables j y k, para posteriormente insertarlas en una coleccióncosas (pre-existente o nueva, indistintamente):

j = { name : "mongo" }k = { x : 3, n : 5 }db.cosas.insert( j )db.cosas.insert( k )

Podemos ver las colecciones existentes mediante: show collections.

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 31: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Práctica

Primeros pasos con MongoDB - Consultas

Para realizar una consulta y poder así ver los documentos insertados, hacemos:db.cosas.find(), que devolverá todos los documentos de la coleccióncosas. Lo anterior devolverá los 3 registros introducidos, sin ningún criterio de filtroestablecido, de forma similar a la siguiente:

{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "v" : 27 }{ "_id" : ObjectId("4c2209f9f3924d31102bd84b"), "name" : "mongo" }{ "_id" : ObjectId("4c2209fef3924d31102bd84c"), "x" : 3 , "n" : 5 }

También podríamos consultar documentos por algún criterio, como por ejemplo

haciendo: db.cosas.find( { name : "mongo"} ), que

devolverá el documento cuyo name sea igual a “mongo”.

Para devolver un único documento: db.cosas.findOne(). Y para limitar el

número: db.cosas.find().limit(3).

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)

Page 32: Very Large Databases (VLDB) (Bases de Datos Muy Grandes) · NoSQL - Introducción Las bases de datos NoSQL proporcionan diferentes soluciones no basadas en modelo relacional, para

Introducción Very Large Databases (VLDB) Big Data Big Data y NoSQL NoSQL MongoDB Descarga e instalación Práctica

Práctica

Primeros pasos con MongoDB - Bucles e iteradores

Podemos escribir bucles de tipo for o while desde el cliente de MongoDB. Por

ejemplo, para añadir una serie de documentos en la colección cosas:

for (var i = 1; i <= 20; i++) db.cosas.insert( { x : 4 , j : i } ).También podemos declarar un cursor en una variable, y recorrelo con un iterador:

var c = db.cosas.find()while ( c.hasNext() ) printjson( c.next() )

Esto mostrará un número máximo de documentos, por defecto 20, si bien ese límite se

puede modificar; una vez mostrados los primeros podremos escribir it para ver más

documentos.También podemos acceder a una posición del array de resultados al que hacereferencia la variable:

var c = db.cosas.find()printjson( c [ 4 ] )

Luis Valencia Cabrera ([email protected]) Bases de Datos, 3o Grado en Estadística

Very Large Databases (VLDB) (Bases de Datos Muy Grandes)