NoSQL - MongoDB

Click here to load reader

  • date post

    15-Apr-2017
  • Category

    Technology

  • view

    113
  • download

    0

Embed Size (px)

Transcript of NoSQL - MongoDB

MongoDB

Bases de datos NoSQLMongoDBLic. Juan Azcurra/jazcurra

NoSQL

Introduccin

Eras de las Bases de DatosRDBMS para sistemas transaccionales.

Data Warehouse para aplicaciones analticas.

NoSQL para cualquier contenido.

Evolucin de las Bases de DatosPrevio a NoSQLPosterior a NoSQL

Evolucin de las Bases de Datos: RDBMSLos datos usualmente son almancenados en filas.Lenguaje estandarizado de consultas (SQL).El modelo de datos se define antes de poder agregar los datos.Las relaciones unen datos desde distintas tablas (joins).Los resultados son tablas.Oracle, MySql, PostgresSQL, MSSql, IBM DB/2Pros: transacciones con alto nivel de control de seguridad (ACID).

Cons: diseo previo, no son muy escalables.

Evolucin de las Bases de Datos: AnalyticalBasadas en un esquema estrella con una tabla central para cada evento.Optimizadas para anlisis de datos histricos.Uso de lenguaje MDX para consultar las medidas para cada categora de datos.Cognos, Hyperion, Microstrategy, Pentaho, SAP BO, Microsoft, Oracle.Pros: consultas rpidas para grandes volmenes.

Cons: no optimizado para transacciones y actualizaciones.

Evolucin de las Bases de Datos: Key ValueUtilizan valores claves para acceder a BLOBs (Binary Large Objects) de datos.Los valores pueden contener cualquier tipo de datos (imgenes, audio, video).Berkley DB, Memcache, DynamoDB, S3, Redis, RiakPros: escalable, API simple (insertar, leer, eliminar).Cons: no es posible consultar basado en el contenido del valor.

Evolucin de las Bases de Datos: Column-FamilyLa clave incluye una fila, familia de columna y nombre de columna.Almacenar blob versionado en una tabla.Las consultas se pueden realizar a nivel de fila, familia o nombre de columna.Cassandra, HBase, Hypertable, Apache Accumulo, Bigtable

Pros: escalable, permite versionado.

Cons: no es posible consultar basado en el contenido del valor.

Evolucin de las Bases de Datos: GraphLos datos son almacenados en una serie de nodos, relaciones y propiedades.Las consultas son a travs de los grafos.Ideal para cuando las relaciones entre los datos es clave: ej. Redes sociales.Neo4J, AllegroGraph, Bigdata triple store, InfiniteGraph, StarDog

Pros: consultas rpidas en la red.

Cons: Mala escalabilidad cuando el grafo no cabe en memoria, lenguaje de consulta especializado.

Evolucin de las Bases de Datos: DocumentLos datos son almacenados en jerarquas anidadas.Los datos se guardan como una unidad.Cualquier tem en el documento puede ser consultado.MarkLogic, MongoDB, CouchBase, CouchDB, eXist-db

Pros: capa de mapeo, ideal para bsqueda.

Cons: Complejo para implementar, incompatible con SQL.

SQL vs NoSQL

Document Database

MongoDB

MongoDB: Casos de estudio

MongoDB: ConceptosBase de Datos multiplataforma, que provee alta performance, alta disponibilidad y escalamiento automtico.

Un registro en MongoDB es un documento, el cual es una estructura compuesta de pares campo: valor. Los documentos son similares a los objetos JSON.

JSON: ConceptosJavaScript Object Notation, es un formato liviano para intercambio de datos.Es un formato de texto completamente independiente del lenguaje.Est constituido por dos estructuras:Coleccin de pares de nombre / valor.Una lista ordenada de valores.

object

JSON: ValuesUn valor puede ser una cadena de caracteres, un nmero, un boolean, un objeto o un array.

value

JSON: ArrayUn arreglo es una coleccin de valores,

JSON: Ejemplo{"nombre": "Juan Perez", "alumno": true, "carrera": "Licenciatura en Informatica", "materias": [ {"materia": "Laboratorio 2","nota": 7,"fecha": "2106-09-20"}, {"materia": "Base de Datos","nota": 9,"fecha": "2015-12-20"} ]}

18

MongoDB: Definiciones

MongoDB: DocumentsMongoDB almacena los registros de datos como documentos BSON (Binary JSON).El valor de un campo puede ser cualquier tipo de dato BSON, incluyendo otro documento, array o un array de documentos. Cada documento incluye un ID para identificarlo univocamente.

MongoDB: ModeladoAl momento de modelar un documento, se deben considerar la decisin de embeber los datos o utilizar referencias.

MongoDB: ModeladoEs posible embeber datos relacionados en una estructura simple o documento, estos esquemas son desnormalizados.Los modelos de datos embebidos se utilizan cuando:Existe una relacin contiene entre las entidades.Existe una relacin uno-a-muchos entre las entidades.

MongoDB: ModeladoRelaciones uno-a-uno entre entidades, es posible embeber directamente los datos en el documento.En el ejemplo, el domicilio del cliente est embebido en la entidad.

MongoDB: Modelado

Es posible resolver relaciones uno-a-muchos embebiendo la informacin en el documento.

MongoDB: ModeladoEs posible (para evitar la redundancia), resolver las relaciones uno-a-muchos utilizando referencias.

MongoDB: CRUDCreate Operation: db.collection.insert()db.collection.insertOne()db.collection.insertMany()

Read Operation:db.collection.find()Update Operation:db.collection.update()db.collection.updateOne()db.collection.updateMany()db.collection.replaceOne()

Delete Operation:db.collection.remove()db.collection.deleteOne()db.collection.deleteMany()

MongoDB: Correspondencia con SQL

MongoDB: Correspondencia con SQL

MongoDB: Correspondencia con SQL