Está en la página 1de 81

Un acercamiento a las bases de datos NoSQL

MSc. Javier Guillot Jimnez

Departamento de Programacin
Facultad de Matemtica y Computacin
Universidad de La Habana

4 de octubre de 2015

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 1
Sumario

1 Introduccin
Contexto actual
Necesidades actuales

2 NoSQL
Primeras propuestas
El trmino NoSQL
SGBDs NoSQL

3 Conclusiones

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 2
Introduccin

Sumario

1 Introduccin
Contexto actual
Necesidades actuales

2 NoSQL
Primeras propuestas
El trmino NoSQL
SGBDs NoSQL

3 Conclusiones

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 3
Introduccin Contexto actual

Contexto actual

Las aplicaciones han evolucionado mucho en los ltimos 15 aos


Las grandes compaas web han crecido vertiginosamente en:
Cantidad de usuarios concurrentes
Volmenes de datos procesados y almacenados
Explotacin de datos semi-estructurados y no estructurados
La computacin en la nube ha facilitado el acceso a servicios de
Internet que explotan diversos e inmensos volmenes de datos

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 4
Introduccin Contexto actual

Big Users

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

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 5
Introduccin Contexto actual

Big Users
Ventas mundiales de dispositivos segn 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 6
Introduccin Contexto actual

The Internet of Things

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 7
Introduccin Contexto actual

Big Data

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 8
Introduccin Contexto actual

Big Data

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 8
Introduccin Contexto actual

Big Data

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 8
Introduccin Contexto actual

Big Data

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 8
Introduccin Contexto actual

Big Data

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 8
Introduccin Contexto actual

Big Data

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

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 8
Introduccin Contexto actual

Big Data

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 8
Introduccin Contexto actual

Cloud computing

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

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 9
Introduccin Necesidades actuales

Necesidades actuales

Qu caractersticas deben tener los SGBDs de hoy da?

Sistemas cada vez ms escalables


Sistemas con modelos de datos ms flexibles

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 10
Introduccin Necesidades actuales

Necesidades actuales

Qu caractersticas deben tener los SGBDs de hoy da?

Sistemas cada vez ms escalables


Sistemas con modelos de datos ms flexibles

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 10
Introduccin 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 11
Introduccin Necesidades actuales

Escalamiento vertical

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

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 12
Introduccin Necesidades actuales

Escalamiento horizontal

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

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 13
Introduccin Necesidades actuales

ACID

Atomicity - Consistency - Isolation - Durability

Una secuencia de operaciones (transaccin):


Se ejecutar del todo o nada (A)
Una vez completada, la BD quedar en un estado en el que no se
viola ninguna restriccin de integridad (C)
Las transacciones concurrentes son independientes y no se afectan
unas a otras (I)
Las modificaciones efectuadas por una transaccin podrn recuperarse
ante fallas del sistema (D)

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 14
Introduccin Necesidades actuales

ACID
Ejemplo de transaccin

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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 15
Introduccin 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). Brewers conjecture and the feasibility consistent, available, partition-tolerant web services.

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

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 16
Introduccin Necesidades actuales

Teorema CAP

(C) Consistencia: siempre que un dato es actualizado, todos los usuarios


tienen acceso a esa ltima versin
(A) Disponibilidad: cualquier operacin puede ser ejecutada sin demora
(P) Tolerancia a particiones: los datos son distribuidos a travs de dos o
ms nodos de la red y el sistema puede seguir funcionando,
incluso, cuando algunos de estos nodos son totalmente
inaccesibles

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 16
Introduccin 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 16
Introduccin Necesidades actuales

BASE

Basically Available, Soft state and Eventually consistent


Las aplicaciones trabajan prcticamente 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 algn momento todos los usuarios tendrn acceso a la versin ms
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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 17
Introduccin Necesidades actuales

Necesidades actuales

Qu caractersticas deben tener los SGBDs de hoy da?

Sistemas cada vez ms escalables


Sistemas con modelos de datos ms flexibles

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 18
Introduccin Necesidades actuales

Limitaciones del modelo relacional

Las BDRs requieren la definicin de un esquema rgido que dificulta


representar datos semi-estructurados y no estructurados
Modificar el diseo 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
mltiples servidores y garantizar a la vez el rendimiento en su gestin

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 19
Introduccin Necesidades actuales

Limitaciones del modelo relacional

Se ajusta poco al paradigma OO utilizado en la mayora de los


lenguajes de programacin actuales
Esta situacin ha intentado ser resuelta desde hace aos 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 19
NoSQL

Sumario

1 Introduccin
Contexto actual
Necesidades actuales

2 NoSQL
Primeras propuestas
El trmino NoSQL
SGBDs NoSQL

3 Conclusiones

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 20
NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primeras


compaas en experimentar las limitaciones que imponan las
tecnologas relacionales

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 21
NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primeras


compaas en experimentar las limitaciones que imponan las
tecnologas relacionales

2004
MapReduce: Simplified Data Processing on Large Clusters

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 21
NoSQL Primeras propuestas

Primeras propuestas

2004
MapReduce: Simplified Data Processing on Large Clusters

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 21
NoSQL Primeras propuestas

Primeras propuestas

2004
MapReduce: Simplified Data Processing on Large Clusters

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 21
NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primeras


compaas en experimentar las limitaciones que imponan las
tecnologas 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 21
NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primeras


compaas en experimentar las limitaciones que imponan las
tecnologas relacionales

2007
Dynamo: Amazons 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 21
NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primeras


compaas en experimentar las limitaciones que imponan las
tecnologas relacionales

2008
Cassandra A Decentralized Structured Storage System
Propuesta inspirada en Bigtable y Dynamo

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 21
NoSQL Primeras propuestas

Primeras propuestas

Google, Amazon, Facebook y LinkedIn fueron de las primeras


compaas en experimentar las limitaciones que imponan las
tecnologas relacionales

2008
Cassandra A Decentralized Structured Storage System
Propuesta inspirada en Bigtable y Dynamo

2008
Project Voldemort
Propuesta inspirada en Dynamo

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 21
NoSQL El trmino NoSQL

El trmino NoSQL

Empleado por primera vez en el ao 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 cdigo 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 22
NoSQL El trmino NoSQL

El trmino NoSQL

NoSQL = ?
NoSQL 6= No to SQL
NoSQL = Not only SQL
Evans, E. (2009, 30 de octubre). NoSQL: Whats 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 Jimnez Universidad de La Habana


Un 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 a
problem that relational databases are a bad fit for

Evans, E. (2009, 30 de octubre). NoSQL: Whats 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 Jimnez Universidad de La Habana


Un 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 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 24
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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 24
NoSQL

Tendencias de bsqueda de Google de los trminos


RDBMS y NoSQL

Google. (2014, 13 de noviembre). Tendencias de bsqueda de Google - Inters en Bsqueda 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 25
NoSQL SGBDs NoSQL

SGBDs NoSQL
Caractersticas generales

No requieren de la definicin de un esquema de la BD


Almacenan los datos de forma no relacional
Estn diseados para arquitecturas distribuidas
Pueden ser instalados en servidores de bajo costo

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 26
NoSQL SGBDs NoSQL

Principales exponentes segn su modelo de datos

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 27
NoSQL SGBDs NoSQL

Principales exponentes en el Cuadrante Mgico de Gartner

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 28
NoSQL SGBDs NoSQL

Principales exponentes en el Cuadrante Mgico de Gartner

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 28
NoSQL SGBDs NoSQL

SGBDs llave/valor
Caractersticas 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 desempeo altsimo
En general, no hay forma de recuperar un registro basndose en el
contenido de su valor

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 29
NoSQL SGBDs NoSQL

SGBDs llave/valor
Ejemplo

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 30
NoSQL SGBDs NoSQL

Voldemort (2008)
SGBDs llave/valor

Inspirado en Dynamo
Desarrollado por LinkedIn bajo una licencia libre de Apache
Realiza automticamente la replicacin y fragmentacin de los datos
Escrito en Java
Existen bibliotecas para Java, Python, Ruby, C, C++, Lua y otros
Quin lo utiliza?: LinkedIn
Sitio oficial: http://project-voldemort.com/

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 31
NoSQL SGBDs NoSQL

Riak (2008)
SGBDs llave/valor

Inspirado en Dynamo
Desarrollado por Basho bajo una licencia dual: una versin de cdigo
abierto y otra comercial con soporte garantizado
Realiza automticamente la replicacin y fragmentacin 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
Quin lo utiliza?: Comcast y Mochi Media
Sitio oficial: http://riak.basho.com/
MSc. Javier Guillot Jimnez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 32
NoSQL SGBDs NoSQL

Redis (2009)
SGBDs llave/valor

Desarrollado por Salvatore Sanfilippo bajo la licencia BSD


Brinda un alto desempeo pues mayormente trabaja sobre la RAM
Escrito en C
Ofrece una interfaz de lnea de comandos y existen bibliotecas para
Java, Python, Ruby, C, C++, Lua, Haskell y otros
Quin lo utiliza?: Craigslist
Sitio oficial: http://redis.io/

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 33
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 slido (SSD)
Ofrece soporte para la replicacin 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 34
NoSQL SGBDs NoSQL

SGBDs orientadas a columnas


Caractersticas generales

Poseen una estructura tabular en las que las filas admiten un nmero
variable de columnas (familias de columnas)
Facilitan la representacin de datos semi-estructurados
Optimizadas para operaciones a nivel de columnas (contar, sumar,
promediar, etc.)
Logran altos niveles de escalabilidad al dividir las filas (particin
horizontal) y las columnas (particin vertical) y distribuirlas a travs
de mltiples nodos

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 35
NoSQL SGBDs NoSQL

SGBDs orientadas a columnas


Modelo de datos

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 36
NoSQL SGBDs NoSQL

SGBDs orientadas a columnas


Modelo de datos

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 36
NoSQL SGBDs NoSQL

SGBDs orientadas a columnas


Modelo de datos

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 36
NoSQL SGBDs NoSQL

Cassandra (2008)
SGBDs orientadas a columnas

Inspirado en Bigtable y Dynamo


Proyecto de cdigo abierto de Apache
Desarrollado inicialmente por Facebook
Ofrece un lenguaje de consultas CQL similar a SQL
Escrito en Java
Ofrece una interfaz de lnea de comandos y una API para Java,
adems existen bibliotecas para Python, PHP, .NET, Ruby y otros
Quin lo utiliza?: Facebook, Digg, Reddit, Twitter y otros
Sitio oficial: http://cassandra.apache.org/
MSc. Javier Guillot Jimnez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 37
NoSQL SGBDs NoSQL

HBase (2011)
SGBDs orientadas a columnas

Inspirado en Bigtable
Desarrollado como parte de Hadoop
Hadoop es una implementacin de cdigo abierto de MapReduce,
desarrollado inicialmente por Yahoo!
Ofrece un lenguaje de consultas de alto nivel: Pig
Escrito en Java
Quin lo utiliza?: Facebook, Yahoo! y otros
Sitio oficial: http://hbase.apache.org/

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 38
NoSQL SGBDs NoSQL

SGBDs orientadas a documentos


Caractersticas generales

Almacenan los datos en documentos XML, JSON u otros formatos


Ofrecen soporte para ndices secundarios
Permiten trabajar con datos ms complejos, admitindose
documentos (objetos) anidados
Se corresponde con la manera en que se modelan los objetos y sus
propiedades en los lenguajes OO

MSc. Javier Guillot Jimnez Universidad de La Habana


Un 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 comercial


Almacena los datos en documentos en formato BSON (Binary JSON)
Realiza automticamente la fragmentacin de los datos
Ofrece un lenguaje de consultas similar a SQL
Escrito en C++
Ofrece una interfaz de lnea de comandos JavaScript y una API
REST, adems existen bibliotecas para C, C++, C#, Java,
JavaScript, Perl, Python, PHP, Ruby y otros
Quin lo utiliza?: Foursquare, Github, MTV Networks y otros
Sitio oficial: https://www.mongodb.org/
MSc. Javier Guillot Jimnez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 40
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 replicacin peer-to-peer
Escrito en Erlang
Ofrece una interfaz web para la administracin y una API REST
Quin lo utiliza?: Apple, BBC, Canonical y otros
Sitio oficial: http://couchdb.apache.org/

MSc. Javier Guillot Jimnez Universidad de La Habana


Un 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 con


soporte comercial
Combina las mejores caractersticas de CouchDB y Membase
Almacena los datos en documentos JSON
Su arquitectura se adapta automticamente a los cambios en la
topologa del clster
Escrito en C, C++ y Erlang

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 42
NoSQL SGBDs NoSQL

Couchbase (2011)
SGBDs orientadas a documentos

Ofrece una interfaz web de administracin y una API HTTP RESTful


Existen bibliotecas para Java, Ruby, .NET, C, PHP, Python y otros
Couchbase Lite: versin ligera para su uso en dispositivos mviles
Quin 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 Jimnez Universidad de La Habana


Un 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 XML
Brinda soporte para consultas XQuery y XSLT
Incorpora Lucene para bsquedas a texto completo
Escrito en Java
Quin lo utiliza?: Tibetan Buddhist Resource Center (TBRC),
ScoutDragon, Semanta y otros
Sitio oficial: http://exist-db.org/
MSc. Javier Guillot Jimnez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 43
NoSQL SGBDs NoSQL

MarkLogic Server (2001)


SGBDs orientadas a documentos

Considerado un SGBD NoSQL hbrido (mltiples modelos de datos)


Desarrollado por MarkLogic bajo licencia dual: una versin libre y otra
comercial con soporte garantizado
Ofrece indexado universal
Satisface las propiedades ACID
Escrito en C++
Quin lo utiliza?: Springer, Cond Nast y otros
Sitio oficial: http://www.marklogic.com/
MSc. Javier Guillot Jimnez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 44
NoSQL SGBDs NoSQL

SGBDs orientadas a grafos


Caractersticas 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 bsqueda optimizados para grafos

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 45
NoSQL SGBDs NoSQL

SGBDs orientadas a grafos


Ejemplo: representando relaciones de amistad

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 46
NoSQL SGBDs NoSQL

SGBDs orientadas a grafos


Ejemplo: representando relaciones de amistad

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 46
NoSQL SGBDs NoSQL

SGBDs orientadas a grafos


Ejemplo: representando relaciones de amistad

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 46
NoSQL SGBDs NoSQL

SGBDs orientadas a grafos


Clasificacin segn mtodos de almacenamiento y procesamiento

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

MSc. Javier Guillot Jimnez Universidad de La Habana


Un 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 versin
libre (GPL) y otra comercial con soporte garantizado
Soporta consultas SPARQL
Satisface las propiedades ACID
Escrito en Java
Ofrece una interfaz web para la administracin y una API REST,
adems existen bibliotecas para Java, Python, Ruby, PHP y otros
Quin lo utiliza?: eBay, Walmart, Box.net y otros
Sitio oficial: http://www.neo4j.com/
MSc. Javier Guillot Jimnez Universidad de La Habana
Un acercamiento a las bases de datos NoSQL 48
NoSQL SGBDs NoSQL

Neo4j (2007)
SGBDs orientadas a grafos

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 49
Conclusiones

Sumario

1 Introduccin
Contexto actual
Necesidades actuales

2 NoSQL
Primeras propuestas
El trmino NoSQL
SGBDs NoSQL

3 Conclusiones

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 50
Conclusiones

Conclusiones

Los SGBDs NoSQL constituyen una excelente opcin para el


desarrollo de sistemas que requieren de una alta disponibilidad y el
trabajo eficiente con datos semi-estructurados y no estructurados
Existen mltiples opciones en el mundo de las tecnologas NoSQL y
resulta una tarea difcil seleccionar la ms indicada segn el caso
Deben considerarse las caractersticas del contexto de aplicacin antes
de elegir una u otra variante

MSc. Javier Guillot Jimnez Universidad de La Habana


Un 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 Databases
Reporte tcnico extrado el 1/07/2013 desde
http://masters.donntu.edu.ua/2013/fknt/babich/library/article10.pdf

MSc. Javier Guillot Jimnez Universidad de La Habana


Un 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-Large
Scale Sites, Stuttgart Media University. Extrado 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 Jimnez Universidad de La Habana
Un 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 Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 54
Lecturas recomendadas

Lecturas recomendadas IV

Robinson, I.; Webber, J. & Eifrem, E. (2013).


Graph Databases.
Sebastopol, CA: OReilly Media, Inc.
Vaish, G. (2013).
Getting Started with NoSQL.
Birmingham, UK: Packt Publishing.
Warden, P. (2011).
Big Data Glossary.
Sebastopol, CA: OReilly Media, Inc.

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 55
Un acercamiento a las bases de datos NoSQL

MSc. Javier Guillot Jimnez

Departamento de Programacin
Facultad de Matemtica y Computacin
Universidad de La Habana

4 de octubre de 2015

MSc. Javier Guillot Jimnez Universidad de La Habana


Un acercamiento a las bases de datos NoSQL 56

También podría gustarte