Bases de Datos

Usted está aquí

Créditos
6
Tipos
Obligatoria
Requisitos
  • Prerrequisito: PRO1
  • Prerrequisito: PRO2
Departamento
ESSI
Esta asignatura tiene como objetivo que el estudiantado tenga una visión general sobre qué es una base de datos, qué es un modelo de base de datos, cuáles son sus diferentes tipos de usuarios y lenguajes. En concreto se profundiza en el modelo relacional de bases de bases y en los componentes lógicos que este modelo de bases de datos provee, y se practica la creación y el uso de estos componentes mediante el lenguaje SQL. La asignatura incluye una introducción al diseño de bases de datos relacional, así como el estudio de temas importantes para el uso de las bases de datos en el desarrollo de sistemas software como son los privilegios, las transacciones y los índices. Finalmente, también se da una pequeña introducción a los nuevos sistemas de gestión de bases de datos NOSQL.

Profesorado

Responsable

  • Antoni Urpi Tubella ( )
  • Carme Quer Bosor ( )

Otros

  • Alberto Abello Gamazo ( )
  • María José Casañ Guerrero ( )
  • Pau Carbonell Vives ( )
  • Santiago Rivas Contreras ( )
  • Sergi Nadal Francesch ( )

Horas semanales

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

Competencias

Competencias Técnicas

Competencias técnicas comunes

  • CT2 - 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.
    • CT2.2 - Demostrar conocimiento y capacidad de aplicación de las características, funcionalidades y estructura de las bases de datos, que permitan su uso adecuado y el diseño y el análisis e implementación de aplicaciones basadas en ellas.
    • CT2.3 - Diseñar, desarrollar, seleccionar y evaluar aplicaciones, sistemas y servicios informáticos, y al mismo tiempo asegurar su fiabilidad, su seguridad y su calidad, conforme a principios éticos y a la legislación y la normativa vigente.
    • CT2.4 - Demostrar conocimiento y capacidad de aplicación de las herramientas necesarias para el almacenaje, el procesamiento y el acceso a los Sistemas de información, incluidos los basados en web.
  • CT8 - Planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha, su mejora continua y valorando su impacto económico y social
    • CT8.6 - Demostrar comprensión de la importancia de la negociación, de los hábitos de trabajo efectivos, del liderazgo y de las habilidades de comunicación en todos los entornos de desarrollo de software.
    • CT8.7 - Controlar versiones y configuraciones del proyecto.

Competencias Transversales

Actitud frente al trabajo

  • G8 [Avaluable] - Tener motivación para la realización profesional y para afrontar nuevos retos, así como una visión amplia de las posibilidades de la carrera profesional en el ámbito de la Ingeniería en Informática. Tener motivación por la calidad y la mejora continua, y actuar con rigor en el desarrollo profesional. Capacidad de adaptación a los cambios organizativos o tecnológicos. Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.
    • G8.2 - Actuar con rigor en el desarrollo profesional. Tener motivación y actitud proactiva por la calidad en el trabajo. Disponer de capacidad de adaptación a los cambios organizativos o tecnológicos. Tener capacidad de trabajar en situación de restricciones temporales y/o de recursos.

Objetivos

  1. Tener una visión general sobre qué es una base de datos, que es un modelo de base de datos, cuáles son los tipos de usuarios de las bases de datos, y cuáles son las categorías de lenguajes de bases de datos.
    Competencias relacionadas: CT2.2, CT2.4,
  2. Conocer los objetivos de un sistema de gestión de bases de datos y su arquitectura.
    Competencias relacionadas: CT2.2, CT2.4,
  3. Conocer el modelo relacional de bases de datos, sus lenguajes (SQL y álgebra relacional) y los componentes habituales de una base de datos relacional.
    Competencias relacionadas: CT2.2, CT2.4,
  4. Ser capaz de definir, crear y manipular los componentes habituales de una base de datos relacional.
    Competencias relacionadas: CT2.2, CT2.4, CT2.3,
  5. Ser capaz de construir programas para gestionar bases de datos relacionales.
    Competencias relacionadas: CT2.2, CT2.4, CT2.3,
  6. Saber escoger entre varias sentencias SQL, componentes de una base de datos, o programas que gestionen una base de datos, que implementen una misma funcionalidad, cuál se adecua más a unos criterios de calidad definidos.
    Competencias relacionadas: CT2.4, CT2.3,
  7. Saber escoger entre qué tipo de componentes o programas de gestión de bases de datos estudiados en la asignatura son más adecuados, según los criterios de calidad definidos, para la implementación de un cierto comportamiento de una aplicación.
    Competencias relacionadas: CT2.4, CT2.3,
  8. Tener una visión general de cómo se integra el diseño de una base de datos dentro del proceso de desarrollo de una aplicación.
    Competencias relacionadas: CT2.2, CT2.3,
  9. Ser capaz de transformar modelos conceptuales simples expresados ​​en UML al modelo relacional.
    Competencias relacionadas: CT2.2, CT2.3,
  10. Conocer el concepto de transacción y sus implicaciones.
    Competencias relacionadas: CT2.2, CT2.4, CT2.3,
  11. Conocer y saber identificar los tipos de interferencias que se pueden producir entre transacciones y su relación con los niveles de aislamiento que define el SQL Standard.
    Competencias relacionadas: CT2.2, CT2.4, CT2.3,
  12. Conocer la técnica de control de concurrencia de reservas.
    Competencias relacionadas: CT2.2, CT2.4, CT2.3,
  13. Conocer las posibles estructuras físicas para el almacenamiento de los datos, y sus implicaciones en cuanto a eficiencia.
    Competencias relacionadas: CT2.4, CT2.3,
  14. Conocer los métodos de acceso a los datos, y sus implicaciones en cuanto a eficiencia.
    Competencias relacionadas: CT2.4, CT2.3,
  15. Ser capaz de participar con actitud proactiva en la realización de ejercicios en equipos de 2 o más personas, siguiendo los roles asignados a cada una que pueden cambiar durante la realización de los ejercicios.
    Competencias relacionadas: G8.2, CT8.6,
  16. Ser capaz de llegar a una versión de los ejercicios que cumpla unos criterios de calidad dados, en un tiempo y con unos recursos limitados.
    Competencias relacionadas: G8.2, CT8.6, CT8.7,
  17. Ser capaz de configurar el entorno para la implementación y ejecución de componentes de bases de datos y programas que acceden a bases de datos, a partir de los recursos que se ofrece al estudiantado.
    Competencias relacionadas: CT8.7,
  18. Conocer las principales características de las bases de datos de sistemas NOSQL, entender cómo se diferencian de los sistemas relacionales, y haber visto una clasificación de tipos de sistemas NOSQL que existen en la actualidad.
    Competencias relacionadas: CT2.2,

Contenidos

  1. Introducción
    Concepto de base de datos. Diseño y modelos de bases de datos. Tipos de usuarios. Categorías de lenguajes. Concepto de sistema de gestión de base de datos (SGBD). Objetivos deseables para las bases de datos que los SGBD deben proporcionar. Arquitectura de los SGBD.
  2. El modelo relacional
    Objetivos y origen. Estructura de datos con la que se construyen las bases de datos relacionales. Operaciones que provee el modelo relacional para manipular y consultar los datos. Reglas de integridad que deben cumplir los datos de una base de datos relacional.
  3. Lenguajes: Álgebra relacional y SQL
    Introducción. Álgebra relacional: operaciones del álgebra relacional; consultas. SQL: creación de tablas, inserción, borrado y modificación de filas de una tabla; consultas sobre una base de datos. Consideraciones sobre la implementación de consultas.
  4. Componentes lógicos
    Concepto de componente lógico de una base de datos: de datos y de control. Presentación de componentes lógicos de datos: esquemas, dominios y tablas, aserciones y vistas. Presentación de componentes lógicos de control: procedimientos almacenados, disparadores y privilegios.
  5. Procedimientos almacenados y disparadores
    Implementación de procedimientos almacenados en lenguaje Pl/pgSQL. Implementación de disparadores en PostgreSQL. Consideraciones sobre el diseño e implementación de procedimientos y disparadores.
  6. Programación con SQL
    Programación en Java y JDBC. Consideraciones sobre el diseño e implementación de programas que acceden a bases de datos.
  7. Introducción al diseño de bases de datos relacionales
    Etapas de diseño de una base de datos. Introducción a la comprensión de modelos conceptuales UML simples. Traducción de modelos conceptuales UML simples modelo relacional de base de datos.
  8. Transacciones y concurrencia
    Concepto de transacción. Propiedades ACID de las transacciones. Interferencias entre transacciones. Serializabilidad. Recuperabilidad. Técnicas de control de concurrencia. Niveles de aislamiento. Reservas y niveles de aislamiento.
  9. Estructuras físicas de almacenamiento y métodos de acceso
    Introducción. Métodos de acceso para poder realizar consultas y actualizaciones de datos de una base de datos. Costes de los métodos de acceso.
  10. NOSQL
    Introduction. Differences with traditional relational DBMS. NOSQL DBMS objectives. Examples of systems that require this type of SGBD.

Actividades

Actividad Acto evaluativo


T / P. Estudio de la introducción a las bases de datos

Se presentan los contenidos relacionados con el tema a estudiar.
Objetivos: 1 2
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

T / P. Estudio del modelo relacional de bases de datos

Se presentan los contenidos relacionados con el tema a estudiar. Se realizan los ejercicios que plantea el professorado.
Objetivos: 3
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

T/P. Estudio de los componentes lógicos de datos

Se presentan los contenidos relacionados con el tema a estudiar. Se realizan los ejercicios que plantea el professorado.
Objetivos: 3 4
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

T / P. Estudio de componentes lógicos de control

Se presentan los contenidos relacionados con el tema a estudiar. Se realizan los ejercicios que plantea el professor.
Objetivos: 3 4 7
Contenidos:
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

T / P. Ejercicios: Privilegios, vistas y aserciones

Se resuelven ejercicios en clase con ayuda del profesorado.
Objetivos: 3 4 7
Contenidos:
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

T / P. Estudio introducción al diseño de bases de datos relacionales

Se presentan los contenidos relacionados con el tema a estudiar. Se realizan los ejercicios que plantea el professorado.
Objetivos: 8 9
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

T / P. Ejercicios: Traducción modelo relacional

Se resuelven ejercicios en clase con ayuda del profesorado.
Objetivos: 8 9
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

T / P. Estudio de transacciones y concurrencia

Se presentan los contenidos relacionados con el tema a estudiar. Se realizan los ejercicios que plantea el professorado.
Objetivos: 10 11 12
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

T / P. Ejercicios: Transacciones y Concurrencia

Se resuelven ejercicios en clase con ayuda del profesorado.
Objetivos: 10 11 12
Contenidos:
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

T / P. Estudio de almacenamiento y métodos de acceso

Se presentan los contenidos relacionados con el tema a estudiar. Se realizan los ejercicios que plantea el professorado.
Objetivos: 13 14
Contenidos:
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

T/P. Ejercicios: Almacenamiento y métodos de acceso

Se resuelven ejercicios en clase con ayuda del profesorado.
Objetivos: 13 14
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

T/P NOSQL

Se presentan los contenidos relacionados con el tema a estudiar.
Objetivos: 1 18
Contenidos:
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1h

Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

L: Preparación del entorno y estudio previo

Preparación del entorno para la implementación, creación y ejecución de componentes de bases de datos a partir de los recursos provistos por el profesorado. Estudio preliminar de la base de datos que se usará en las primeras clases de laboratorio y de las sentencias más básicas del lenguaje SQL.

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

L. Estudio de SQL 1

Se forman equipos de laboratorio. Se presenta la forma de trabajar de las clases de laboratorio. En equipo se resuelve un cuestionario de laboratorio sobre el tema tratado en clase. Se pasa una pregunta en papel individual sobre el tema tratado en clase.
Objetivos: 3 4 6
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

L. Estudio de SQL 2

En equipo se resuelve un cuestionario de laboratorio sobre el tema tratado en clase. Se pasa una pregunta en papel individual sobre el tema tratado en clase.
Objetivos: 3 4 6 15 16 17
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

L. Ejercicios: SQL

En equipo se resuelve un cuestionario de laboratorio sobre el tema tratado en clase. Se pasa una pregunta en papel individual sobre el tema tratado en clase.
Objetivos: 3 4 6 15 16 17
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

L. Estudio de álgebra relacional

En equipo se resuelve un cuestionario de laboratorio sobre el tema tratado en clase. Se pasa una pregunta en papel individual sobre el tema tratado en clase.
Objetivos: 3
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

L. Estudio de SQL y álgebra relacional

En equipo se resuelve un cuestionario de laboratorio sobre el tema tratado en clase. Se pasa una pregunta en papel individual sobre el tema tratado en clase.
Objetivos: 3 4 6 15 16 17
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

L. Estudio laboratorio: Álgebra y SQL

El estudiantado repasa los ejercicios de laboratorio y exámenes de SQL y álgebra relacional.

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

L. Ejercicios: Procedimientos básicos.

En equipo se resuelve un cuestionario de laboratorio sobre el tema tratado en clase. Se pasa una pregunta en papel individual sobre el tema tratado en clase.
Objetivos: 3 4 6 15 16 17
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

L. Ejercicios: Disparadores básicos

En equipo se resuelve un cuestionario de laboratorio sobre el tema tratado en clase. Se pasa una pregunta en papel individual sobre el tema tratado en clase.
Objetivos: 4 6 15 16 17
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

L. Ejercicios: Procedimientos / disparadores.

En equipo se resuelve un cuestionario de laboratorio sobre el tema tratado en clase. Se pasa una pregunta en papel individual sobre el tema tratado en clase.
Objetivos: 4 6 15 16 17
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

L: Estudio del laboratorio de Procedimientos i Disparadores

El estudiantado repasa los ejercicios de laboratorio y exámenes de Procedimientos i Disparadores

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

L. Ejercicios: Programación con SQL - JDBC básica

En equipo se resuelve un cuestionario de laboratorio sobre el tema tratado en clase. Se pasa una pregunta en papel individual sobre el tema tratado en clase.
Objetivos: 4 6 15 16 17
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

L. Ejercicios: Programación SQL - JDBC

En equipo se resuelve un cuestionario de laboratorio sobre el tema tratado en clase. Se pasa una pregunta en papel individual sobre el tema tratado en clase.
Objetivos: 3 5 15 16 17
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

L. Estudio de laboratorio de Programación usando SQL

El estudiantado repasa los ejercicios de laboratorio y exámenes de Programación usando SQL

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

L. Examen parcial

El estudiantado: Resuelve el examen de manera individual; No puede consultar ningún tipo de material; Entrega el examen resuelto al profesor.
Objetivos: 1 2 3 4 6 8 9 16
Semana: 8 (Fuera de horario lectivo)
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
15h

Examen final

El estudiante: Resuelve el examen de manera individual; No puede consultar ningún tipo de material; Entrega el examen resuelto al profesor.
Objetivos: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Semana: 15 (Fuera de horario lectivo)
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
16h

Metodología docente

Clases de teoría / problemas (2.3 horas por semana).
Aprendizaje autónomo: Para preparar las clases el estudiantado puede tener que leer y comprender unos determinados materiales y/o apuntes indicados por el profesor. Posteriormente a la clase, es necesario repasar y resolver ejercicios sobre el tema de estudio.
Clases de teoría. En las clases de teoría el profesorado presenta una parte de los contenidos de la asignatura. Normalmente se usa transparencias, que se pueden obtener en el material de la asignatura.
Clases de problemas. En las clases de problemas, se resuelven ejercicios sobre contenidos presentados durante las clases de teoría.

Clases de laboratorio (1.7 horas por semana).
Aprendizaje autónomo: El aprendizaje autónomo es individual. Los contenidos que se trabajan en las clases de laboratorio serán estudiados de manera autónoma prèviamente a la clase. Cada semana previamente a la clase de laboratorio, se debe hacer un trabajo que acabará con la resolución de un cuestionario moodle / LearnSQL.
Clases de laboratorio: El trabajo en clase será en equipos de 2. Al empezar la clase se tienen la posibilidad de compartir las dudas con en equipo, y si es necesario, hacer preguntas al profesorado. A continuación, se realizan las actividades que ha indicado el profesorado y finalmente se resuelve el cuestionario de clase.
Evaluación: En cada clase, el estudiantado contesta una pregunta de manera individual para hacer un seguimiento del aprendizaje autónomo que se ha hecho durante la semana y del realizado durante la clase. La evaluación también se basa en el resultado de los ejercicios realizados durante la clase.

Recursos relacionados con las clases de laboratorio:
Toda la documentación, material y cuestionarios de ejercicios relacionados con los contenidos de las clases de laboratorio estan disponibles a través de la plataforma moodle / LearnSQL.
Aparte del feed-back que durante las clases, la plataforma moodle / LearnSQL dispone de un corrector de ejercicios de bases de datos que da también feed-back sobre las soluciones de los ejercicios. En las entregas de laboratorio se usará este corrector, permitiendo obtener feed-back sobre su ejercicio y hacer varios reintentos.

Se debe asistir a las clases del GRUPO DONDE SE ESTÁ MATRICULADO, tanto en el caso de teoría / problemas como en el de laboratorio.

Método de evaluación

La calificación de las competencias técnicas se basa en:

- NL - Nota de laboratorio. Se basa en:
. Resolución satisfactoria del cuestionario correspondiente a cada clase.
. Notas de la pregunta que se contesta en cada clase.

- NEP - Nota examen parcial. En el examen parcial entran los temas: 1, 2, 3, 4 (sin procedimientos almacenados ni disparadores), y 7.

- NEF - Nota examen final. En el examen final entran los temas: 4 (sólo procedimientos almacenados i disparadores), 5, 6, 8, 9 y 10.

Calificación final = 0.45*NEP + 0.45*NEF + 0.1*NL

SE DEBE ASISTIR a las clases del GRUPO DONDE SE ESTÁ MATRICULADO.

Cualquier intento de fraude realizado durante el curso, en el marco de la asignatura, comportará la aplicación de la normativa académica general de la UPC

Calificación de la competencia transversal: Tendrá valores A, B, C o D (donde A corresponde a un nivel excelente, B corresponde a un nivel deseado, C corresponde a un nivel suficiente y D corresponde a un nivel no superado). Una buena evaluación de esta competencia la tendrá quien tenga:
Actitud proactiva en el desarrollo profesional.
- Rigor: Actúen con rigor en las clases (su actitud en clase sea la adecuada según las guías dadas para los diferentes tipos de clase, ya sea de teoría, de problemas o de laboratorio).
- Respeto: Actúen con respeto hacia los compañeros, y en caso de trabajo en grupo, actúen con interdependencia positiva hacia el resto de los miembros del grupo.
Capacidad de adaptación a los cambios organizativos y / o tecnológicos.
- Adaptación: Colaboren activamente en las actividades de aprendizaje cooperativo en grupo o en parejas que se realizan. Acepten y realicen los roles que se les asigna en estas actividades y en su caso los cambios de rol indicados por el profesor.
Actitud proactiva para la calidad y mejora continua.
- Mejora: Lleguen, mayoritariamente, a soluciones (en los cuestionarios de laboratorio de estudio) que pasen todos los juegos de prueba (independientemente del número de intentos que necesiten).
- Calidad. Lleguen, mayoritariamente, a soluciones de ejercicios (en las entregas en general) que cumplan los criterios de calidad establecidos en la asignatura para cada tipo de ejercicio.
Capacidad de adaptación en situaciones de restricciones temporales o de recursos.
- Restricciones: En general, acaben los ejercicios en el tiempo y con los recursos proporcionados.

Bibliografía

Básica:

Complementaria:

Web links

Capacidades previas

Conocer las estructuras de datos en memoria interna. Ser capaz de hacer programas de complejidad media.