Información general


Tipo de asignatura: obligatoria

Coordinador: Adso Fernández Baena

trimestre:1

Créditos: 4

Profesorado: Alfonso Palacios González

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 Covidien-19. De esta forma se asegurará la consecución de los mismos conocimientos y competencias que se especifican en este plan docente.

Resultados de aprendizaje


A nivel general, esta asignatura contribuye a siguientes resultados de aprendizaje 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ó- y evaluación de productos) de forma 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 a los otros en proyectos a 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 que 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 cualquier otra información de carácter técnico escrita en inglés.

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

  • RA1: Programa de forma avanzada un lenguaje procedimental de definición de bases de datos (en el curso 2019/2020 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: Administrador 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,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 datos distribuidas. (Colabora a 1,2,3,4,5,6,7,8,9)
  • RA5: identificar las partes y 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: Administrador la ejecución concurrente de sentencias SQL. (Colabora a 1,2,3,4,5,6,8,9)

 

Metodología 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 y Oracle SQL Developer

Este curso, debido a la situación generada por la Covidien, algunas de las sesiones de grupo grande pueden hacerse -si la situación sanitaria lo requiere- en formato híbrido: presencial y en línea (vía en streaming). Esto permitirá que los estudiantes puedan ir rotativamente en las clases presenciales, respetando el máximo de estudiantes por aula que imponen las medidas de distanciamiento. Cuando no les toque sesión presencial podrán seguir la clase en línea desde casa.

En cuanto a las sesiones de prácticas en espacios más reducidos (como laboratorios, estudios o plató), en su caso se trabajará simultáneamente en varios espacios para garantizar que se cumplen 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 el diseño lógico y la definición de reglas de negocio avanzadas de bases de datos por un lado y, por otro, implementar el diseño externo y el diseño distribuido.  

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 distribuidas

Tema 2

Título contenido 2:  Arquitectura, estructura, métodos de acceso y optimización de SGBD

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

 

 

 

Descripción

Profundización en el conocimiento de las bases de datos y los sistemas gestores de bases de datos, la arquitectura de los SGBD para poder gestionar los métodos de acceso a los datos, optimizar la ejecución de las consultas SQL y definir el diseño físico.

Temari

2.1 Arquitectura de SGBD

2.2 Estructura interna de bases de datos

2.3 Métodos de acceso

2.4 Procesamiento de consultas y planes de ejecución

2.5 Optimización de sentencias SQL

Tema 3

Título contenido 3:  Control de concurrencia

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

 

 

 

Descripción

Introducción al control de concurrencia en bases de datos, aprendizaje de las herramientas para gestionar las transacciones, la concurrencia y los sistemas ACID. Gestión de la consistencia en lectura y actualización.

Temari

3.1 Gestión de transacciones y control de concurrencia

2.2 Sistemas ACID

2.3 Consistencia en lectura

2.4 Gestión de la seriabilitat, los bloqueos y los deadlocks.

Actividades de aprendizaje


Actividad 1:

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

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 donde se trabaja el lenguaje PL / SQL de 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) yf))

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 apoyo: Oracle12c, PL / SQL, SQL Developer, Oracle APEX, Oracle Academy, herramienta de modelización y generación de bases de datos
entregables:

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

Resultados de aprendizaje  RA1 (RA 1.1, RA 1.2, RA 1.3), RA2 
Competencias a las 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) yf))

Descripción:

Técnicas de optimización de consulta 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 optimización y concurrencia para resolver problemas reales de uso de datos)
B4 (redactar comentarios y argumentos adecuados a los informes de prácticas)
B5 (descubrir aplicaciones avanzadas de la optimización y de la gestión de la concurrencia 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 SQL con palabras clave en inglés)
T2 (actividad realizada en equipo de dos)
EFB4 (Programación con SQL para consultar la optimización)
CIN1 (Desarrollar bases de datos que sean fiables, seguras y de calidad)
CIN5 (Administración y mantenimiento de bases de datos)
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)
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: 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) yd)

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 a 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) yd))

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 continua, esta nota no es recuperable)

Proyecto de diseño externo e interno: 10% (Trabajo a lo largo del curso) (seminarios 1,2 y 3). (Por su componente de evaluación continua, 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 3,4 y 5). (Por su componente de evaluación continua, esta nota no es recuperable)

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

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

 

Todas las notas son obligatorias. Hay 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 SUSPENSO (0) de 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 -oa las que no se ha asistido- son evaluadas como 0.

 

Bibliografía


básico

Elmasri, R .; Navathe, SB "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". Sexta edición. Madrid-McGraw-Hill-Education, 2014. ISBN 978-84-481-9033-0.

Complementario

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

Date, CJ "Introducción a los sistemas de bases de datos". Séptima edición. México-Pearson Educación, 2001. ISBN 9684444192

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