Una breve panorámica sobre el contexto en el que surgen las bases de datos NoSQL, las limitaciones de los sistemas de gestión de bases de datos relacionales que las soluciones NoSQL intentan superar, así como una presentación de los principales productos NoSQL.
1. 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
2. Sumario
1 Introducción
Contexto actual
Necesidades actuales
2 NoSQL
Primeras propuestas
El término “NoSQL”
SGBDs NoSQL
3 Conclusiones
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 2
4. Introducción Contexto actual
Contexto actual
Las aplicaciones han evolucionado mucho en los últimos 15 años
Las grandes compañías web han crecido vertiginosamente en:
Cantidad de usuarios concurrentes
Volúmenes de datos procesados y almacenados
Explotación de datos semi-estructurados y no estructurados
La computación en la nube ha facilitado el acceso a servicios de
Internet que explotan diversos e inmensos volúmenes de datos
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 4
5. 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 Habana
Un acercamiento a las bases de datos NoSQL 5
6. Introducción Contexto actual
Big Users
Ventas 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 Habana
Un acercamiento a las bases de datos NoSQL 6
7. Introducción Contexto actual
The Internet of Things
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 7
8. Introducción Contexto actual
Big Data
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 8
9. Introducción Contexto actual
Big Data
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 8
10. Introducción Contexto actual
Big Data
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 8
11. Introducción Contexto actual
Big Data
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 8
12. Introducción Contexto actual
Big Data
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 8
13. 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 Habana
Un acercamiento a las bases de datos NoSQL 8
14. Introducción Contexto actual
Big Data
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 8
15. 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 Habana
Un acercamiento a las bases de datos NoSQL 9
16. Introducción Necesidades actuales
Necesidades actuales
¿Qué características deben tener los SGBDs de hoy día?
Sistemas cada vez más escalables
Sistemas con modelos de datos más flexibles
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 10
17. Introducción Necesidades actuales
Necesidades actuales
¿Qué características deben tener los SGBDs de hoy día?
Sistemas cada vez más escalables
Sistemas con modelos de datos más flexibles
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 10
18. 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 Habana
Un acercamiento a las bases de datos NoSQL 11
19. 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 Habana
Un acercamiento a las bases de datos NoSQL 12
20. 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 Habana
Un acercamiento a las bases de datos NoSQL 13
21. 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 se
viola ninguna restricción de integridad (C)
Las transacciones concurrentes son independientes y no se afectan
unas a otras (I)
Las modificaciones efectuadas por una transacción podrán recuperarse
ante fallas del sistema (D)
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 14
22. Introducción Necesidades actuales
ACID
Ejemplo 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 Habana
Un acercamiento a las bases de datos NoSQL 15
23. 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 Habana
Un acercamiento a las bases de datos NoSQL 16
24. Introducción Necesidades actuales
Teorema CAP
(C) Consistencia: siempre que un dato es actualizado, todos los usuarios
tienen 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 totalmente
inaccesibles
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 16
25. 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 Habana
Un acercamiento a las bases de datos NoSQL 16
26. Introducción Necesidades actuales
BASE
Basically Available, Soft state and Eventually consistent
Las aplicaciones trabajan prácticamente todo el tiempo (basically
available)
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ás
actual 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 Habana
Un acercamiento a las bases de datos NoSQL 17
27. Introducción Necesidades actuales
Necesidades actuales
¿Qué características deben tener los SGBDs de hoy día?
Sistemas cada vez más escalables
Sistemas con modelos de datos más flexibles
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 18
28. Introducción Necesidades actuales
Limitaciones del modelo relacional
Las BDRs requieren la definición de un esquema rígido que dificulta
representar datos semi-estructurados y no estructurados
Modificar el diseño de una BDR una vez que ha sido poblada con
nuevos datos constituye una tarea ardua que se evita acometer
Se minimiza la cantidad de espacio requerido para el almacenamiento
a expensas de un aumento de la complejidad para consultar los datos
Complicada red de interrelaciones dificulta distribuir las BDRs en
múltiples servidores y garantizar a la vez el rendimiento en su gestión
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 19
29. Introducción Necesidades actuales
Limitaciones del modelo relacional
Se ajusta poco al paradigma OO utilizado en la mayoría de los
lenguajes de programación actuales
Esta situación ha intentado ser resuelta desde hace años con las
BDOOs (Atkinson et al., 1989; Atwood, 1985; Derret et al., 1985)
Estas no lograron ser ampliamente usadas por desarrolladores y
usuarios en general
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 19
30. NoSQL
Sumario
1 Introducción
Contexto actual
Necesidades actuales
2 NoSQL
Primeras propuestas
El término “NoSQL”
SGBDs NoSQL
3 Conclusiones
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 20
31. NoSQL Primeras propuestas
Primeras propuestas
Google, Amazon, Facebook y LinkedIn fueron de las primeras
compañías en experimentar las limitaciones que imponían las
tecnologías relacionales
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 21
32. NoSQL Primeras propuestas
Primeras propuestas
Google, Amazon, Facebook y LinkedIn fueron de las primeras
compañías en experimentar las limitaciones que imponían las
tecnologías relacionales
2004
MapReduce: Simplified Data Processing on Large Clusters
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 21
33. NoSQL Primeras propuestas
Primeras propuestas
2004
MapReduce: Simplified Data Processing on Large Clusters
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 21
34. NoSQL Primeras propuestas
Primeras propuestas
2004
MapReduce: Simplified Data Processing on Large Clusters
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 21
35. NoSQL Primeras propuestas
Primeras propuestas
Google, Amazon, Facebook y LinkedIn fueron de las primeras
compañías en experimentar las limitaciones que imponían las
tecnologías relacionales
2004
MapReduce: Simplified Data Processing on Large Clusters
2006
Bigtable: A Distributed Storage System for Structured Data
“Bigtable is a distributed storage system for managing structured data
that is designed to scale to a very large size: petabytes of data across
thousands of commodity servers.”
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 21
36. NoSQL Primeras propuestas
Primeras propuestas
Google, Amazon, Facebook y LinkedIn fueron de las primeras
compañías en experimentar las limitaciones que imponían las
tecnologías relacionales
2007
Dynamo: Amazon’s Highly Available Key-Value Store
“. . . customers should be able to view and add items to their shopping cart
even if disks are failing, network routes are flapping, or data centers are
being destroyed by tornados.”
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 21
37. NoSQL Primeras propuestas
Primeras propuestas
Google, Amazon, Facebook y LinkedIn fueron de las primeras
compañías en experimentar las limitaciones que imponían las
tecnologías relacionales
2008
Cassandra – A Decentralized Structured Storage System
Propuesta inspirada en Bigtable y Dynamo
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 21
38. NoSQL Primeras propuestas
Primeras propuestas
Google, Amazon, Facebook y LinkedIn fueron de las primeras
compañías en experimentar las limitaciones que imponían las
tecnologías relacionales
2008
Cassandra – A Decentralized Structured Storage System
Propuesta inspirada en Bigtable y Dynamo
2008
Project Voldemort
Propuesta inspirada en Dynamo
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 21
39. NoSQL El término “NoSQL”
El término “NoSQL”
Empleado por primera vez en el año 1998 por Carlo Strozzi, para
referirse a un SGBDR que no utilizaba SQL
Retomado en 2009 para nombrar los congresos de los partidarios de
las BDs no relacionales, distribuidas y de código abierto (NoSQL
2009, 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 ways
of 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 Habana
Un acercamiento a las bases de datos NoSQL 22
40. NoSQL El término “NoSQL”
El término “NoSQL”
NoSQL = ¿?
NoSQL = No to SQL
NoSQL = 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 Habana
Un acercamiento a las bases de datos NoSQL 23
41. NoSQL
Algunas opiniones
Eric Evans:
“The whole point of seeking alternatives is that you need to solve a
problem 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 Habana
Un acercamiento a las bases de datos NoSQL 24
42. NoSQL
Algunas opiniones
Javier Soltero:
“Oracle would tell you that with the right degree of hardware and the right
configuration of Oracle RAC (Real Application Clusters) and other
associated magic software, you can achieve the same scalability. But at
what 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 Habana
Un acercamiento a las bases de datos NoSQL 24
43. NoSQL
Algunas opiniones
Nati Shalom:
“Cost pressure also forced many organizations to look at more
cost-effective alternatives, and with that came research that showed that
distributed storage based on commodity hardware can be even more
reliable 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 Habana
Un acercamiento a las bases de datos NoSQL 24
44. 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 Habana
Un acercamiento a las bases de datos NoSQL 25
45. NoSQL SGBDs NoSQL
SGBDs NoSQL
Características generales
No requieren de la definición de un esquema de la BD
Almacenan los datos de forma no relacional
Están diseñados para arquitecturas distribuidas
Pueden ser instalados en servidores de bajo costo
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 26
46. NoSQL SGBDs NoSQL
Principales exponentes según su modelo de datos
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 27
47. NoSQL SGBDs NoSQL
Principales exponentes en el Cuadrante Mágico de Gartner
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 28
48. NoSQL SGBDs NoSQL
Principales exponentes en el Cuadrante Mágico de Gartner
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 28
49. NoSQL SGBDs NoSQL
SGBDs llave/valor
Características generales
Poseen un modelo de datos sencillo que permite almacenar y
recuperar valores de cualquier tipo a partir de una llave
Son ideales para el manejo de datos no estructurados
Favorecen una alta disponibilidad de los datos
Las operaciones de lectura y escritura tienen un desempeño altísimo
En general, no hay forma de recuperar un registro basándose en el
contenido de su valor
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 29
50. NoSQL SGBDs NoSQL
SGBDs llave/valor
Ejemplo
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 30
51. NoSQL SGBDs NoSQL
Voldemort (2008)
SGBDs llave/valor
Inspirado en Dynamo
Desarrollado por LinkedIn bajo una licencia libre de Apache
Realiza automáticamente la replicación y fragmentación de los datos
Escrito en Java
Existen bibliotecas para Java, Python, Ruby, C, C++, Lua y otros
¿Quién lo utiliza?: LinkedIn
Sitio oficial: http://project-voldemort.com/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 31
52. NoSQL SGBDs NoSQL
Riak (2008)
SGBDs llave/valor
Inspirado en Dynamo
Desarrollado por Basho bajo una licencia dual: una versión de código
abierto y otra comercial con soporte garantizado
Realiza automáticamente la replicación y fragmentación de los datos
Admite consultas MapReduce e índices secundarios
Escrito en Erlang
Ofrece una API HTTP RESTful y existen bibliotecas para Java,
Python, Perl, Erlang, Ruby, PHP, .NET y otros
¿Quién lo utiliza?: Comcast y Mochi Media
Sitio oficial: http://riak.basho.com/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 32
53. NoSQL SGBDs NoSQL
Redis (2009)
SGBDs llave/valor
Desarrollado por Salvatore Sanfilippo bajo la licencia BSD
Brinda un alto desempeño pues mayormente trabaja sobre la RAM
Escrito en C
Ofrece una interfaz de línea de comandos y existen bibliotecas para
Java, Python, Ruby, C, C++, Lua, Haskell y otros
¿Quién lo utiliza?: Craigslist
Sitio oficial: http://redis.io/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 33
54. NoSQL SGBDs NoSQL
Aerospike (2012)
SGBDs llave/valor
Liberado bajo la licencia AGPL en 2014
Enfocado en la alta disponibilidad y la tolerancia a fallas
Optimizado para el trabajo en discos de estado sólido (SSD)
Ofrece soporte para la replicación entre diversos centros de datos
Escrito en C
Existen bibliotecas para C, C#, Java, Ruby, PHP y Python
Sitio oficial: http://www.aerospike.com/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 34
55. NoSQL SGBDs NoSQL
SGBDs orientadas a columnas
Características generales
Poseen una estructura tabular en las que las filas admiten un número
variable de columnas (familias de columnas)
Facilitan la representación de datos semi-estructurados
Optimizadas para operaciones a nivel de columnas (contar, sumar,
promediar, etc.)
Logran altos niveles de escalabilidad al dividir las filas (partición
horizontal) y las columnas (partición vertical) y distribuirlas a través
de múltiples nodos
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 35
56. NoSQL SGBDs NoSQL
SGBDs orientadas a columnas
Modelo de datos
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 36
57. NoSQL SGBDs NoSQL
SGBDs orientadas a columnas
Modelo de datos
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 36
58. NoSQL SGBDs NoSQL
SGBDs orientadas a columnas
Modelo de datos
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 36
59. NoSQL SGBDs NoSQL
Cassandra (2008)
SGBDs orientadas a columnas
Inspirado en Bigtable y Dynamo
Proyecto de código abierto de Apache
Desarrollado inicialmente por Facebook
Ofrece un lenguaje de consultas –CQL– similar a SQL
Escrito en Java
Ofrece 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 otros
Sitio oficial: http://cassandra.apache.org/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 37
60. NoSQL SGBDs NoSQL
HBase (2011)
SGBDs orientadas a columnas
Inspirado en Bigtable
Desarrollado 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: Pig
Escrito en Java
¿Quién lo utiliza?: Facebook, Yahoo! y otros
Sitio oficial: http://hbase.apache.org/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 38
61. NoSQL SGBDs NoSQL
SGBDs orientadas a documentos
Características generales
Almacenan los datos en documentos XML, JSON u otros formatos
Ofrecen soporte para índices secundarios
Permiten trabajar con datos más complejos, admitiéndose
documentos (objetos) anidados
Se corresponde con la manera en que se modelan los objetos y sus
propiedades en los lenguajes OO
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 39
62. NoSQL SGBDs NoSQL
MongoDB (2009)
SGBDs orientadas a documentos
Desarrollado por 10gen bajo la licencia libre AGPL y soporte comercial
Almacena los datos en documentos en formato BSON (Binary JSON)
Realiza automáticamente la fragmentación de los datos
Ofrece un lenguaje de consultas similar a SQL
Escrito en C++
Ofrece una interfaz de línea de comandos JavaScript y una API
REST, 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 otros
Sitio oficial: https://www.mongodb.org/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 40
63. NoSQL SGBDs NoSQL
CouchDB (2005)
SGBDs orientadas a documentos
Es un proyecto de Apache desde 2008
Almacena los datos en documentos JSON
Brinda una alta disponibilidad y replicación peer-to-peer
Escrito en Erlang
Ofrece una interfaz web para la administración y una API REST
¿Quién lo utiliza?: Apple, BBC, Canonical y otros
Sitio oficial: http://couchdb.apache.org/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 41
64. NoSQL SGBDs NoSQL
Couchbase (2011)
SGBDs orientadas a documentos
Desarrollado por Couchbase bajo una licencia libre de Apache con
soporte comercial
Combina las mejores características de CouchDB y Membase
Almacena los datos en documentos JSON
Su arquitectura se adapta automáticamente a los cambios en la
topología del clúster
Escrito en C, C++ y Erlang
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 42
65. NoSQL SGBDs NoSQL
Couchbase (2011)
SGBDs orientadas a documentos
Ofrece una interfaz web de administración y una API HTTP RESTful
Existen bibliotecas para Java, Ruby, .NET, C, PHP, Python y otros
Couchbase 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 otros
Sitio oficial: http://www.couchbase.com/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 42
66. NoSQL SGBDs NoSQL
eXist (2001)
SGBDs orientadas a documentos
Desarrollado bajo una licencia libre (LGPL)
Almacena los datos en documentos XML
Brinda soporte para consultas XQuery y XSLT
Incorpora Lucene para búsquedas a texto completo
Escrito en Java
¿Quién lo utiliza?: Tibetan Buddhist Resource Center (TBRC),
ScoutDragon, Semanta y otros
Sitio oficial: http://exist-db.org/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 43
67. 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 otra
comercial con soporte garantizado
Ofrece indexado universal
Satisface las propiedades ACID
Escrito en C++
¿Quién lo utiliza?: Springer, Condé Nast y otros
Sitio oficial: http://www.marklogic.com/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 44
68. NoSQL SGBDs NoSQL
SGBDs orientadas a grafos
Características generales
Los datos son almacenados en nodos interrelacionados unos con otros
Ideales para aquellos contextos en los que las relaciones son
fundamentales (ej: redes sociales)
Aplican algoritmos de búsqueda optimizados para grafos
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 45
69. NoSQL SGBDs NoSQL
SGBDs orientadas a grafos
Ejemplo: representando relaciones de amistad
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 46
70. NoSQL SGBDs NoSQL
SGBDs orientadas a grafos
Ejemplo: representando relaciones de amistad
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 46
71. NoSQL SGBDs NoSQL
SGBDs orientadas a grafos
Ejemplo: representando relaciones de amistad
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 46
72. NoSQL SGBDs NoSQL
SGBDs orientadas a grafos
Clasificació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 Habana
Un acercamiento a las bases de datos NoSQL 47
73. NoSQL SGBDs NoSQL
Neo4j (2007)
SGBDs orientadas a grafos
Desarrollado por Neo Technology bajo una licencia dual: una versión
libre (GPL) y otra comercial con soporte garantizado
Soporta consultas SPARQL
Satisface las propiedades ACID
Escrito en Java
Ofrece 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 otros
Sitio oficial: http://www.neo4j.com/
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 48
74. NoSQL SGBDs NoSQL
Neo4j (2007)
SGBDs orientadas a grafos
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 49
76. Conclusiones
Conclusiones
Los SGBDs NoSQL constituyen una excelente opción para el
desarrollo de sistemas que requieren de una alta disponibilidad y el
trabajo eficiente con datos semi-estructurados y no estructurados
Existen múltiples opciones en el mundo de las tecnologías NoSQL y
resulta una tarea difícil seleccionar la más indicada según el caso
Deben considerarse las características del contexto de aplicación antes
de elegir una u otra variante
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 51
77. 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 Databases
Reporte técnico extraído el 1/07/2013 desde
http://masters.donntu.edu.ua/2013/fknt/babich/library/article10.pdf
MSc. Javier Guillot Jiménez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 52
78. 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-Large
Scale Sites, Stuttgart Media University. Extraído el 10/06/2013 desde
http://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 Habana
Un acercamiento a las bases de datos NoSQL 53
79. 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 Habana
Un acercamiento a las bases de datos NoSQL 54
80. 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 Habana
Un acercamiento a las bases de datos NoSQL 55
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 56