Download Ejercicios de Álgebra Relacional Resueltos página 1 de 3

Document related concepts
no text concepts found
Transcript
Ejercicios de Álgebra Relacional Resueltos
página 1 de 3
Dado el esquema:
Suministrador(cods: d_cods, noms: d_noms, estado: d_estado, ciudad:
d_ciudad)
Pieza(codp: d_codp, nomp: d_nomp, color: d_color, peso: d_peso, ciudad:
d_ciudad)
Proyecto(codj: d_codj, nomj: d_nomj, ciudad: d_ciudad)
Pedido(cods: d_cods, codp: d_codp, codj: d_codj, cant: d_cant)
Responded a las siguientes preguntas:
1. Obtener todos los atributos de todos los proyectos.
PROYECTO
2. Obtener todos los atributos de todos los proyectos en Londres.
PROYECTO DONDE ciudad=’Londres’
3. Obtener los códigos de los suministradores del proyecto J1.
PEDIDO DONDE codj=’J1’
4. Obtener los suministros cuya cantidad esté entre 300 y 750 inclusive.
PEDIDO DONDE cantidad >=300 ∧ cantidad<=750
5. Obtener todas las ocurrencias de Pieza.color y Pieza.ciudad eliminando los pares
duplicados.
PIEZA[color, ciudad]
6. Obtener todos los posibles tríos de código de suministrador, de pieza y de
proyecto en los que el suministrador, pieza y proyecto estén todos en la misma
ciudad.
SUMINISTRADOR ►◄ PIEZA ►◄ PROYECTO
O
(SUMINISTRADOR(ciudad, ciudad_suministrador) x PIEZA(ciudad,ciudad_pieza)
x PROYECTO) DONDE ciudad_suministrador = ciudad_pieza ∧ ciudad_pieza =
pieza
7. Obtener los códigos de suministrador, de pieza y de proyecto de aquellos
suministros en los que el suministrador, pieza y proyecto estén todos en la misma
ciudad.
(PEDIDO ►◄ SUMINISTRADOR►◄ PIEZA►◄ PROYECTO)[cods, codp,
codj]
8. Obtener todos los posibles tríos de código de suministrador, de pieza y de
proyecto en los que el suministrador, pieza y proyecto no estén todos en la misma
ciudad.
((SUMINISTRADOR(ciudad, ciudad_suministrador) x
PIEZA(ciudad,ciudad_pieza) x PROYECTO) DONDE ciudad_suministrador ≠
ciudad_pieza ∨ ciudad_pieza ≠ ciudad ∨ ciudad_suministrador ≠ ciudad) [cods,
codp, codj]
Jesús Miguel Donoso Arévalo
BDA
Ejercicios de Álgebra Relacional Resueltos
página 2 de 3
9. Obtener todos los posibles tríos de código de suministrador, de pieza y de
proyecto en los que el suministrador, pieza y proyecto no estén ninguno en la
misma ciudad.
((SUMINISTRADOR(ciudad, ciudad_suministrador) x
PIEZA(ciudad,ciudad_pieza) x PROYECTO) DONDE ciudad_suministrador ≠
ciudad_pieza ∧ ciudad_pieza ≠ pieza ∧ ciudad_suministrador ≠ pieza) [cods, codp,
codj]
10. Obtener las piezas suministradas por suministradores de Londres.
((PEDIDO ►◄ SUMINISTRADOR) DONDE ciudad=’Londres’)[codp]
11. Obtener las piezas suministradas por suministradores de Londres a proyectos
en Londres.
(PEDIDO ►◄ SUMINISTRADOR ►◄ PROYECTO)DONDE
ciudad=’Londres’[codp,nomp]
12. Obtener todos los pares de nombres de ciudades en las que el suministrador de
la primera sirva a un proyecto de la segunda.
(PEDIDO ►◄ SUMINISTRADOR ►◄ PROYECTO(ciudad,ciudad_proyecto))
[ciudad,ciudad_proyecto]
13. Obtener códigos de piezas que sean suministradas a un proyecto por un
suministrador de la misma ciudad del proyecto.
(PEDIDO ►◄ SUMINISTRADOR ►◄ PROYECTO)[codp]
14. Obtener códigos de proyectos que sean suministrados por un suministrador de
una ciudad distinta a la del proyecto.
((PEDIDO ►◄ SUMINISTRADOR ►◄ PROYECTO(ciudad,ciudad_proyecto))
DONDE ciudad_proyecto ≠ ciudad) [codj]
15. Obtener todos los pares de códigos de piezas suministradas por el mismo
suministrador.
((PEDIDO x PEDIDO
((cods,cods_par),(codp,codp_par),(codj,codj_par)(cant,cant_par))) DONDE
cods=cods_par ∧ codp<codp_par) [codp, codp_par]
20. Obtener los códigos de suministros en los que la cantidad no sea nula.
(PEDIDO DONDE ¬NULO(cantidad))[cods, codp, codj]
22. Obtener los nombres de los proyectos a los que suministra S1.
((PEDIDO ►◄ PROYECTO) DONDE cods=’S1’)[nomj]
23. Obtener los colores de las piezas suministradas por S1.
((PEDIDO ►◄ PIEZA) DONDE cods=’S1’)[nomj]
24. Obtener los códigos de las piezas suministradas a cualquier proyecto de
Londres.
((PEDIDO ►◄ PROYECTO) DONDE ciudad = ‘Londres’)[codp]
Jesús Miguel Donoso Arévalo
BDA
Ejercicios de Álgebra Relacional Resueltos
página 3 de 3
25. Obtener los códigos de proyectos que usen al menos una pieza suministrada
por S1.
(PEDIDO DONDE cods =’S1’)[codj]
26. Obtener los códigos de suministradores que suministren al menos una pieza
suministrada al menos por un suministrador que suministren al menos una pieza
de color rojo.
(PEDIDO►◄ ((PEDIDO►◄ ((PEDIDO►◄ (PIEZA DONDE
color=’rojo’)[codp])[cods]))[codp]))[cods]
27. Obtener los códigos de suministradores con estado menor que S1.
((SUMINISTRADOR[cods,estado])((cods,cods_1)(estado,estado_1)) x
SUMINISTRADOR DONDE cods=’S1’ ∧ estado_1 < estado)[cods_1]
30. Obtener los códigos de los proyectos que no reciben ninguna pieza roja
suministrada por algún suministrador de Londres.
PROYECTO[codj]- ((PEDIDO ►◄ PIEZA DONDE color=’rojo’) ►◄
SUMINISTRADOR DONDE ciudad=’Londres’)[codj]
31. Obtener los códigos de los proyectos suministrados únicamente por S1.
PEDIDO[codj] – (PEDIDO DONDE cods≠’S1’)[codj]
32. Obtener los códigos de piezas suministradas a todos los proyectos en Londres.
PEDIDO[codp,codj] ÷PROYECTO DONDE ciudad=’Londres’[codj]
33. Obtener los códigos de los suministradores que suministren al menos la misma
pieza a todos los proyectos.
PEDIDO[cods,codp,codj] ÷ PROYECTO[codj]
34. Obtener los códigos de los proyectos que reciban al menos todas las piezas que
suministra S1.
PEDIDO[codp, codj] ÷ (PEDIDO DONDE cods=’S1’)[codp]
Jesús Miguel Donoso Arévalo
BDA