Bases de Datos Avanzadas

Usted está aquí

Créditos
6
Tipos
Obligatoria
Requisitos
Esta asignatura no tiene requisitos, pero tiene capacidades previas
Departamento
ESSI
Esta asignatura forma a los estudiantes en las competencias necesarias para diseñar y configurar bases de datos analíticos, evaluando las distintas alternativas posibles en el contexto de su empresa. Se tratan conceptos de bases de datos relacionales genéricas (aplicables a entornos decisionales de almacenamiento de datos), para profundizar después en las alternativas no relacionales, también conocidas como gestores NoSQL, más apropiados para entornos Big Data. Primero se presentarán conceptos de almacenes de datos y, después, gestores de datos específicos (key-value y columnares) y arquitecturas (distribuidas y en memoria) alternativas a las bases de datos relacionales en ciertos escenarios. Se incluye también una introducción al diseño y configuración de bases de datos no relacionales, enfatizando la configuración en entornos analíticos y, incluyendo el tratamiento masivo de datos en entornos de estilo funcional. Los conocimientos impartidos son imprescindibles para afrontar las tareas propias del ingeniero de datos.

Profesores

Responsable

  • Alberto Abello Gamazo ( )

Otros

  • Oscar Romero Moral ( )
  • Sergi Nadal Francesch ( )

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0.4
Aprendizaje autónomo
6

Competencias

Competencias Técnicas

Competencias técnicas

  • CE7 - Demostrar conocimiento y capacidad de aplicación de las herramientas necesarias para el almacenaje, el procesamiento y el acceso a los datos.

Competencias Transversales

Transversales

  • CT4 - Trabajo en equipo. Ser capaz de trabajar como miembro de un equipo interdisciplinar, ya sea como un miembro más o realizando tareas de dirección, con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.
  • CT6 - Aprendizaje autónomo. Detectar deficiencias en el propio conocimiento y superarlas mediante la reflexión crítica y la elección de la mejor actuación para ampliar dicho conocimiento.
  • CT7 - Tercera lengua. Conocer una tercera lengua, preferentemente el inglés, con un nivel adecuado oral y escrito y en consonancia con las necesidades que tendrán los titulados y tituladas.

Básicas

  • CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
  • CB3 - Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.

Competencias Técnicas Genéricas

Genéricas

  • CG1 - Concebir sistemas computacionales que integren datos de procedencias y formas muy diversas, creen con ellos modelos matemáticos, razonen sobre dichos modelos y actúen en consecuencia, aprendiendo de la experiencia.
  • CG2 - Elegir y aplicar los métodos y técnicas más adecuados a un problema definido por datos que representen un reto por su volumen, velocidad, variedad o heterogeneidad, incluidos métodos informáticos, matemáticos, estadísticos y de procesado de la señal.

Objetivos

  1. Ser capaz de discutir y justificar con detalle los cuellos de botella de los gestores relacionales frente a sistemas de almacenamiento y procesamiento alternativos.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG1, CG2, CB2, CB3,
  2. Ser capaz de analizar los pros y contras de tener (o no) un modelo único de referencia que se adapte a todos los posibles escenarios de almacenamiento.
    Competencias relacionadas: CT7, CG1, CG2, CB2, CB3,
  3. Ser capaz de detectar y corregir defectos en un diseño lógico.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG2, CB2, CB3,
  4. Ser capaz de obtener el esquema lógico a partir de un esquema conceptual expresado en UML teniendo en cuenta las consecuencias de la variedad y variabilidad de los datos.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG1, CG2, CB2, CB3,
  5. Ser capaz, dadas unas ciertas características de los datos (volumen, variabilidad de esquema / datos, carga de trabajo esperada), elegir el modelo de datos y las estructuras físicas adecuadas para garantizar un correcto balance entre mantenimiento de la base de datos y rendimiento .
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG1, CG2, CB2, CB3,
  6. Ser capaz de explicar el funcionamiento y calcular los costo de acceso de las principales estructuras de datos utilizadas por los gestores.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG2, CB2, CB3,
  7. Ser capaz de obtener el plan de acceso de una consulta según unos criterios de optimización.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG2, CB2, CB3,
  8. Ser capaz de reproducir la ejecución de los algoritmos que intervienen en un árbol de proceso y de estimar su coste.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG2, CB2, CB3,
  9. Ser capaz de decidir los índices (primarios y secundarios) que hay que definir en función de las operaciones esperadas.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG2, CB2, CB3,
  10. Ser capaz de elegir y justificar el uso de almacenamiento basado en filas o columnas.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG2, CB2, CB3,
  11. Ser capaz de explicar y utilizar los principales mecanismos de procesamiento paralelo de consultas en entornos distribuidos, y detectar cuellos de botella.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG2, CB2, CB3,
  12. Ser capaz de discutir y justificar con detalle los principios arquitectónicos que comparten los nuevos sistemas de almacenamiento no relacionales.
    Competencias relacionadas: CE7, CT6, CT7, CG2, CB2, CB3,
  13. Ser capaz de, dado un escenario concreto con unos requerimientos de usuario (parciales o totales), identificar qué características de los gestores relacionales actuarían potencialmente como cuello de botella y hablar qué tipos de gestores de almacenamiento serían más adecuadas.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG1, CG2, CB2, CB3,
  14. Ser capaz de justificar y utilizar entornos de procesamiento distribuido de datos de estilo funcional, tipo MapReduce/Spark.
    Competencias relacionadas: CE7, CT4, CT6, CT7, CG1, CG2, CB2, CB3,

Contenidos

  1. Introducción
    Almacenamiento de datos en entornos analíticos y Big Data
  2. Almacenamiento de datos
    Almacenamiento de datos. Flujos de datos ETL. Integración de datos. Herramientas OLAP.
  3. Técnicas para la mejora de rendimiento de sistemas de bases de datos
    Vistas materializadas. Estructuras de datos y técnicas de indexación (hash, árboles y bitmaps). Técnicas de compresión y almacenamiento columnar. Paralelismo.
  4. Bases de datos distribuidas
    Taxonomía de bases de datos distribuidas. Arquitecturas. Diseño de bases de datos distribuidas (fragmentación y replicación). Métricas de escalabilidad. Sistemas no relacionales Key-Value.
  5. Procesamiento distribuido de datos
    Importancia del acceso secuencial paralelo. Barreras de sincronización (Bulk Synchronous Parallel modelo). Entornos de procesamiento distribuido de datos de estilo funcional (MapReduce y Spark). Abstracción de conjuntos de datos distribuidos (Resilient Distributed Datasets).

Actividades

Actividad Acto evaluativo


Introducción

Introducción de la asignatura, motivación y visión general de las herramientas de gestión de datos existentes actualmente, sus ventajas e inconvenientes
Objetivos: 1
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Estudio de los almacenes de datos



Teoría
10h
Problemas
0h
Laboratorio
12h
Aprendizaje dirigido
1h
Aprendizaje autónomo
32h

Estudio de técnicas de mejora del rendimiento de sistemas de bases de datos

Aprendizaje de los tipos de problemas de gestión de vistas materializadas y estructuras de indexación, así como los principales costes asociados que tienen en cada caso
Objetivos: 9 6 10
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
1h
Aprendizaje autónomo
12h

Estudio de bases de datos distribuidas

Aprendizaje de los principios de bases de datos distribuidas y su aplicación en sistemas NOSQL
Objetivos: 1 12 13 11
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
1h
Aprendizaje autónomo
12h

Estudio del procesamiento distribuido de datos

Aprendizaje de técnicas de procesamiento distribuido de datos en entornos de estilo funcional
Objetivos: 14
Contenidos:
Teoría
10h
Problemas
0h
Laboratorio
10h
Aprendizaje dirigido
1h
Aprendizaje autónomo
24h

Examen final

Examen global de la asignatura
Objetivos: 1 2 12 9 7 8 3 4 13 6 11 10 14 5
Semana: 15 (Fuera de horario lectivo)
Tipo: examen final
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
2h
Aprendizaje autónomo
10h

Metodología docente

A las horas de teoría el profesor expone los conceptos correspondientes a alguno de los contenidos. Algunos de los conceptos no son discutidos por el profesor sino que los estudiantes deben trabajar materiales publicados en el campus virtual. Las dudas que puedan surgir al leer estos materiales se resuelven por parte del profesor o de los propios compañeros, mediante actividades de aprendizaje cooperativo.

A las horas de laboratorio el profesor presenta diferentes ejercicios, que los estudiantes deben solucionar por parejas y que se resolverán en clase. Aparte de esto, se harán también dos proyectos: uno de análisis descriptivo de datos en un almacén de datos y el otro de análisis predictivo en un entorno Big Data.

El curso también tiene una componente de aprendizaje autónomo, dado que deberán trabajar con diferentes herramientas de gestión de datos (relacionales y no relacionales). Aparte del material de apoyo, deben ser capaces de resolver dudas o problemas de uso de estos gestores.

Método de evaluación

Nota final = max(20%EP+40%EF ; 60% EF) + 40% P

EP = nota del examen parcial
EF = nota del examen final
P = nota de proyecto, como promedio ponderado de los proyectos del curso

Para los estudiantes que puedan concurrir a la reavalaució, la nota del examen de reevaluación sustituirá EF.

Bibliografía

Básica:

Complementaria:

Capacidades previas

Ser capaz de leer y entender materiales en inglés.
Ser capaz de enumerar las etapas que conforman el proceso de la ingeniería de software.
Ser capaz de entender esquemas conceptuales en UML.
Ser capaz de crear, consultar y manipular bases de datos con SQL.