Desarrollo y servicios web Luisa Fernanda Rincón Pérez 2016-1.

1 Desarrollo y servicios web Luisa Fernanda Rincón Pérez ...
Author: Marina Ana López Moya
0 downloads 0 Views

1 Desarrollo y servicios web Luisa Fernanda Rincón Pérez 2016-1

2 Sesión 24. Bases de datos NOSQL – Introducción MongoDB Luisa Fernanda Rincón Pérez 2015-1

3 ¿Qué haremos hoy? 3. MongoDB 2. Tipos bases de datos NOSQL 1. Bases de datos NoSQL

4 ¿Para qué sirven las bases de datos NoSQL? Sirven para manejar y analizar grandes cantidades de información. No son un reemplazo de SQL tradicional. Son una alternativa Hace parte del concepto de BIGDATA -Clics de los usuarios -Selecciones anteriores

5 Textos Social media Mobile data Web site content Audio files Ejm llamadas de call centers ¿Qué datos no son estructurados?

6 Los datos en el mundo http://www.signiant.com/blog/move-large-files-fast- overcoming-the-challenge-of-transferring-huge-unstructured- data-sets/

7 ¿Cómo se guardaba la información en bd relacionales? En NOSQL no precisa de un sistema de tablas y relaciones entre ellas. Información distribuida en muchas tablas

8 ¿Por qué NoSQL? En el contexto de BigData los sistemas prescinden de la robustez de información en pos de una mayor agilidad en las consultas. Ahora se devuelven gran cantidad de datos con millones de registros involucrados. http://callcenterinfo.tmcnet.com/analysis/articles/156051-what-att-purchase-t- mobile-means.htm

9 NoSQL / Bd relacionales Dato para una bd NO-SQL Dato para una bd relacional

10 En las bases de datos tradicionales

11 ¿Qué son las bases de datos NOSQL? No cumplen las restricciones básicas del modelo relacional No permite JOINS No SCHEMAS No garantizan ACID (atomicidad, consistencia, aislamiento y durabilidad) No usan SQL como lenguaje de consulta No tienen un conjunto de tablas relacionadas entre sí de una manera ordenada y lógica. Sistemas de almacenamiento no relacionales Duplicidad de información SI, pero ya no es un problema https://www.ntt- review.jp/archive/ntttechnical.php?contents=ntr201212fa3.html

12 ¿Qué son las bases de datos NOSQL? https://www.ntt- review.jp/archive/ntttechnical.php?contents=ntr201212fa3.html

13 NoSQL características (BASE) Basic availability El almacén funciona la mayoría del tiempo gracias al almacenamiento distribuido y replicado, pero no necesariamente 24/7 Soft-sate Los almacenes no tienen porque ser consistentes ni sus réplicas en todo momento. El programador puede verificar esa consistencia. Ejm. Si se cambia la dirección de correo, es posible que algún nodo mantenga la información desactualizada Eventual consistency La consistencia se da eventualmente. En el caso del correo. En algún momento todos los nodos volverán a tener la misma información.

14 Propiedades adicionales bd NOSQL Particionamiento horizontal: Los documentos de la base de datos son partidos para que se encuentren en diferentes nodos. ( Balancear la carga entre los nodos) Sharding La misma información se replica en diferentes nodos para garantizar disponibilidad. Puede hacerse en forma de maestro-esclavo y peer-to-peer Replication

15

16 Taxonomía NoSQL Clave – valor DocumentosGrafos

17 Taxonomía NOSQL- clave/valor Registros repartidos entre muchos nodos Colección de pares clave/valor Cada clave es única Difícil de mantener clave única cuando aumentan los datos Soporta put, get y delete sobre los valores de la llave Es posible facilmente leer un registro de la base de datos pero no es posible buscar datos entre múltiples registros [1].

18 Taxonomía NOSQL- orientadas a documentos El valor asociado a cada llave contiene datos estructurados o semiestructurados, también llamados documentos Cada documento puede tener cualquier número de campos de cualquier valor Modelo de datos: colecciones de documentos (JSON, XML, BSON)

19 Taxonomía noSQL-orientadas a grafos Lo más importante son las relaciones de los datos. Modelan los datos como nodos y aristas de grafos. Útiles para redes sociales Ejemplo base de datos NOSQL Fuente. http://www.sitepoint.com/using-a-graph- database-with-ruby-part-i-introduction/ Sql RELACIONAL

20 Taxonomía noSQL-orientadas a grafos Tomado de [2]

21 Algunas bases de datos NOSQL

22 Se tienen datos no estructurados o semiestructados Es necesario cambiar los esquemas de la base de datos rápidamente de acuerdo a las necesidades del negocio. Es necesario consolidad muchas fuentes de datos sin adaptarlas al mismo esquema ¿Cuándo usar una base de dato NOSQL?

23 Mongo DB https://www.youtube.com/wat ch?v=CvIr-2lMLsk

24 ¿Qué es MongoDB? Base de datos NoSQL orientada a documentos Usa JSON -BSON y tiene un lenguaje propio de consultas. Implementado en C++ Usada por SourceForge, Bit.ly, Foursquare o GitHub URL: http://www.mongodb.org/http://www.mongodb.org/

25 ¿Por qué Mongo DB? Fuente: http://db-engines.com/en/ranking Motor NOSQL más popular actualmente

26 ¿Cuáles son las características de Mongo DB? Consultas en lenguaje propio Indexación como en bd relacionales JSON como formato de datos 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 – El esclavo tiene la habilidad de poder elegir un nuevo maestro en caso del que se caiga el servicio con el maestro actual. Escalabilidad horizontal que se refiere a aumentar el número de componentes.

27 Descargar MongoDB http://www.mongodb.org/ Guía de instalación: http://docs.mongodb.org/manual/installation/ http://www.mongodb.org/downloads

28 Instalación 1.Descargar, descomprimir, e instalar. Mongo DB requiere una carpeta Data para almacenar los datos C:\data\db. Directorio por defecto de los datos 2. Iniciar el proceso

29 Si no se creó la carpeta correcta aparece el error

30 Instalación 3. Abrir mongo.exe Mongo corre por defecto en el puerto 27017 Probar en consola

31 Conceptos básicos en MongoDB Representación Binaria de JSON

32 Utilidades de MongoDB Shell javascript interactivo de consulta mongo Estadísticas de una instancia de Mongo DB en ejecución mongostat Facilita importar/exportar datos mongo import/mongo export Exportar y restaurar en binario la base de datos mongodump/ mongorestore

33 Ejemplo documento MongoDB Fuente: http://docs.mongodb.org/manual/core/crud-introduction/

34 Ejemplo documento MongoDB (2) http://www.tutorialspoint.com/mongodb/mongodb_quick_ guide.htm

35 Algunos comandos de MongoDB ejecutados desde la consola de MongoDB Crear una base de datos Ver lista bases de datos ( se requiere insertar al menos un dato para ver en la lista serviciosWebDB)

36 Algunos comandos de MongoDB Insertar datos db.createCollection(“Students”) Crear colección db.createCollection Insertar datos en la colección Insertar datos db.Students.insert({name: “Daniel”, lastname: “lopez”})

37 ¿Cómo se insertan valores en MongoDB? Fuente: http://docs.mongodb.org/manual/core/crud-introduction/

38 Consultar colecciones disponibles db.getCollectionNames(); Algunos comandos de MongoDB

39 Se comportan como la cláusula WHERE de una instrucción SQL. Limitan los datos que se requieren. Son objetos JSON ¿Cómo se seleccionan datos para consultar/borrar/modificar/..? -- SELECTORES

40 ¿Qué selectores existen? Selector base{ field: value}{name: ‘pepe’} Selector filtro {field: {filtro:valor}} Filtros: $gt, $gte,$lt,$lt3,$ne {name: {$ne: ‘pepe’}} Otros filtros $exists: se encuentra el campo {name : {$exists: true }} $in: valores para hacer match. Arreglo {name: {$in: [‘nomUno, nomDos’] }} $or {name: {$or: {filro1}, {filtro2 }} Object_idBuscar por id {_id: ObjectId(‘id’)}

41 http://mongly.openmymind.net/tutorial/index Tutorial interactivo ¿Qué incluye? ConsultasInserción Condi-cional $exist Id de los docu- mentos Elimina- ción

42 ¿Cómo se usan los selectores en el comando find? Fuente: http://docs.mongodb.org/manual/core/crud-introduction/ Retorna un cursor que sirve para recorrer los documentos 1: Ascendente -1: Descendente 1: Ascendente -1: Descendente

43 ¿Cómo se hacen consultas en MongoDB? ¿Qué retornan las consultas? – Un cursor

44 Todo el documento – sobrescribe lo que tenía si no se indica el $set, sino se usa el $set se debe poner todo el documento de nuevo. Actualizar documentos - update

45 Si el documento no está se inserta, y si sí está se actualiza. Es el tercer parámetro de update y se envía en true Actualizar documentos upset db.unicorns.update({name: 'Ulysee'}, {$inc: {vampires: 1}}, true);

46 Al adicionar un true como cuarto parámetro se actualizan todos los documentos que cumplan con el criterio. Ejm Actualizar múltiples documentos ( Cuarto parámetro) db.unicorns.update({gender: 'm'},{ $push: { loves: 'orange'} },false, true);

47 db.collectionName.remove({selector}) ¿Cómo se borran datos? - remove No pasar selector remueve todos los elementos de la colección db.unicorns.remove({name:'Lois'}) db.unicorns.remove()

48 Conexión MongoDB en PHP Fuente: http://www.tutorialspoint.com/mongodb/mongodb_php.htm Descargar extensión, copiarla en la carpeta ext de php, adicionar línea en php.ini Conectar base de datos. Si no existe, Mongo crea una automáticamente

49 Crear una colección Ejecución programa

50 Insertar un documento

51 Imprimir todos los documentos de una colección

52 Borrar documentos

53 Otras funciones findOne(), save(), limit(), skip(), sort()

54 MongoLab Ahora mlab

55 ¿Qué es MLab?

56 Driver Mongo Conexión REST ¿Cómo se puede hacer la conexión?

57 [1] Enterprise NOSQL for dummies. Charlie Brooks. 2014. MarkLogic Special Edition. [2] Neo4j web site http://neo4j.com/http://neo4j.com/ [3] MongoDB web site https://www.mongodb.org/ https://www.mongodb.org/ [4] MongoLab. https://mongolab.comhttps://mongolab.com [5] http://nosql-database.org/http://nosql-database.org/ Referencias