un acercamiento a las bases de datos nosql
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