Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Examen Bases de datos, Exámenes de Programación de Bases de Datos

Examen Bases de datos septiembre 2017

Tipo: Exámenes

2017/2018

Subido el 29/10/2018

RitaEstévez98
RitaEstévez98 🇪🇸

1

(1)

2 documentos

1 / 8

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
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
NIF/NIE
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 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 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 aximo 6. Cada una de ellas viene
identificada por un umero ´unico en cada cine pero en diferentes cines puede haber salas con el mismo 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 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.
1
pf3
pf4
pf5
pf8

Vista previa parcial del texto

¡Descarga Examen Bases de datos y más Exámenes en PDF de Programación de Bases de Datos solo en Docsity!

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

NIF/NIE

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:

  • (0,5 puntos) Mostrar el DNI de los alumnos (sin repeticiones) de m´as de 30 a˜nos matriculados en una asignatura de 6 cr´editos.
  • (0,5 puntos) Mostrar el nombre de las asignaturas de 12 cr´editos con m´as de 300 alumnos.
  • (0,5 puntos) Mostrar para todos los alumnos el nombre y el n´umero de asignaturas en las que est´a matri- culado. Si alg´un alumno no est´a matriculado en ninguna asignatura se debe de mostrar un 0.
  • (0,75 puntos) Mostrar el DNI de los alumnos que solo tienen asignaturas matriculadas de 6 cr´editos.
  • (0,75 puntos) Mostrar el nombre del alumno de mayor edad matriculado en la asignatura de c´odigo 123.

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?