Universidad de La Rioja

Programación de bases de datos
GUÍA DOCENTE    Curso 2022-23

Titulación:Grado en Matemáticas701G
Asignatura:Programación de bases de datos832
Materia:Ingeniería del software y sistemas de información
Módulo:Optativas
Modalidad de enseñanza de la titulación:PresencialCarácter:Optativa
Curso:4Créditos ECTS:6,00Duración:Semestral (Segundo Semestre)
Horas presenciales:60,00Horas estimadas de trabajo autónomo:90,00
Idiomas en que se imparte la asignatura:Español
Idiomas del material de lectura o audiovisual:Español

Departamentos responsables de la docencia

MATEMÁTICAS Y COMPUTACIÓNR111
Dirección:C/ Madre de Dios, 53Código postal:26006
Localidad:LogroñoProvincia:La Rioja
Teléfono:941299452Fax:941299460Correo electrónico:dpto.dmc@unirioja.es

Profesorado previsto

Profesor:Pérez Valle, BeatrizResponsable de la asignatura
Teléfono:941299608Correo electrónico:beatriz.perez@unirioja.es
Despacho:3235Edificio:CENTRO CIENTÍFICO TECNOLÓGICOTutorías:Consultar

Descripción de los contenidos

- Arquitecturas de aplicaciones de informáticas con sistema de persistencia basado en BD.
- Panorámica general de la programación de BBDD.
- APIs de programación de aplicaciones con acceso a BD.
- Mapeo objeto relacional
- Procesamiento de transacciones, acceso concurrente y recuperación en BBDD.
- Procedimientos almacenados en la BD.

Requisitos previos de conocimientos y competencias para poder cursar con éxito la asignatura

Recomendados para poder superar la asignatura.

Se aconseja conocimiento del lenguaje de programación Java, conceptos de orientación a objetos, conocimiento alto de SQL.
Asignaturas que proporcionan los conocimientos y competencias:

Contexto

Se trata de una asignatura optativa del itinerario correspondiente a la Mención en Estadística e Informática. Es una asignatura complementaria para aquellos alumnos que deseen desarrollar sus competencias en el ámbito de la informática y, en particular, en el ámbito de las bases de datos, por lo que es muy recomendable haber cursado las asignaturas del mismo itinerario Bases de Datos y Diseño de Bases de Datos. La asignatura presenta nuevos conceptos, pero se asienta en otros ya impartidos, relacionados tanto con las bases de datos (adquiridos tras haber cursado las dos asignaturas citadas anteriormente) como con la programación, sobre todo la programación orientada a objetos. Por ello, para superarla es muy recomendable un nivel de conocimiento alto en SQL y, sobre todo, tener conocimientos amplios en programación orientada a objetos en Java.
Se trata de una asignatura muy útil para el alumno que desea desempeñar una labor profesional orientada a la informática de gestión. La mayoría de las aplicaciones informáticas de gestión incorporan una base de datos como soporte persistente de información. Los objetivos de la asignatura se centran en dotar al alumno de las herramientas necesarias para desarrollar los módulos que gestionan la base de datos en dichas aplicaciones. El enfoque es eminentemente aplicado. Abundan los casos prácticos.

Competencias

Competencias generales

CG 6. Relacionar el conocimiento especializado de Matemáticas con el conocimiento general en el que se inserta y con las herramientas que utiliza cuando se aplica en diversas opciones profesionales, especialmente en el marco de las TIC.
CG 8. Capacitar para el aprendizaje autónomo de nuevos conocimientos y técnicas.

Competencias específicas

CE 4. Encontrar soluciones algorítmicas de problemas matemáticos y de aplicación (de ámbito académico, técnico, financiero o social), sabiendo comparar distintas alternativas, según criterios de adecuación, complejidad y coste.
CE 5. Saber programar algoritmos de modo correcto y eficaz, eligiendo convenientemente lenguajes y plataformas de programación.
CE 6. Utilizar herramientas de búsqueda de recursos en Matemáticas, Informática y aplicaciones.

Resultados del aprendizaje

- Entender los fundamentos de la programación de BD en sus dos aspectos: programación de aplicaciones externas y programación de procedimientos almacenados.
- Comprender el concepto de transacción y sus características. Particularización para el caso de Oracle. Ser capaz de reconocer situaciones transaccionales y gestionarlas adecuadamente.
- Comprender la problemática relacionada con la concurrencia en las BD y las posibles soluciones (bloqueos, aislamiento, estrategias optimistas).
- Comprender los mecanismos de recuperación en un SGBD.
- Comprender la arquitectura básica de una aplicación de BD con orientación a objetos (capas).
- Conocer las alternativas tecnológicas en cuanto a la programación de aplicaciones de BD (SLI, CLI).
- Comprender la necesidad de la existencia de APIs estándar de acceso a BD.
- Dominar algún API de programación de aplicaciones con acceso a BD.
- Conocer los conceptos y las herramientas de programación relacionadas con el mapeo objeto-relacional (ORM) y saber aplicar alguna de ellas.
- Entender el concepto de programa almacenado en la base de datos: ventajas e inconvenientes que conlleva su uso.
- Manejar algún lenguaje de programación de desarrollo de procedimientos almacenados y utilizarlo para desplegar procedimientos almacenados en la BD.
- Conocer y manejar el concepto de disparador en una BD.
- Ser capaz de diseñar y programar disparadores en una BD.
- Adquirir experiencia práctica en el desarrollo (diseño e implementación) de la capa de persistencia de aplicaciones que acceden a una BD.

Temario

Tema 1: Arquitecturas de aplicaciones de BD
  1. Introducción
  2. Topologías de aplicaciones
  3. División en capas de una aplicación
Tema 2. Panorámica general de la programación de BD
  1. Introducción
  2. Statement-Level interface
  3. Call-Level Interface
  4. SLI y CLI en Java
  5. Elementos de un API de acceso a BD
  6. ODBC, OLE DB y ADO
  7. Ejemplo de creación de un Data Source ODBC
Tema 3. JDBC
  1. Introducción
  2. Drivers JDBC
  3. La clase DriverManager
  4. Conexiones
  5. Ejecución de instrucciones
  6. Transacciones y SQL
  7. Cuando las cosas van mal
  8. Temas avanzados
  9. JDBC 2, 3 y 4
Tema 4. Procesamiento de transacciones y acceso concurrente
  1. Introducción
  2. A qué problemas nos enfrentamos
  3. Concurrencia y anomalías
  4. Transacción: concepto y propiedades
  5. Restricciones de integridad y transacciones
  6. Recuperación de la BD
  7. Aislamiento de transacciones
  8. Control de la concurrencia
  9. Bloqueos en Oracle
  10. Deadlocks
  11. Control optimista de la concurrencia
Tema 5. Técnicas de mapeo Objecto/Relacional (ORM). JPA
  1. Introducción a ORM
  2. Introducción a Java Persistence API (JPA)
  3. Características generales de JPA
  4. Mapeo de elementos básicos
  5. Manejando entidades
  6. Introducción a JPQL (Java Persistence Query Language)
Tema 6. Procedimientos almacenados en la BD
  1. Introducción
  2. Ventajas e inconvenientes del uso de procedimientos almacenados
  3. Lenguajes de procedimientos almacenados
  4. Invocación de procedimientos almacenados desde Java
  5. Procedimientos almacenados en Java.

Bibliografía

Tipo:Título
BásicaBases de datos relacionales. Absys Biba
BásicaDatabases and transaction processing: an application-oriented approach. Absys Biba
BásicaFundamentos de sistemas de bases de datos. Absys Biba
BásicaJDBC API Tutorial and Reference. Absys Biba
BásicaJava Oracle Database Development. Absys Biba
BásicaPrinciples of database systems with internet and Java applications. Absys Biba
BásicaJava EE 8 Recipes Absys Biba
BásicaJava APIs, Extensions and Libraries Absys Biba
BásicaProcesamiento de Bases de Datos - Fundamentos, diseño e implementación Absys Biba
BásicaBeginning Java 8 APIs, Extensions and Libraries. Swing, JavaFX, JavaScript, JDBC and Network Programming APIs Absys Biba
BásicaPro JPA 2. Mastering the Java Persistence API Absys Biba
BásicaPro JPA 2 in Java EE 8
ComplementariaBeginning Hibernate Absys Biba
Recursos en Internet
Oracle Database - Java Developer's Guide. 11g Release 2 (11.2). July 2013
      https://docs.oracle.com/cd/E11882_01/java.112/e10588/toc.htm
JSR-000221 JDBC API 4.3 Maintenance Release 3
      https://download.oracle.com/otn-pub/jcp/jdbc-4_3-mrel3-eval-spec/jdbc4.3-fr-spec.pdf?AuthParam=1650454721_9f01be74d8fdd35a5bef5e881170dbe6

Metodología

Modalidades organizativas

Clases teóricas
Clases prácticas
Estudio y trabajo autónomo individual

Métodos de enseñanza

Método expositivo - Lección magistral
Resolución de ejercicios y problemas
Aprendizaje basado en problemas

Organización

Actividades presencialesTamaño de grupoHoras
Clases teórico-prácticasGrande32,00
Pruebas presenciales de evaluaciónInformática2,00
Otras actividades (laboratorio en aula informática)Laboratorio26,00
Total de horas presenciales60,00
Trabajo autónomo del estudianteHoras
Estudio autónomo individual o en grupo40,00
Resolución individual de ejercicios, cuestiones u otros trabajos, actividades en biblioteca o similar10,00
Preparación de las prácticas y elaboración de cuaderno de prácticas40,00
Total de horas de trabajo autónomo90,00
Total de horas150,00

Evaluación

Sistemas de evaluaciónRecuperableNo Recup.
Pruebas escritas65%
Pruebas de ejecución de tareas reales y/o simuladas15%
Técnicas de observación 5%
Portafolio15%
Total100%

Comentarios

Se consideran actividades de evaluación continua las correspondientes a:
- la asistencia a prácticas de laboratorio (indicado en el apartado de evaluación como "Técnicas de observación”, con un peso del 5% de la evaluación y con carácter no recuperable),
- la entrega de prácticas de laboratorio a través del Campus virtual (indicado en el apartado de evaluación como "Portafolio", con un peso del 15% de la evaluación y con carácter recuperable).
Se realizarán tres pruebas finales:
- Prueba A: se trata de una prueba en la que se evaluará parte del material práctico impartido durante el curso (indicada en el apartado de evaluación como "Pruebas de ejecución de tareas reales y/o simuladas"). Esta prueba tiene un peso del 15% y es recuperable.
- Prueba B: se trata de una prueba escrita en la que se evaluará parte del material práctico impartido durante el curso (indicada en el apartado de evaluación como "Pruebas escritas"). Esta prueba tiene un peso del 15% y es recuperable.
- Prueba C: se trata de una prueba escrita en la que se evaluarán los conocimientos teórico-prácticos adquiridos durante todo el curso (indicada en el apartado de evaluación como "Pruebas escritas"). Esta prueba tiene un peso del 50% de la evaluación y es recuperable.
Para obtener el 5% de la calificación correspondiente a la asistencia a de prácticas es necesario asistir como mínimo a todas las sesiones de prácticas salvo una. Para excusar las faltas de asistencia será necesario aportar un documento justificativo.
El material didáctico (ejercicios prácticos, cuestiones, actividades ...etc) se encontrará disponible en el aula virtual para todos los alumnos matriculados en esta asignatura.

Criterios críticos para superar la asignatura

Para promediar las notas, es necesario obtener una nota superior o igual a 3 (sobre 10) en las pruebas A, B y C. Si la nota de alguna prueba es inferior a 3 (sobre 10), la calificación final de la asignatura será la de la nota más baja de las partes.
15/03/2023 10:32:23 - G 2022-23 - 701G - 832