Está en la página 1de 3

Bases de Datos Grado en Ingeniería Informática

EJERCICIO 2 (18 puntos)

Dado el siguiente conjunto de tablas e integridades referenciales de una base de datos:

PERSONAS(idPersona, apellidos, nombre)


ACTORES(idPersona)
DIRECTORES (idPersona, nacionalidad)
PELICULAS(idPelicula, titulo, duración, genero, director,
sueldo)
SALAS(idSala, planta, filas, butacas)
PASES(idSala, dia, hora, idPelicula)
ACTUAR(idPelicula, actor, personaje, sueldo)

ACTORES.idPersonaPERSONAS
DIRECTORES.idPersona PERSONAS
PELICULAS.director DIRECTORES
PASES.idSala  SALAS
PASES.idPelicula  PELICULAS
ACTUAR.idPelicula  PELICULAS
ACTUAR.actor  ACTORES

PELICULA.genero = {drama, suspense, comedia}


ACTUAR.personaje = {protagonista, reparto}

Realizar en SQL los siguientes ejercicios:

1) Crear una vista que tenga a las personas (idPersona, apellidos y nombre) que han
trabajado como director y como actor (ambos) a lo largo de su carrera. (4 ptos)
2) Crear una vista con los actores (idPersona, apellidos y nombre) que han cobrado
por actuar más que el director que más ha cobrado por dirigir. (4 ptos)
3) Listar los directores (idPersona, apellidos y nombre) que han dirigido más de 2
péliculas de género “drama”. (4 ptos)
4) Mostrar el promedio del sueldo de los actores de películas por género. (3 ptos)
5) Listar todas las personas (actores y directores) que trabajan en la película de
título “El Intocable”. (3 ptos)

Examen Final Ordinario Curso 2011/2012 Página 2


Bases de Datos Grado en Ingeniería Informática

EJERCICIO 2 (SOLUCION)

1) Crear una vista que tenga a las personas (idPersona, apellidos y nombre) que han
trabajado como director y como actor (ambos) a lo largo de su carrera. (4 ptos)

CREATE OR REPLACE VIEW Actor_Director AS (


SELECT DISTINCT IdPersona, nombre, apellidos
FROM Personas p, Actores a, Actua c
WHERE a.IdPersona = p.Idpersona AND c.actor=a.idPersona

INTERSECT

SELECT DISCTINCT IdPersona, nombre, apellidos


FROM Personas p, Directores d, Peliculas l
WHERE d.IdPersona = p.Idpersona AND l.director=d.idPersona
)

2) Crear una vista con los actores (idPersona, apellidos y nombre) que han cobrado
por actuar más que el director que más ha cobrado por dirigir. (4 ptos)

CREATE OR REPLACE VIEW Actor_CobroMas AS


Select DISTINCT IdPersona, apellidos, nombre
From Actuar a, Persona p
where a.IdPersona= p.Idpersona and a.sueldo > Select Max(sueldo) from
Películas

3) Listar los directores (idPersona, apellidos y nombre) que han dirigido más de 2
péliculas de género “drama”. (4 ptos)

CREATE OR REPLACE VIEW DirigioMas2Peliculas AS


Select director, count(Idpelicula) From Películas
where genero = “drama”
group by director
having count(IdPelicula) > 2

Select IdPersona, Apellidos, Nombre From Personas p, DirigioMas2Peliculas d


Where d.director = p.Idepersona

4) Mostrar el promedio del sueldo de los actores de películas por género. (3 ptos)

Select genero, avg(sueldo) from Actuar a, Peliculas l


Where a.Idpelicula = l.Idpelicula
group by genero

5) Listar todas las personas (actores y directores) que trabajan en la película de


título “El Intocable”. (3 ptos)

Select IdPersona, Apellidos, Nombre


From Actuar a, Películas l, Personas p

Examen Final Ordinario Curso 2011/2012 Página 4


Bases de Datos Grado en Ingeniería Informática

Where a.IdPersona = p.Idpersona and l.titulo = “El intocable” and a.IdPelicula =


l.Idpelicula

Union

Select IdPersona, Apellidos, Nombre From Películas l, Personas p


Where l.director = p.Idpersona and l.titulo = “El intocable”

Examen Final Ordinario Curso 2011/2012 Página 5

También podría gustarte