Bases de Datos 7/9/98 (solución)

Anuncio
%DVHVGH'DWRVVROXFLyQ
1) a) 0.25 punts
(SELECT nombre,dni
FROM alumno)
UNION
(SELECT nombre, dni
FROM profesor)
Nota: l’opció :
(SELECT nombre,dni FROM alumno UNION profesor)
és incorrecta perquè alumno i professor tenen esquemes incompatibles.
b) (0.25 punts)
SELECT nombre, dni
FROM profesor PFX
WHERE NOT EXISTS (SELECT * FROM PREPARA PRX
WHERE PRX.dni = PFX.dni)
c) (0.25 punts)
SELECT COUNT(DISTINCT EX.cod_tema)
FROM examen EX
d) (1 punt)
SELECT TX.cod_tema, TX.titulo, AVG(EX.nota)
FROM tema TX, examen EX
WHERE TX.cod_tema = EX.cod_tema
GROUP BY TX.cod_tema, TX.titulo
HAVING count(EX.dni) > 10
Nota: si s’obliden d’enllaçar TX i EX.
e) (1 punt)
SELECT TX.titulo
FROM tema TX, prepara PRX
WHERE PRX.cod_tema = TX.cod_tema AND
NOT EXISTS (SELECT * FROM profesor PFX
WHERE NOT EXISTS (SELECT * FROM prepara PRY
PRY.dod_tema = TX.cod_tema AND
PRY.dni = PFX.dni))
f) (1 punt)
SELECT AX.nombre, AX.dni
FROM alumno AX, examen EX
WHERE AX.dni = EX.dni AND EX.nota > 6
AND NOT EXISTS (SELECT * FROM examen EY
WHERE AX.dni = EY.dni AND EY.nota <= 6)
AND ALX.edad < (SELECT AVG(edad) FROM alumno)
3
%DVHVGH'DWRVVROXFLyQFRQW
2) (1 punt)
CREATE ASSERTION
CHECK (NOT EXISTS (SELECT * FROM TEMA TX, PREPARA PX
WHERE TX.cod_tema = PX.cod_tema
AND 1 >= (SELECT COUNT(*) FROM PREPARA PY
WHERE PY.cod_tema = TX.cod_tema)));
O bien,
CREATE ASSERTION
CHECK (1 < ALL (SELECT COUNT(*) FROM PREPARA
GROUP BY cod_tema));
O bien, simplemente,
CREATE ASSERTION
CHECK (NOT EXISTS (SELECT * FROM TEMA TX
WHERE 1 = (SELECT COUNT(*) FROM PREPARA PY
WHERE PY.cod_tema = TX.cod_tema)));
3) a) (0.5 punts)
MODIFICAR especialidad
INSERTAR
MODIFICAR dni
MODIFICAR cod_tema
MODIFICAR nota
en ALUMNO
en EXAMEN
en EXAMEN
en EXAMEN
en EXAMEN
4) (0.75 punts)
{PX.nombre, PX.dni | PROFESOR (PX) ∧
¬∃AX (ALUMNO(AX) ∧ (PX.dni = AX.prof_pra ∨ PX.dni = AX.prof_teo)) ∧
∃PRX (PREPARA(PRX) ∧ PRX.dni = PX.dni ∧
∃PRY (PREPARA(PRY) ∧ PRY.dni = PX.dni) ∧ PRX ≠ PRY) }
Nota: se puede hacer de distintas maneras, como, por ejemplo, con un paratodo.
4
Documentos relacionados
Descargar