




Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Examen Bases de datos septiembre 2017
Tipo: Exámenes
1 / 8
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





Facultad de Inform´atica. Ingenier´ıa en Inform´atica / del Software / de Computadores. Examen de Bases de datos. Curso 2016-2017. 5 de septiembre de 2017
Apellidos y nombre
Las soluciones deben entregarse en las hojas que se os han entregado y dentro del espacio designado para ellas. Pod´eis utilizar papel de sucio, pero las respuestas definitivas deben indicarse en las hojas de los enunciados. NO se puede usar l´apiz ni boli rojo.
Ejercicio 1 (3 puntos). Una cadena de cines requiere implementar una base de datos relacional que cumpla los siguientes requisitos:
La cadena posee cines en diferentes distritos del pa´ıs (como m´aximo una por distrito). De cada cine almacena- remos el distrito y la direcci´on.
Cada cine dispone de varias salas de proyecci´on, como m´ınimo 2 y como m´aximo 6. Cada una de ellas viene identificada por un n´umero ´unico en cada cine pero en diferentes cines puede haber salas con el mismo n´umero. De cada una de las salas debe conocerse su aforo.
Para gestionar los pases de las diferentes pel´ıculas en cartelera, se deben almacenar en la base de datos las pel´ıculas que se proyectan en las salas. De las pel´ıculas se necesita saber el t´ıtulo, que las identifica de forma ´unica, el a˜no de estreno, la categor´ıa a la que pertenecen (comedia, drama o musical). Cada sala puede tener varios pases.
Cada pase se identifica por la hora de inicio. Todas las pel´ıculas se proyectan en, al menos, un pase de una sala de un cine de la cadena. Tambi´en, nos interesa saber si la proyecci´on de una pel´ıcula en un pase de una sala se proyecta en versi´on original o doblada.
a. (1.5 puntos) Se pide dise˜nar el esquema conceptual con el modelo entidad-relaci´on especificando las restricciones de participaci´on m´ınimo-m´aximo y cardinalidad.
Ejercicio 2 (6 puntos). Dadas las siguientes relaciones:
Asignatura( Codigo , Nombre, NumCreditos) Alumno( DNI , Nombre, Edad, NumCredAprobados) Matricula( DNIAlumno, CodAsignatura , Nota)
a. (3 puntos) Escribe las siguientes consultas en lenguaje SQL:
c. (1,5 puntos) Escribe un disparador que mantenga el n´umero de cr´editos aprobados de la tabla Alumno actua- lizado. Es decir, cada vez que se modifique una nota de la tabla Matricula se comprobar´a si la nota es igual o superior a 5 y si lo es se actualizar´an los cr´editos aprobados del alumno.
Ejercicio 3 (1 punto). Dada la tabla Matricula(DNI, Asignatura, Creditos) vac´ıa considera la ejecuci´on de la siguiente lista de instrucciones SQLDeveloper asumiendo que autocommit=off :
savepoint paso_uno; INSERT INTO MATRICULA VALUES (’123456789X’, ’BBDD’, 6);
-- paso 1 -- savepoint paso_dos; update MATRICULA set Creditos= Creditos+ 1 where DNI= ’123456789X’ and asignatura=’BBDD’;
-- paso 2 -- rollback to savepoint paso_dos;
-- paso 3 -- update MATRICULA set Creditos= Creditos+ 2 where DNI= ’123456789X’ and asignatura=’BBDD’;
-- paso 4 -- rollback ;
-- paso 5 -- INSERT INTO MATRICULA VALUES (’123456789X’, ’BBDD’, 12); update MATRICULA set Creditos= Creditos+ 3 where DNI= ’123456789X’ and asignatura=’BBDD’;
-- paso 6 -- savepoint paso_tres; commit ;
-- paso 7 -- create table Expediente(DNI varchar (20) PRIMARY KEY , MatriculaTotal number (5)); Insert into Expediente values (’00000000P’, 45); rollback to savepoint paso_tres;
-- paso 8 -- select (^) * from Expediente where DNI = ’00000000P’; rollback ;
-- paso 9 --
a) Describe qu´e valor tiene Creditos para la fila ’123456789X’ exactamente en el momento indicado por cada comentario -- paso N -- (aunque todav´ıa no sea un valor definitivo). b) Indica con qu´e instrucci´on empieza cada una de las transacciones de la secuencia. c) ¿Se produce alg´un error? Si lo hay, indica en qu´e instrucci´on y por qu´e. d) ¿Qu´e tablas quedan al final de la ejecuci´on?