Información general


  • Tipo de asignatura: Obligatoria
  • Coordinador: Adso Fernández Baena
  • Trimestre: 1
  • Créditos: 4
  • Profesorado:

Idiomas de impartición


  • Castellano
  • English
  • Català

Esta asignatura es parte de la oferta para estudiantes internacionales. La docencia de esta asignatura es en castellano. Algunas sesiones, la bibliografía, parte de los contenidos y las herramientas pueden ser en inglés. Sin embargo, el catalán, la lengua de nuestro país, puede ser usada libremente por sus estudiantes.

Descripción


El objetivo general de la asignatura es la profundización en el conocimiento de las bases de datos y los sistemas gestores de bases de datos, descubriendo la ampliación procedimental del lenguaje SQL para la implementación de los diseños externos de las bases de datos, conociendo la arquitectura de los SGBD para poder gestionar los métodos de acceso a los datos, optimizar las consultas SQL, definir el diseño físico y gestionar la concurrencia.

Esta asignatura dispone de recursos metodológicos y digitales para hacer posible su continuidad en modalidad no presencial en el caso de ser necesario por motivos relacionados con la Covid-19. De esta forma se asegura el poder obtener los mismos conocimientos y competencias que se especifican en este plan docente.

 

Resultados de aprendizaje


A nivel general, esta asignatura contribuye a los siguientes resultados de aprenedizaje especificados para la materia de ingeniería del software a la que pertenece:

  • (1) Utilizar de forma apropiada teorías, procedimientos y herramientas en el desarrollo profesional de la ingeniería informática en todos sus ámbitos (especificación, diseño, implementación, despliegue -implantación- y evaluación de productos) de manera que se demuestre la comprensión de los compromisos adoptados en las decisiones de diseño.
  • (2) Tomar iniciativas que generen oportunidades, nuevos objetos o soluciones nuevas, con una visión de implementación de proceso y de mercado, y que implique y haga partícipes a los otros en proyectos que se tienen que desarrollar (capacidad de actuar de manera autónoma).
  • (3 )Especificar, diseñar, implementar, gestionar y mantener sistemas y servicios software complejos y/o críticos.
  • (4) Evaluar y seleccionar plataformas de producción hardware y software para la ejecución de aplicaciones y de servicios informáticos.
  • (5) Evaluar sistemas hardware/software en función de un criterio de calidad determinado.
  • (6) Determinar los factores que inciden negativamente en la seguridad y la fiabilidad de un sistema hardware/software, y minimizar sus efectos.
  • (7) Identificar tecnologías actuales y emergentes y evaluar si son aplicables, y en qué medida, para satisfacer las necesidades de los usuarios.
  • (8) Diseñar soluciones que integren tecnologías de hardware, software y comunicaciones (y capacidad de desarrollar soluciones específicas de software de sistemas) para sistemas distribuidos y dispositivos de computación ubicua.
  • (9) Comprender y utilizar eficazmente manuales, especificaciones de productos y otra información de carácter técnico escrita en inglés.

A un nivel más concreto, al acabar la asignatura el estudiante debe ser capaz de:

  • RA1: Programar de forma avanzada en un lenguaje procedimental de definición de bases de datos (en el curso 2018/2019 con PL/SQL de Oracle).(Colabora a 1,2,3,4,5,6,9)
  • RA1.1: Desarrollar funciones, procedimientos y paquetes con PL/SQL. (Colabora a 1,2,3,4,5,6,9)
  • RA1.2: Gestionar excepciones con PL/SQL. (Colabora a 1,2,3,4,5,6,9)
  • RA1.3: Definir disparadores de bases de datos con PL/SQL. (Colabora a 1,2,3,4,5,6,9)
  • RA2: Implementar un diseño externo con vistas, vistas materializadas, procedimientos, funciones y paquetes. (Colabora a 1,2,3,4,5,6,8,9)
  • RA3: Implementar un diseño interno o físico a partir del diseño lógico. (Colabora a 1,2,3,4,5,6,7,8,9)
  • RA4: Definir bases de dades distribuídas. (Colabora a 1,2,3,4,5,6,7,8,9)
  • RA5: Identificar las partes y las funciones de cada componente de la arquitectura de un sistema gestor de base de datos. (Colabora a 1,2,4,5,6,7,9)
  • RA6: Optimizar la ejecución de sentencias SQL decidiendo el mejor plan de ejecución y los mejores métodos de acceso en cada caso: índices B-Tree y Bitmap, funciones de Hash, clusters. (Colabora a 1,2,3,4,5,6,7,9)
  • RA7: Definir y gestionar la concurrencia en bases de datos. (Colabora a 1,2,3,4,5,6,7,8,9)
  • RA8: Gestionar la ejecución concurrente de sentencias SQL. (Colabora a 1,2,3,4,5,6,8,9)

Metodologia de trabajo


Las horas de aprendizaje dirigido comprenden:

Clases teóricas en gran grupo en las que:

 > El profesorado o los profesionales invitados introducen los contenidos de la asignatura.

 > Se realizan pequeñas actividades docentes que persiguen que el estudiante sea un protagonista activo en la adquisición de sus conocimientos.

> Se realizan workshops o seminarios prácticos donde se trabajan y se desarrollan los contenidos 

Prácticas en equipos pequeños de dos personas que tienen una parte que se realiza en el laboratorio conducidas o supervisadas por el profesorado y una parte en la que el equipo debe funcionar autónomo.

Dentro de las horas de aprendizaje autónomo se consideran las horas para preparar las clases teóricas, las horas para estudiar y consolidar los conocimientos adquiridos, las horas para preparar el trabajo de las prácticas y, por último, las horas que el estudiante puede dedicar a aumentar y complementar sus conocimientos sobre la materia.

Las herramientas confirmadas que se utilizarán en el curso 2020/21 son: Oracle Academy, PL/SQL, Oracle APEX, Oracle Database i Oracle SQL Developer

Este curso, a causa de la situación generada por la pandèmia COVID-19, algunas de las sesiones de gran grupo pueden realizarse -si la situación sanitaria lo requiere- en formato híbrido: presencial y en línia (via streaming).  El formato permite que los estudiantes puedan ir rotativamente a les clases presenciales, respectando el número de estudiantes por aula que impongan las medidas de distanciamiento. Cuando no les toque sessión presencial podran seguir la clase en línia.

Con respecto a las sesiones de prácticas en espacios más reducidos como los laboratorios, si fuera necesario se impartiran en espacios de más capacidad o se realizarán simultaniamente en diversos espacios para garantizar que se cumplan las condiciones establecidas por los protocolos de seguridad.

 

Contenidos


Tema 1

Título contenido 1 Diseño externo de bases de datos

Dedicación: GG:15h GP:6h AA:30h

 

 

 

Descripción

Introducción a los lenguajes procedimentales de bases de datos, que permiten enriquecer del diseny lógico i la definición de reglas de negocio avanzadas de bases de datos por un lado y, por otra, implementar el diseño externo y el diseño distribuído.

Temari

1.1 Lenguajes transaccionales o procedimentales de los SGBD

1.2 Procedimientos y funciones

1.3 Tipos Abstractos de Datos: paquetes y tipos.

1.4 Disparadores

1.5 Sinónimos, vistas, vistas materializadas

1.6 Implementación de esquemas externos

1.7 Implementación de bases de datos distribuídas

Tema 2

Títol contingut 2:  Arquitectura, estructura, mètodes d'accés i optimització de SGBD

Dedicació:GG:10h GP:2h AA:20h

 

 

 

Descripció

Aprofundiment en el coneixement de les bases de dades i dels sistemes gestors de bases de dades, l’arquitectura dels SGBD per a poder gestionar els mètodes d’accés a les dades, optimitzar l’execució de les consultes SQL i definir el disseny físic.

Temari

2.1 Arquitectura de SGBD

2.2 Estructura interna de bases de dades

2.3 Mètodes d'accés

2.4 Processament de consultes i plans d'execució

2.5 Optimització de sentències SQL

Tema 3

Títol contingut 3:  Control de concurrència

Dedicació:GG:5h GP:2h AA:10h

 

 

 

Descripció

Introducció al control de concurrència en bases de dades, aprenentatge de les eines per gestionar les transaccions, la concurrència i els sistemes ACID. Gestió de la consistència en lectura i actualització.

Temari

3.1 Gestió de transaccions i control de concurrència

2.2 Sistemes ACID

2.3 Consistència en lectura

2.4 Gestió de la seriabilitat, els bloquejos i es deadlocks.

Actividades de aprendizaje


Actividad 1:

Laboratorio de práctiques de programación con lenguajes procedimentales de definición de bases de datos
(MECES 2 descriptores a) b) c) d) y f) )

Descripción:

Prácticas de programación de bloques, excepciones, procedimientos, funciones, paquetes y disparadores con PL/SQL.

Tres sesiones de prácticas (grupo pequeño), la 1, 2 y 3 dónde se trabaja el lenguaje PL/SQL d'Oracle

Material: Oracle12c, PL/SQL, SQL Developer, Oracle APEX, Oracle Academy
Entregable:

Evaluación individual: ejercicios y cuestiones resueltas individualmente

Resultados de aprendizaje RA1 (RA 1.1, RA 1.2 y RA 1.3)
Competencias a las que colabora

B2 (aplicar conocimientos de PL / SQL a resolver problemas reales de uso de datos)
B4 (redactar comentarios técnicos al código del script de PL / SQL)
B5 (descubrir aplicaciones avanzadas de definición avanzada de bases de datos con lenguajes procedimentales que puedan ampliar la vida profesional o complementar su formación con cursos especializados)
T1 (leer documentación técnica en inglés y usar comandos y sentencias PL / SQL con palabras clave en inglés)
T2 (actividad realizada en equipo de dos)
EFB4 (Programación con PL / SQL para consultar, actualizar y definir datos)
CIN1 (Desarrollar bases de datos que sean fiables, seguras y de calidad)
CIN8_ (Capacidad para construir y mantener bases de datos de forma robusta, segura y eficiente)
CIN12_ (Conocimiento y aplicación de las características, funcionalidades y estructura de las bases de datos)
CIN13_ (Conocimiento y aplicación de las herramientas necesarias para el almacenamiento, procesamiento y acceso a los sistemas de información)
EIS1_ (Desarrollar, mantener y evaluar bases de datos que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente)
EIS2_ (Valorar las necesidades del cliente y especificar los requisitos de la base de datos para satisfacer estas necesidades)
EIS4_ (Identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software en el campo de las bases de datos)
ESI3_ (Participar activamente en la especificación, diseño, implementación y mantenimiento de las bases de datos que necesitan los sistemas de información y comunicación)

Evaluación: 10% de la nota de la asignatura

 

Actividad 2:

Proyecto de diseño externo e interno de una base de datos 
(MECES 2 descriptores a) b) c) d) e) y f) )

Descripción:

Proyecto de curso para la definición de una base de datos siguiendo las etapas de diseño conceptual, lógico, físico para acabar con una propuesta de diseño externo.

Seminarios 1,2 y 3

Material de soporte: Oracle12c, PL/SQL, SQL Developer, Oracle APEX, Oracle Academy, herramienta de modelización y generación de bases de datos
Entregables:

Evaluación individual: particiàción en seminarios, ejercicios y cuestiones resueltas individualmente

Resultados de aprendizaje  RA1 (RA 1.1, RA 1.2, RA 1.3), RA2 
Competencias a les que colabora

B2 (aplicar conocimientos de diseño externo de bases de datos a resolver problemas reales de uso de datos)
B4 (redactar y geneerar la documentación del proyecto)
B5 (descubrir técnicas avanzadas de diseño externo de bases de datos que puedan ampliar la vida profesional o complementar su formación con cursos especializados)
T1 (leer documentación técnica en inglés y usar comandos y sentencias PL / SQL con palabras clave en inglés)
T2 (actividad realizada en equipo de dos)
CIN1 (Diseñar y desarrollar bases de datos que sean fiables, seguras y de calidad)
CIN2 (Planificar y desarrollar un proyecto de diseño y desarrollo de base de datos)
CIN3 (Comprender la importancia de las habilidades de comunicación en la redacción de informes técnicos)
CIN4 (Elaborar el pliego de condiciones técnicas de un diseño externo de bases de datos)
CIN5_ (Uso de un diseño externo para mejorar la administración y el mantenimiento de una base de datos)
CIN8_ (Capacidad para analizar, diseñar, construir y mantener bases de datos de forma robusta, segura y eficiente)
CIN12_ (Conocimiento y aplicación de las características, funcionalidades y estructura de las bases de datos)
CIN13_ (Conocimiento y aplicación de las herramientas necesarias para el almacenamiento, procesamiento y acceso a los sistemas de información) CIN14_ (Conocimiento y aplicación de los principios fundamentales y técnicas básicas de la programación de la concurrencia a bases de datos y de la distribución de datos)
EIS1_ (Desarrollar, mantener y evaluar bases de datos que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente)
EIS2_ (Valorar las necesidades del cliente y especificar los requisitos de la base de datos para satisfacer estas necesidades)
EIS4_ (Identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software en el campo de las bases de datos)
EIS5_ (Identificar, evaluar y gestionar los riesgos potenciales asociados a un acceso a la base de datos sin capa de diseño externo)
EIS6_ (Diseñar soluciones que permitan aislar y gestionar el acceso a datos sensibles como las personales mediante un diseño externo)
ESI2_ (Determinar requisitos de diseño externo para desarrollar los sistemas de información y comunicación de una organización teniendo presente aspectos de seguridad y cumplimiento de la normativa y la legislación vigente)
ESI3_ (Participar activamente en la especificación, diseño, implementación y mantenimiento de las bases de datos que necesitan los sistemas de información y comunicación)

Evaluación 10% de la nota de la asignatura

 

Actividad 3:

Laboratorio de prácticas de optimización de sentencias SQL y control de concurrencia
(MECES 2 descriptores a) b) c) d) y f) )

Descripción:

Técnicas de optimización de consultas y uso del EXPLAIN PLAN
Control de concurrencia: gestión de seriabilitat, consistencia en lectura, bloqueos e inter-bloqueos
Dos sesiones de prácticas (grupo pequeño), la 4 y 5 y tres seminarios (3, 4 y 5).

Material: Oracle12c, SQL Developer, Oracle APEX
Entregable:

Evaluación individual: participación en seminarios, ejercicios y cuestiones resueltas individualmente

Resultados de aprendizaje (RA3, RA4, RA5, RA6, RA7, RA8)
Competencias a las que colabora

B2 (aplicar conocimientos de diseño externo de bases de datos para resolver problemas reales de uso de datos)
B4 (redactar y generar la documentación del proyecto)
B5 (descubrir técnicas avanzadas de diseño externo de bases de datos que puedan ampliar la vida profesional o complementar su formación con cursos especializados)
T1 (leer documentación técnica en inglés y usar comandos y sentencias PL / SQL con palabras clave en inglés)
T2 (actividad realizada en equipo de dos)
CIN1 (Diseñar y desarrollar bases de datos que sean fiables, seguras y de calidad)
CIN2 (Planificar y desarrollar un proyecto de diseño y desarrollo de base de datos)
CIN3 (Comprender la importancia de las habilidades de comunicación en la redacción de informes técnicos)
CIN4 (Elaborar el pliego de condiciones técnicas de un diseño externo de bases de datos)
CIN5_ (Uso de un diseño externo para mejorar la administración y el mantenimiento de una base de datos)
CIN8_ (Capacidad para analizar, diseñar, construir y mantener bases de datos de forma robusta, segura y eficiente)
CIN12_ (Conocimiento y aplicación de las características, funcionalidades y estructura de las bases de datos)
CIN13_ (Conocimiento y aplicación de las herramientas necesarias para el almacenamiento, procesamiento y acceso a los sistemas de información) CIN14_ (Conocimiento y aplicación de los principios fundamentales y técnicas básicas de la programación de la concurrencia a bases de datos y de la distribución de datos)
EIS1_ (Desarrollar, mantener y evaluar bases de datos que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente)
EIS2_ (Valorar las necesidades del cliente y especificar los requisitos de la base de datos para satisfacer estas necesidades)
EIS4_ (Identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software en el campo de las bases de datos)
EIS5_ (Identificar, evaluar y gestionar los riesgos potenciales asociados a un acceso a la base de datos sin capa de diseño externo)
EIS6_ (Diseñar soluciones que permitan aislar y gestionar el acceso a datos sensibles como las personales mediante un diseño externo)
ESI2_ (Determinar requisitos de diseño externo para desarrollar los sistemas de información y comunicación de una organización teniendo presente aspectos de seguridad y cumplimiento de la normativa y la legislación vigente)
ESI3_ (Participar activamente en la especificación, diseño, implementación y mantenimiento de las bases de datos que necesitan los sistemas de información y comunicación)

Evaluación: 10% de la nota de la asignatura.

 

Actividad 4:

Examen de diseño externo y de programación con lenguajes procedimentales de definición de bases de datos (Tema 1):

(MECES 2 descriptores a) b) c) y d)

Descripción: Prueba individual para evaluar los conocimientos adquiridos sobre diseño externo de bases de datos y programación con lenguajes procedimentales de bases de datos
Entregables:
  • Preguntas y ejercicios de lenguajes procedimentales
  • Preguntas y ejercicios de diseño externo de base de datos
Resultados de aprendizaje RA1 (RA1.1, RA1.2, RA1.3) RA2
Competencias a las que colabora

B2 (aplicar conocimientos de PL / SQL y diseño externo de bases de datos para resolver problemas reales de uso de datos)
EFB4 (Programación con PL / SQL para consultar, actualizar y definir datos)
CIN1 (Diseñar y desarrollar bases de datos que sean fiables, seguras y de calidad)
CIN2 (Planificar y desarrollar un proyecto de diseño y desarrollo de base de datos)
CIN4 (Elaborar el pliego de condiciones técnicas de un diseño externo de bases de datos)
CIN5_ (Uso de un diseño externo para mejorar la administración y el mantenimiento de una base de datos)
CIN8_ (Capacidad para analizar, diseñar, construir y mantener bases de datos de forma robusta, segura y eficiente)
CIN12_ (Conocimiento y aplicación de las características, funcionalidades y estructura de las bases de datos)
CIN13_ (Conocimiento y aplicación de las herramientas necesarias para el almacenamiento, procesamiento y acceso a los sistemas de información)
CIN14_ (Conocimiento y aplicación de los principios fundamentales y técnicas básicas de la programación de la concurrencia a bases de datos y de la distribución de datos)
EIS1_ (Desarrollar, mantener y evaluar bases de datos que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente)
EIS2_ (Valorar las necesidades del cliente y especificar los requisitos de la base de datos para satisfacer estas necesidades)
EIS4_ (Identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software en el campo de las bases de datos)
ESI2_ (Determinar requisitos de diseño externo para desarrollar los sistemas de información y comunicación de una organización teniendo presente aspectos de seguridad y cumplimiento de la normativa y la legislación vigente)
ESI3_ (Participar activamente en la especificación, diseño, implementación y mantenimiento de las bases de datos que necesitan los sistemas de información y comunicación)

Evaluación: 35% de la nota de la asignatura

 

Actividad 5:

Examen de arquitectura de SGBD, optimización y control de concurrencia (Temas 2 y 3)
(MECES 2 descriptores a) b) c) y d) )

Descripción: Prueba de evaluación individual para medir el nivel de experiencia en optimización de sentencias SQL y en el uso de SQL para gestionar transacciones y controlar la concurrencia
Entregables: Resolución de problemas de optimización de sentencias SQL
Evaluación de arquitecturas, estructuras físicas y métodos de acceso a SGBD
Resolución de problemas de gestión de transacciones y control de la concurrencia
Resultados de aprendizaje RA3, RA4, RA5, RA6, RA7, RA8
Competencias a las que colabora

B2 (aplicar conocimientos de optimización y concurrencia para resolver problemas reales de uso de datos)
EFB4 (Programación con SQL para consultar el optiització y gestionar la concurrencia)
CIN1 (Diseñar y desarrollar bases de datos que sean fiables, seguras y de calidad)
CIN4 (Elaborar condiciones y requisitos técnicos de un diseño interno de bases de datos)
CIN5 (Administración y mantenimiento de bases de datos)
CIN8_ (Capacidad para analizar, diseñar, construir y mantener bases de datos de forma robusta, segura y eficiente)
CIN12_ (Conocimiento y aplicación de las características, funcionalidades y estructura de las bases de datos)
CIN13_ (Conocimiento y aplicación de las herramientas necesarias para el almacenamiento, procesamiento y acceso a los sistemas de información)
CIN14_ (Conocimiento y aplicación de los principios fundamentales y técnicas básicas de la programación de la concurrencia a bases de datos y de la distribución de datos)
EIS1_ (Desarrollar, mantener y evaluar bases de datos que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente)
EIS2_ (Valorar las necesidades del cliente y especificar los requisitos de la base de datos para satisfacer estas necesidades)
EIS4_ (Identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software en el campo de las bases de datos)
EIS5_ (Identificar, evaluar y gestionar los riesgos potenciales de una mala optimización del acceso a los datos y de un deficiente control de la concurrencia)
ESI3_ (Participar activamente en la especificación, diseño, implementación y mantenimiento de las bases de datos que necesitan los sistemas de información y comunicación)

Evaluación: 35% de la nota final de la asignatura

Sistema de evaluación


Sistema de calificación (evaluación)

Laboratorio de prácticas de Diseño externo y distribuido: 10% (sesiones de prácticas 1, 2 y 3). (Por su componente de evaluación contínua, esta nota no es recuperable)

Proyecto de diseño externo e interno: 10% (Trabajo a lo largo del curso) (seminarios 1,2 i 3). (Por su componente de evaluación contínua, esta nota no es recuperable)

Laboratorio de prácticas de optimización de sentencias SQL y control de concurrencia: 10% (sesiones de prácticas 4 y 5) (seminarios 4 y 5). (Por su componente de evaluación contínua, esta nota no es recuperable)
 

Examen de PL / SQL, diseño externo y diseño distribuído (Tema 1): 35%

Examen de Arquitectura de SGBD, optimización y control de concurrencia (Temas 2 y 3): 35%

Todas las notas son obligatorias. Es necesario una nota superior a 3,5 en cada actividad para superar la asignatura y poder hacer la media.

Siguiendo la normativa general, la copia en las actividades de evaluación trae como consecuencia la evaluación con una nota de SUSPENSO (0) en toda la asignatura.


Normas de realización de las actividades

En todas las actividades es obligada la asistencia para ser evaluadas.

Las actividades son obligatorias. Las actividades no realizadas -o en las que no se ha asistido- son evaluadas con un 0.

Bibliografía


Básica

Elmasri,R.; Navathe,S.B. "Fundamentals of Database Systems,Global Edition". Seventh Edition. Harlow, Essex: Pearson, 2017. ISBN 978-1-292-09761-9.

Silberschatz,Abraham;Korth,Henry;Sudarshan,S. “Fundamentos de Bases de Datos”. Sisena edició. Madrid-McGraw-Hill-Education, 2014. ISBN 978-84-481-9033-0.


Complementaria

Date,C.J. “Introducción a los sistemes de bases de datos”. Setena edició. México-Pearson Educación, 2001. ISBN 9684444192

Loney, Kevin;Bryla, Bob. “Oracle Database 12c. The Complete Reference”. Primera edició. Oracle Press-McGraw-Hill Education, 2013. ISBN-13: 9780071801751. ISBN-10: 0071801758.

McLaughlin, Michael. “Oracle Database 12c PL/SQL Programming”. Primera edició. Oracle Press-McGraw-Hill Education, 2014. ISBN-13: 9780071812436. ISBN-10: 0071812431.