un acercamiento a las bases de datos nosql

81
Un acercamiento a las bases de datos NoSQL MSc. Javier Guillot Jiménez Departamento de Programación Facultad de Matemática y Computación Universidad de La Habana 4 de octubre de 2015 MSc. Javier Guillot Jiménez Universidad de La Habana Un acercamiento a las bases de datos NoSQL 1

Upload: javier-guillot-jimenez

Post on 16-Apr-2017

589 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Un acercamiento a las bases de datos NoSQL

MSc. Javier Guillot Jiménez

Departamento de ProgramaciónFacultad de Matemática y Computación

Universidad de La Habana

4 de octubre de 2015

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 1

Sumario

1 IntroducciónContexto actualNecesidades actuales

2 NoSQLPrimeras propuestasEl término “NoSQL”SGBDs NoSQL

3 Conclusiones

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 2

Introducción

Sumario

1 IntroducciónContexto actualNecesidades actuales

2 NoSQLPrimeras propuestasEl término “NoSQL”SGBDs NoSQL

3 Conclusiones

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 3

Introducción Contexto actual

Contexto actual

Las aplicaciones han evolucionado mucho en los últimos 15 añosLas grandes compañías web han crecido vertiginosamente en:

Cantidad de usuarios concurrentesVolúmenes de datos procesados y almacenadosExplotación de datos semi-estructurados y no estructurados

La computación en la nube ha facilitado el acceso a servicios deInternet que explotan diversos e inmensos volúmenes de datos

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 4

Introducción Contexto actual

Big Users

Couchbase. (2014, junio). Why NoSQL? Disponible en: http://info.couchbase.com/whyNoSQL-LP.html (10/07/2014)

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 5

Introducción Contexto actual

Big UsersVentas mundiales de dispositivos según su tipo (miles de unidades)

Gartner, Inc. (2013, abril). Forecast: Devices by Operating System and User Type, Worldwide, 2010-2017, 1Q13 Update.

Consultado el 5 de agosto de 2014 desde http://www.gartner.com/resId=2396815

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 6

Introducción Contexto actual

The Internet of Things

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 7

Introducción Contexto actual

Big Data

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 8

Introducción Contexto actual

Big Data

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 8

Introducción Contexto actual

Big Data

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 8

Introducción Contexto actual

Big Data

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 8

Introducción Contexto actual

Big Data

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 8

Introducción Contexto actual

Big Data

Couchbase. (2014, junio). Why NoSQL? Disponible en: http://info.couchbase.com/whyNoSQL-LP.html (10/07/2014)

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 8

Introducción Contexto actual

Big Data

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 8

Introducción Contexto actual

Cloud computing

Couchbase. (2014, junio). Why NoSQL? Disponible en: http://info.couchbase.com/whyNoSQL-LP.html (10/07/2014)

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 9

Introducción Necesidades actuales

Necesidades actuales

¿Qué características deben tener los SGBDs de hoy día?

Sistemas cada vez más escalablesSistemas con modelos de datos más flexibles

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 10

Introducción Necesidades actuales

Necesidades actuales

¿Qué características deben tener los SGBDs de hoy día?

Sistemas cada vez más escalablesSistemas con modelos de datos más flexibles

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 10

Introducción Necesidades actuales

Escalamiento vertical vs. escalamiento horizontal

McCreary, D. (2013, 19 de noviembre). Making Sense of NoSQL. Disponible en: http://manning.com/mccreary (03/05/2014)

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 11

Introducción Necesidades actuales

Escalamiento vertical

Couchbase. (2014, junio). Why NoSQL? Disponible en: http://info.couchbase.com/whyNoSQL-LP.html (10/07/2014)

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 12

Introducción Necesidades actuales

Escalamiento horizontal

Couchbase. (2014, junio). Why NoSQL? Disponible en: http://info.couchbase.com/whyNoSQL-LP.html (10/07/2014)

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 13

Introducción Necesidades actuales

ACID

Atomicity - Consistency - Isolation - Durability

Una secuencia de operaciones (transacción):Se ejecutará del todo o nada (A)Una vez completada, la BD quedará en un estado en el que no seviola ninguna restricción de integridad (C)Las transacciones concurrentes son independientes y no se afectanunas a otras (I)Las modificaciones efectuadas por una transacción podrán recuperarseante fallas del sistema (D)

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 14

Introducción Necesidades actuales

ACIDEjemplo de transacción

McCreary, D. & Kelly, A. (2013). Making Sense of NoSQL: A guide for managers and the rest of us. Shelter Island, NY:

Manning Publications Co.

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 15

Introducción Necesidades actuales

Teorema CAP

Brewer, E. A. (2000). Towards robust distributed systems. Trabajo presentado en PODC 2000, 16-19 de julio, Portland, Oregon.

Gilbert, S. & Lynch, N. (2002). Brewer’s conjecture and the feasibility consistent, available, partition-tolerant web services.

Newsletter ACM SIGACT News, 33(2), pp. 51-59.

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 16

Introducción Necesidades actuales

Teorema CAP

(C) Consistencia: siempre que un dato es actualizado, todos los usuariostienen acceso a esa última versión

(A) Disponibilidad: cualquier operación puede ser ejecutada sin demora(P) Tolerancia a particiones: los datos son distribuidos a través de dos o

más nodos de la red y el sistema puede seguir funcionando,incluso, cuando algunos de estos nodos son totalmenteinaccesibles

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 16

Introducción Necesidades actuales

Teorema CAP

McCreary, D. (2013, 19 de noviembre). Making Sense of NoSQL. Disponible en: http://manning.com/mccreary (03/05/2014)

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 16

Introducción Necesidades actuales

BASE

Basically Available, Soft state and Eventually consistentLas aplicaciones trabajan prácticamente todo el tiempo (basicallyavailable)La BD no tiene que ser consistente en todo momento (soft state)Pero si no ocurren nuevas actualizaciones sobre un determinado dato,en algún momento todos los usuarios tendrán acceso a la versión másactual de este (eventually consistent)

Fox, A.; Gribble, S. D.; Chawathe, Y. Brewer, E. A. & Gauthier, P. (1997, octubre). Cluster-Based Scalable Network Services.

En Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles (SOSP-16), Saint-Malo, Francia.

Pritchett, D. (2008). Base: An Acid Alternative. Queue, 6(3), pp. 48-55. ACM.

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 17

Introducción Necesidades actuales

Necesidades actuales

¿Qué características deben tener los SGBDs de hoy día?

Sistemas cada vez más escalablesSistemas con modelos de datos más flexibles

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 18

Introducción Necesidades actuales

Limitaciones del modelo relacional

Las BDRs requieren la definición de un esquema rígido que dificultarepresentar datos semi-estructurados y no estructuradosModificar el diseño de una BDR una vez que ha sido poblada connuevos datos constituye una tarea ardua que se evita acometerSe minimiza la cantidad de espacio requerido para el almacenamientoa expensas de un aumento de la complejidad para consultar los datosComplicada red de interrelaciones dificulta distribuir las BDRs enmúltiples servidores y garantizar a la vez el rendimiento en su gestión

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 19

Introducción Necesidades actuales

Limitaciones del modelo relacional

Se ajusta poco al paradigma OO utilizado en la mayoría de loslenguajes de programación actualesEsta situación ha intentado ser resuelta desde hace años con lasBDOOs (Atkinson et al., 1989; Atwood, 1985; Derret et al., 1985)Estas no lograron ser ampliamente usadas por desarrolladores yusuarios en general

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 19

NoSQL

Sumario

1 IntroducciónContexto actualNecesidades actuales

2 NoSQLPrimeras propuestasEl término “NoSQL”SGBDs NoSQL

3 Conclusiones

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 20

NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primerascompañías en experimentar las limitaciones que imponían lastecnologías relacionales

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 21

NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primerascompañías en experimentar las limitaciones que imponían lastecnologías relacionales

2004MapReduce: Simplified Data Processing on Large Clusters

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 21

NoSQL Primeras propuestas

Primeras propuestas

2004MapReduce: Simplified Data Processing on Large Clusters

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 21

NoSQL Primeras propuestas

Primeras propuestas

2004MapReduce: Simplified Data Processing on Large Clusters

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 21

NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primerascompañías en experimentar las limitaciones que imponían lastecnologías relacionales

2004MapReduce: Simplified Data Processing on Large Clusters

2006Bigtable: A Distributed Storage System for Structured Data

“Bigtable is a distributed storage system for managing structured datathat is designed to scale to a very large size: petabytes of data acrossthousands of commodity servers.”

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 21

NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primerascompañías en experimentar las limitaciones que imponían lastecnologías relacionales

2007Dynamo: Amazon’s Highly Available Key-Value Store

“. . . customers should be able to view and add items to their shopping carteven if disks are failing, network routes are flapping, or data centers arebeing destroyed by tornados.”

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 21

NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primerascompañías en experimentar las limitaciones que imponían lastecnologías relacionales

2008Cassandra – A Decentralized Structured Storage System

Propuesta inspirada en Bigtable y Dynamo

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 21

NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primerascompañías en experimentar las limitaciones que imponían lastecnologías relacionales

2008Cassandra – A Decentralized Structured Storage System

Propuesta inspirada en Bigtable y Dynamo

2008Project Voldemort

Propuesta inspirada en Dynamo

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 21

NoSQL El término “NoSQL”

El término “NoSQL”

Empleado por primera vez en el año 1998 por Carlo Strozzi, parareferirse a un SGBDR que no utilizaba SQLRetomado en 2009 para nombrar los congresos de los partidarios delas BDs no relacionales, distribuidas y de código abierto (NoSQL2009, en San Francisco)

Revista Computerworld:“NoSQLers came to share how they had overthrown the tyranny of slow,expensive relational databases in favor of more efficient and cheaper waysof managing data.”

Computerworld. (2009, junio). No to SQL? Anti-database movement gains steam. Consultado el 10 de julio de 2014 desde

http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 22

NoSQL El término “NoSQL”

El término “NoSQL”

NoSQL = ¿?NoSQL 6= No to SQLNoSQL = Not only SQL

Evans, E. (2009, 30 de octubre). NoSQL: What’s in a name? Consultado el 10 de julio de 2014 desde

http://www.deadcafe.org/2009/10/30/nosql_whats_in_a_name.html

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 23

NoSQL

Algunas opiniones

Eric Evans:“The whole point of seeking alternatives is that you need to solve aproblem that relational databases are a bad fit for”

Evans, E. (2009, 30 de octubre). NoSQL: What’s in a name? Consultado el 10 de julio de 2014 desde

http://www.deadcafe.org/2009/10/30/nosql_whats_in_a_name.html

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 24

NoSQL

Algunas opiniones

Javier Soltero:“Oracle would tell you that with the right degree of hardware and the rightconfiguration of Oracle RAC (Real Application Clusters) and otherassociated magic software, you can achieve the same scalability. But atwhat cost?”

Computerworld. (2009, junio). No to SQL? Anti-database movement gains steam. Consultado el 10 de julio de 2014 desde

http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 24

NoSQL

Algunas opiniones

Nati Shalom:“Cost pressure also forced many organizations to look at morecost-effective alternatives, and with that came research that showed thatdistributed storage based on commodity hardware can be even morereliable than many of the existing high end databases”

Shalom, N. (2009, 15 de diciembre). The Common Principles Behind The NOSQL Alternatives. Consultado el 10 de julio de 2014

desde http://natishalom.typepad.com/nati_shaloms_blog/2009/12/the-common-principles-behind-the-nosql-alternatives.html

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 24

NoSQL

Tendencias de búsqueda de Google de los términos“RDBMS” y “NoSQL”

Google. (2014, 13 de noviembre). Tendencias de búsqueda de Google - Interés en Búsqueda en la Web: nosql, rdbms - Todo el

mundo, 2004 - hoy. Consultado el 13/11/2014 desde http://www.google.com/trends/explore?q=NoSQL%2C+RDBMS

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 25

NoSQL SGBDs NoSQL

SGBDs NoSQLCaracterísticas generales

No requieren de la definición de un esquema de la BDAlmacenan los datos de forma no relacionalEstán diseñados para arquitecturas distribuidasPueden ser instalados en servidores de bajo costo

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 26

NoSQL SGBDs NoSQL

Principales exponentes según su modelo de datos

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 27

NoSQL SGBDs NoSQL

Principales exponentes en el Cuadrante Mágico de Gartner

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 28

NoSQL SGBDs NoSQL

Principales exponentes en el Cuadrante Mágico de Gartner

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 28

NoSQL SGBDs NoSQL

SGBDs llave/valorCaracterísticas generales

Poseen un modelo de datos sencillo que permite almacenar yrecuperar valores de cualquier tipo a partir de una llaveSon ideales para el manejo de datos no estructuradosFavorecen una alta disponibilidad de los datosLas operaciones de lectura y escritura tienen un desempeño altísimoEn general, no hay forma de recuperar un registro basándose en elcontenido de su valor

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 29

NoSQL SGBDs NoSQL

SGBDs llave/valorEjemplo

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 30

NoSQL SGBDs NoSQL

Voldemort (2008)SGBDs llave/valor

Inspirado en DynamoDesarrollado por LinkedIn bajo una licencia libre de ApacheRealiza automáticamente la replicación y fragmentación de los datosEscrito en JavaExisten bibliotecas para Java, Python, Ruby, C, C++, Lua y otros¿Quién lo utiliza?: LinkedInSitio oficial: http://project-voldemort.com/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 31

NoSQL SGBDs NoSQL

Riak (2008)SGBDs llave/valor

Inspirado en DynamoDesarrollado por Basho bajo una licencia dual: una versión de códigoabierto y otra comercial con soporte garantizadoRealiza automáticamente la replicación y fragmentación de los datosAdmite consultas MapReduce e índices secundariosEscrito en ErlangOfrece una API HTTP RESTful y existen bibliotecas para Java,Python, Perl, Erlang, Ruby, PHP, .NET y otros¿Quién lo utiliza?: Comcast y Mochi MediaSitio oficial: http://riak.basho.com/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 32

NoSQL SGBDs NoSQL

Redis (2009)SGBDs llave/valor

Desarrollado por Salvatore Sanfilippo bajo la licencia BSDBrinda un alto desempeño pues mayormente trabaja sobre la RAMEscrito en COfrece una interfaz de línea de comandos y existen bibliotecas paraJava, Python, Ruby, C, C++, Lua, Haskell y otros¿Quién lo utiliza?: CraigslistSitio oficial: http://redis.io/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 33

NoSQL SGBDs NoSQL

Aerospike (2012)SGBDs llave/valor

Liberado bajo la licencia AGPL en 2014Enfocado en la alta disponibilidad y la tolerancia a fallasOptimizado para el trabajo en discos de estado sólido (SSD)Ofrece soporte para la replicación entre diversos centros de datosEscrito en CExisten bibliotecas para C, C#, Java, Ruby, PHP y PythonSitio oficial: http://www.aerospike.com/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 34

NoSQL SGBDs NoSQL

SGBDs orientadas a columnasCaracterísticas generales

Poseen una estructura tabular en las que las filas admiten un númerovariable de columnas (familias de columnas)Facilitan la representación de datos semi-estructuradosOptimizadas para operaciones a nivel de columnas (contar, sumar,promediar, etc.)Logran altos niveles de escalabilidad al dividir las filas (particiónhorizontal) y las columnas (partición vertical) y distribuirlas a travésde múltiples nodos

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 35

NoSQL SGBDs NoSQL

SGBDs orientadas a columnasModelo de datos

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 36

NoSQL SGBDs NoSQL

SGBDs orientadas a columnasModelo de datos

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 36

NoSQL SGBDs NoSQL

SGBDs orientadas a columnasModelo de datos

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 36

NoSQL SGBDs NoSQL

Cassandra (2008)SGBDs orientadas a columnas

Inspirado en Bigtable y DynamoProyecto de código abierto de ApacheDesarrollado inicialmente por FacebookOfrece un lenguaje de consultas –CQL– similar a SQLEscrito en JavaOfrece una interfaz de línea de comandos y una API para Java,además existen bibliotecas para Python, PHP, .NET, Ruby y otros¿Quién lo utiliza?: Facebook, Digg, Reddit, Twitter y otrosSitio oficial: http://cassandra.apache.org/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 37

NoSQL SGBDs NoSQL

HBase (2011)SGBDs orientadas a columnas

Inspirado en BigtableDesarrollado como parte de Hadoop

Hadoop es una implementación de código abierto de MapReduce,desarrollado inicialmente por Yahoo!

Ofrece un lenguaje de consultas de alto nivel: PigEscrito en Java¿Quién lo utiliza?: Facebook, Yahoo! y otrosSitio oficial: http://hbase.apache.org/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 38

NoSQL SGBDs NoSQL

SGBDs orientadas a documentosCaracterísticas generales

Almacenan los datos en documentos XML, JSON u otros formatosOfrecen soporte para índices secundariosPermiten trabajar con datos más complejos, admitiéndosedocumentos (objetos) anidadosSe corresponde con la manera en que se modelan los objetos y suspropiedades en los lenguajes OO

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 39

NoSQL SGBDs NoSQL

MongoDB (2009)SGBDs orientadas a documentos

Desarrollado por 10gen bajo la licencia libre AGPL y soporte comercialAlmacena los datos en documentos en formato BSON (Binary JSON)Realiza automáticamente la fragmentación de los datosOfrece un lenguaje de consultas similar a SQLEscrito en C++Ofrece una interfaz de línea de comandos JavaScript y una APIREST, además existen bibliotecas para C, C++, C#, Java,JavaScript, Perl, Python, PHP, Ruby y otros¿Quién lo utiliza?: Foursquare, Github, MTV Networks y otrosSitio oficial: https://www.mongodb.org/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 40

NoSQL SGBDs NoSQL

CouchDB (2005)SGBDs orientadas a documentos

Es un proyecto de Apache desde 2008Almacena los datos en documentos JSONBrinda una alta disponibilidad y replicación peer-to-peerEscrito en ErlangOfrece una interfaz web para la administración y una API REST¿Quién lo utiliza?: Apple, BBC, Canonical y otrosSitio oficial: http://couchdb.apache.org/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 41

NoSQL SGBDs NoSQL

Couchbase (2011)SGBDs orientadas a documentos

Desarrollado por Couchbase bajo una licencia libre de Apache consoporte comercialCombina las mejores características de CouchDB y MembaseAlmacena los datos en documentos JSONSu arquitectura se adapta automáticamente a los cambios en latopología del clústerEscrito en C, C++ y Erlang

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 42

NoSQL SGBDs NoSQL

Couchbase (2011)SGBDs orientadas a documentos

Ofrece una interfaz web de administración y una API HTTP RESTfulExisten bibliotecas para Java, Ruby, .NET, C, PHP, Python y otrosCouchbase Lite: versión ligera para su uso en dispositivos móviles¿Quién lo utiliza?: Adidas, Adobe, Beats Music, Disney, eBay, Honda,Intel, LinkedIn, Mozilla, Nokia, Vodafone, Walmart y otrosSitio oficial: http://www.couchbase.com/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 42

NoSQL SGBDs NoSQL

eXist (2001)SGBDs orientadas a documentos

Desarrollado bajo una licencia libre (LGPL)Almacena los datos en documentos XMLBrinda soporte para consultas XQuery y XSLTIncorpora Lucene para búsquedas a texto completoEscrito en Java¿Quién lo utiliza?: Tibetan Buddhist Resource Center (TBRC),ScoutDragon, Semanta y otrosSitio oficial: http://exist-db.org/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 43

NoSQL SGBDs NoSQL

MarkLogic Server (2001)SGBDs orientadas a documentos

Considerado un SGBD NoSQL híbrido (múltiples modelos de datos)Desarrollado por MarkLogic bajo licencia dual: una versión libre y otracomercial con soporte garantizadoOfrece indexado universalSatisface las propiedades ACIDEscrito en C++¿Quién lo utiliza?: Springer, Condé Nast y otrosSitio oficial: http://www.marklogic.com/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 44

NoSQL SGBDs NoSQL

SGBDs orientadas a grafosCaracterísticas generales

Los datos son almacenados en nodos interrelacionados unos con otrosIdeales para aquellos contextos en los que las relaciones sonfundamentales (ej: redes sociales)Aplican algoritmos de búsqueda optimizados para grafos

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 45

NoSQL SGBDs NoSQL

SGBDs orientadas a grafosEjemplo: representando relaciones de amistad

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 46

NoSQL SGBDs NoSQL

SGBDs orientadas a grafosEjemplo: representando relaciones de amistad

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 46

NoSQL SGBDs NoSQL

SGBDs orientadas a grafosEjemplo: representando relaciones de amistad

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 46

NoSQL SGBDs NoSQL

SGBDs orientadas a grafosClasificación según métodos de almacenamiento y procesamiento

Robinson, I.; Webber, J. & Eifrem, E. (2013). Graph Databases. Sebastopol, CA: O’Reilly Media, Inc.

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 47

NoSQL SGBDs NoSQL

Neo4j (2007)SGBDs orientadas a grafos

Desarrollado por Neo Technology bajo una licencia dual: una versiónlibre (GPL) y otra comercial con soporte garantizadoSoporta consultas SPARQLSatisface las propiedades ACIDEscrito en JavaOfrece una interfaz web para la administración y una API REST,además existen bibliotecas para Java, Python, Ruby, PHP y otros¿Quién lo utiliza?: eBay, Walmart, Box.net y otrosSitio oficial: http://www.neo4j.com/

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 48

NoSQL SGBDs NoSQL

Neo4j (2007)SGBDs orientadas a grafos

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 49

Conclusiones

Sumario

1 IntroducciónContexto actualNecesidades actuales

2 NoSQLPrimeras propuestasEl término “NoSQL”SGBDs NoSQL

3 Conclusiones

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 50

Conclusiones

Conclusiones

Los SGBDs NoSQL constituyen una excelente opción para eldesarrollo de sistemas que requieren de una alta disponibilidad y eltrabajo eficiente con datos semi-estructurados y no estructuradosExisten múltiples opciones en el mundo de las tecnologías NoSQL yresulta una tarea difícil seleccionar la más indicada según el casoDeben considerarse las características del contexto de aplicación antesde elegir una u otra variante

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 51

Lecturas recomendadas

Lecturas recomendadas I

Bhat, U. & Jadhav, S. (2010).Moving Towards Non-Relational Databases.2010 International Journal of Computer Applications, 1(13),pp. 40-46. ISSN: 0975-8887.

Cattell, R. (2011).Scalable SQL and NoSQL data stores.ACM SIGMOD Record, 39(4), pp. 12-27.

Gajendran, S. K. (2012).A Survey on NoSQL DatabasesReporte técnico extraído el 1/07/2013 desdehttp://masters.donntu.edu.ua/2013/fknt/babich/library/article10.pdf

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 52

Lecturas recomendadas

Lecturas recomendadas II

Pokorný, J. (2013).NoSQL databases: a step to database scalability in web environment.International Journal of Web Information Systems, 9(1), pp. 69-82.

Strauch, C. & Kriha, W. (2011).NoSQL Databases.Lecture Notes on Selected Topics on Software-Technology Ultra-LargeScale Sites, Stuttgart Media University. Extraído el 10/06/2013 desdehttp://home.aubg.bg/students/ENL100/Cloud%20Computing/Research%20Paper/nosqldbs.pdf

Vogels, W. (2008, 22 de diciembre).Eventually Consistent - Revisited.Consultado el 6/10/2014 desde http://www.allthingsdistributed.com/2008/12/eventually_consistent.html

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 53

Lecturas recomendadas

Lecturas recomendadas III

Fowler, A. (2015).NoSQL For Dummies.Hoboken, NJ: John Wiley & Sons, Inc.

Hurwitz, J.; Nugent, A.; Halper, F. & Kaufman, M. (2013).Big Data For Dummies.Hoboken, NJ: John Wiley & Sons, Inc.

McCreary, D. & Kelly, A. (2013).Making Sense of NoSQL: A guide for managers and the rest of us.Shelter Island, NY: Manning Publications Co.

Tiwari, S. (2011).Professional NoSQL.Indianapolis, IN: John Wiley & Sons, Inc.

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 54

Lecturas recomendadas

Lecturas recomendadas IV

Robinson, I.; Webber, J. & Eifrem, E. (2013).Graph Databases.Sebastopol, CA: O’Reilly Media, Inc.

Vaish, G. (2013).Getting Started with NoSQL.Birmingham, UK: Packt Publishing.

Warden, P. (2011).Big Data Glossary.Sebastopol, CA: O’Reilly Media, Inc.

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 55

Un acercamiento a las bases de datos NoSQL

MSc. Javier Guillot Jiménez

Departamento de ProgramaciónFacultad de Matemática y Computación

Universidad de La Habana

4 de octubre de 2015

MSc. Javier Guillot Jiménez Universidad de La HabanaUn acercamiento a las bases de datos NoSQL 56