MÓDULO II: BASES DE DATOS NO CONVENCIONALES
Presentación y contextualización
La web, el software como servicio, los servicios en la nube y las startups de éxito con millones de usuarios, han sido los artífices de que llegaran los problemas de alta escalabilidad. Las BBDD NoSQL pretenden acabar con este problema aportando una estructura de almacenamiento más versátil recurriendo a la desnormalización de los datos para obtener una mayor escalabilidad
Dentro del Máster es importante adquirir una visión sólida de las herramientas más utilizadas en ese contexto, dado que las arquitecturas Big Data tienen como propósito mover y tratar datos masivos estructurados y no estructurados, de una manera rápida y con herramientas con alta escalabilidad.
En este módulo se proporciona una visión general de las diferentes soluciones existentes en el mercado, clasificándolas por su tipología de almacenamiento, y atendiendo a su uso en proyectos reales dentro del contexto Big Data. El objetivo está en comprender la estructura de estas herramientas y las técnicas desde el punto de vista de su uso y potencial utilidad, entrando en los detalles de su funcionamiento interno y en los criterios especializados para su selección.
Requisitos y/o recomendaciones
El módulo requiere conocimientos básicos de:
- Programación para el desarrollo de algunos de los módulos, ya que para el desarrollo de algunas de las prácticas necesitaremos un programa que interactúa con el producto a modo cliente.
- Conocimientos en el estándar JSON sería aconsejable ya que se utiliza como vehículo de aprendizaje en la estructura de datos de la mayoría de las herramientas.
- Conocimientos básicos de SQL standard también se considera aconsejable.
Dado que cada una de las herramientas que veremos deben de ser instaladas y configuradas en diferentes formas, utilizaremos Docker (Tecnología de virtualización ligera) mediante la cual tendremos un contenedor donde empaquetar la instalación de cada producto y ejemplos que veamos en las clases. Para un uso rápido y cómodo de Docker deberemos disponer de alguna distribución Linux durante las sesiones, bien como sistema operativo principal o instalado como máquina virtual mediante VirtualBox. Esta máquina será facilitada por el profesor en caso necesario.
Competencias que se adquieren
- Conocer y comprender el concepto de BBDD noSQL.
- Conocer y ser capaz de instalar diferentes BBDD NoSQ
- Ser capaces de administrar estos sistemas de manera básica
- Ser capaz de realizar operaciones CRUD sobre estas BBDD.
- Ser capaz de conectar mediante clientes con estas BBDD.
- Comprender qué BBDD utilizar dependiendo del contexto del proyecto.
- Comprender la integración de estas BBDD en proyectos Big Data.
Contenidos
En la asignatura se tratarán los siguientes contenidos:
- Concepto de persistencia Políglota y Tipología
- Introducción a BBDD NoSQL.
- Origen y su uso en el mundo real.
- Teorema de CAP y Clasificación por tipo.
- Introducción a Dockers
- Introducción a JSON
- Bases de datos Documentales
- MongoDB
- CouchBase
- Bases de datos Clave Valor
- Redis
- Bases de datos columnares
- Cassandra
- Bases de datos orientadas a grafos.
- Neo4J
Descripción en detalle
Persistencia Políglota y Tipología.
- Que es NoSQL y porque aparece.
- Teorema de CAP.
- Tipos de BBDD NoSQL.
- BBDD NoSQL Orientadas a Documentos.
- BBDD NoSQL Orientadas a Columnas.
- BBDD NoSQL Clave-Valor.
- BBDD NoSQL Orientadas a Grafos
- Introducción a JSON
MongoDB
- Introducción a MongoDB
- Crear y borrar BBDD.
- Trabajar con colecciones
- Trabajar con documentos CRUD: De usuarios y de roles
- Conocer índices, tipos, propiedades y diseño
- Modelado de datos
- Operaciones y operadores
- Arquitectura(Tipología de nodos y diseño de la arquitectura)
- Sharding y Replicación
- Herramientas gráficas para MongoDB
Redis
- Introducción a Redis.
- Características e instalación.
- Arquitectura Redis.
- Modelado de Datos y estructuras en Redis.
- Conexión a Redis desde tu aplicación.
- Casos de uso.
- Herramientas Gráficas para Redis.
Cassandra
- Introducción a Cassandra.
- Características e instalación.
- Arquitectura en Cluster.
- Estructura y Modelado de Datos en Cassandra.
- Características Internas.
- CQL.
- Herramientas Gráficas para Cassandra.
Neo4J
- Introducción a Neo4j.
- Preparando los entornos.
- Consultando conceptos básicos – Nodos y relaciones.
- Consultando los fundamentos – Filtrado, transformación.
- Consultar los conceptos básicos – Agregación y otras funciones básicas.
- CRUD de documentos.
- Joins.
- Trabajar con relaciones.
- Clusters y arquitectura.
- Visualización de Grafos.
- Comunidad Neo4j.
CouchBase
- Introducción
- Plataforma de datos de Couchbase
- JSON & Couchbase
- Tipos de nodos
- ¿Cómo funciona Couchbase?
- Buckets de datos
- CRUD de documentos en couchbase
- Indices
- Agregaciones
- SDK de Couchbase
- Disponibilidad y recuperación
- HA / DR en Couchbase
- Herramientas de administración
- Seguridad
- Ecosistema
- Casos de uso de Couchbase.
Bibliografía
- MongoDB:The Definitive Guide, 3rd Edition: http://shop.oreilly.com/product/0636920049531.do
- Neo4j: Neo4j in Action: https://neo4j.com/books/neo4j-in-action-book/
- Cassandra: The definitive Guide. O’Reilly Media. http://shop.oreilly.com/product/0636920010852.do
- Redis CookBook. O’Reilly Media. http://shop.oreilly.com/product/0636920020127.do
- Docker in Action. Manning: http://amzn.eu/0SrpEzY
- Couchbase Essentials . O’Reilly Media.
Recursos de apoyo y Webgrafía
- MongoDB: https://docs.mongodb.com
- Neo4J: https://neo4j.com/
- CouchBase: https://developer.couchbase.com/documentation/server/current/introduction/intro.html
- Cassandra: http://docs.datastax.com/en/landing_page/doc/landing_page/current.html
- Redis: https://redis.io/documentation
- Docker: https://docs.docker.com/