Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Departamento de Programacin
Facultad de Matemtica y Computacin
Universidad de La Habana
4 de octubre de 2015
1 Introduccin
Contexto actual
Necesidades actuales
2 NoSQL
Primeras propuestas
El trmino NoSQL
SGBDs NoSQL
3 Conclusiones
Sumario
1 Introduccin
Contexto actual
Necesidades actuales
2 NoSQL
Primeras propuestas
El trmino NoSQL
SGBDs NoSQL
3 Conclusiones
Contexto actual
Big Users
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.
Big Data
Big Data
Big Data
Big Data
Big Data
Big Data
Big Data
Cloud computing
Necesidades actuales
Necesidades actuales
McCreary, D. (2013, 19 de noviembre). Making Sense of NoSQL. Disponible en: http://manning.com/mccreary (03/05/2014)
Escalamiento vertical
Escalamiento horizontal
ACID
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:
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.
Teorema CAP
Teorema CAP
McCreary, D. (2013, 19 de noviembre). Making Sense of NoSQL. Disponible en: http://manning.com/mccreary (03/05/2014)
BASE
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.
Necesidades actuales
Sumario
1 Introduccin
Contexto actual
Necesidades actuales
2 NoSQL
Primeras propuestas
El trmino NoSQL
SGBDs NoSQL
3 Conclusiones
Primeras propuestas
Primeras propuestas
2004
MapReduce: Simplified Data Processing on Large Clusters
Primeras propuestas
2004
MapReduce: Simplified Data Processing on Large Clusters
Primeras propuestas
2004
MapReduce: Simplified Data Processing on Large Clusters
Primeras propuestas
2004
MapReduce: Simplified Data Processing on Large Clusters
2006
Bigtable: A Distributed Storage System for Structured Data
Primeras propuestas
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.
Primeras propuestas
2008
Cassandra A Decentralized Structured Storage System
Propuesta inspirada en Bigtable y Dynamo
Primeras propuestas
2008
Cassandra A Decentralized Structured Storage System
Propuesta inspirada en Bigtable y Dynamo
2008
Project Voldemort
Propuesta inspirada en Dynamo
El trmino NoSQL
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
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
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
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
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
Google. (2014, 13 de noviembre). Tendencias de bsqueda de Google - Inters en Bsqueda en la Web: nosql, rdbms - Todo el
SGBDs NoSQL
Caractersticas generales
SGBDs llave/valor
Caractersticas generales
SGBDs llave/valor
Ejemplo
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/
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
Aerospike (2012)
SGBDs llave/valor
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
Cassandra (2008)
SGBDs orientadas a columnas
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/
MongoDB (2009)
SGBDs orientadas a documentos
CouchDB (2005)
SGBDs orientadas a documentos
Couchbase (2011)
SGBDs orientadas a documentos
Couchbase (2011)
SGBDs orientadas a documentos
eXist (2001)
SGBDs orientadas a documentos
Robinson, I.; Webber, J. & Eifrem, E. (2013). Graph Databases. Sebastopol, CA: OReilly Media, Inc.
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
Sumario
1 Introduccin
Contexto actual
Necesidades actuales
2 NoSQL
Primeras propuestas
El trmino NoSQL
SGBDs NoSQL
3 Conclusiones
Conclusiones
Lecturas recomendadas I
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
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.
Lecturas recomendadas IV
Departamento de Programacin
Facultad de Matemtica y Computacin
Universidad de La Habana
4 de octubre de 2015