Algebra Relacional
Algebra Relacional
Algebra Relacional
FICA – CITEL
PROGRAMACION AVANZADA
Integrantes: Achiña Diego, Beltran Bryan, Navarrete Gustavo, Picuasi Cesar, Ruano Jessica.
Paralelo: A
Docente: Ing. Luis Suarez
Fecha: 17/08/2020
ALGEBRA RELACIONAL
• Resultado
Ejercicio 2: obtener todos los valores de P# para los proveedores que avastecen el articulo T1
• Estructura algebra relacional
𝜋𝑝#(𝜎𝑡# =′ 𝑇1′(𝐸𝑛𝑣𝑖𝑜𝑠))
• SQL
• Resultado
• Resultado
• Resultado
Ejercicio 5: Obtener los valores P# para los proveedores que suministran para el articulo T1 el
componente C1
• Estructura algebra relacional
𝜋𝑝#(𝜎(𝑡# =′ 𝑇1′)𝑎𝑛𝑑(𝑐# =′ 𝐶1′)(𝐸𝑛𝑣𝑖𝑜𝑠))
• SQL
• Resultado
Ejercicio 6: obtener los valores de TNOMBRE en orden alfabetico para los articulos abastecidos por
el proveedor P1
• Estructura algebra relacional
𝜋𝑡𝑛𝑜𝑚𝑏𝑟𝑒(𝐴𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑠 ∗ (𝜎𝑝# =′ 𝑃1′(𝐸𝑛𝑣𝑖𝑜𝑠)))
• SQL
• Resultado
Ejercicio 7: Obtener los valores de C3 para los componentes suministrados para cualquier articulo
de MADRID
• Estructura algebra relacional
𝜋𝑐#(𝑒𝑛𝑣𝑖𝑜𝑠 ∗ (𝜎𝑐𝑖𝑢𝑑𝑎𝑑 = ′𝑀𝑎𝑑𝑟𝑖𝑑′(𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑠)))
• SQL
• Resultado
Ejercicio 8: Obtener los valores de C# de los componentes tales que ningun otro componente
tenga un valor de peso inferior
• Estructura algebra relacional
𝜋𝑐#(𝑐𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠 ∗ 𝑝𝑒𝑠𝑜 = 𝑝∑( )min(𝑝𝑒𝑠𝑜)𝑝(𝑐𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠))
• SQL
• Resultado
Ejercicio 9: Obtener los valores de P# para los proveedores que suministren los articulos T1 y T2
• Estructura algebra relacional
(𝜋𝑝#(𝜎𝑡 =′ 𝑇1′(𝐸𝑛𝑣𝑖𝑜𝑠))) ∩ (𝜋𝑝#(𝜎𝑡 =′ 𝑇2′(𝐸𝑛𝑣𝑖𝑜𝑠))
• SQL
• Resultado
Ejercicio 10: Obtener los valores de P# para los proveedores que suministran para un articulo de
SEVILLA a MADRID un componente rojo
• Estructura algebra relacional
(𝑐𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠)
𝜋𝑝#((𝜎𝑐𝑜𝑙𝑜𝑟 = ′𝑅𝑂𝐽𝑂′ )) ∗ (𝐸𝑛𝑣𝑖𝑜𝑠 ∗ 𝜋𝑡#((𝜎(𝑐𝑖𝑢𝑑𝑎𝑑 =′ 𝑀𝐴𝐷𝑅𝐼𝐷′𝑜𝑟 𝑐𝑖𝑢𝑑𝑎𝑑
= ′𝑆𝐸𝑉𝐼𝐿𝐿𝐴′)(𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑠)))
• SQL
• Resultado
Ejercicio 11: Obtener mediante subconsultas, los valores de C# para los componentes
suministrados para algun articulo de SEVILLA por un proveedor de SEVILLA
• Estructura algebra relacional
• Resultado
Ejercicio 12: Obtener los valores de tno para los articulos que usan al menos un componente que
se puede obtener con el proveedor P1
• Estructura algebra relacional
𝜋𝑡#(𝑒𝑛𝑣𝑖𝑜𝑠 ∗ 𝜋𝑐#(𝜎𝑝# =′ 𝑃1′(𝐸𝑛𝑣𝑖𝑜𝑠)))
• SQL
• Resultado
Ejercicio 13: Obtener todas las ternas(CIUDAD, C#, CIUDAD) tales que un proveedor de la primera
ciudad suministre el componente especificado para un articulo montado en la segunda ciudad
• Estructura algebra relacional
𝐴𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑐𝑖𝑢𝑑𝑎𝑑(𝑝#,𝑐#,𝑐𝑖𝑢𝑑𝑎𝑑)
• Resultado
Ejercicio 14: Repetir el ejercicio anterior pero sin recuperar las ternas en los dos valores de ciudad
sean los mismos
• Estructura algebra relacional
𝐴𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑐𝑖𝑢𝑑𝑎𝑑(𝑝#,𝑐#,𝑐𝑖𝑢𝑑𝑎𝑑)
∗ 𝐴𝑟𝑡𝑖𝑐𝑢𝑙𝑜_𝑐𝑖𝑢𝑑𝑎𝑑))
• SQL
• Resultado
• SQL
• Resultado
Ejercicio 16: para cada articulo y componente suministrado obtener los valores de C#, T# y la
cantidad total correspondiente
• Estructura algebra relacional
∑(𝑐#, 𝑡#)⨁𝑠𝑢𝑚(𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑)𝑇𝑜𝑡𝑎𝑙(𝑒𝑛𝑣𝑖𝑜𝑠)
• SQL
• Resultado
Ejercicio 17: Obtener los valores de T# de los articulos abastecidos al menos por un proveedor que
no viva en madrid y que no este en la misma ciudad en la que se monta el articulo
• Estructura algebra relacional
𝑝𝑟𝑜𝑣𝑛𝑜𝑚𝑎𝑑𝑟𝑖𝑑 (𝑝#, 𝑐𝑖𝑢𝑑𝑎𝑑𝑝)
← 𝜋𝑝#, 𝑐𝑖𝑢𝑑𝑎𝑑 (𝜎 <>′ 𝑀𝐴𝐷𝑅𝐼𝐷′(𝑃𝑟𝑜𝑣𝑒𝑒𝑑𝑜𝑟𝑒𝑠))𝜋𝑡#(𝜎( )𝑐𝑖𝑢𝑑𝑎𝑑 <
> 𝑐𝑖𝑢𝑑𝑎𝑑𝑝)(𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑠 ∗ (𝑒𝑛𝑣𝑖𝑜𝑠 ∗ 𝑝𝑟𝑜𝑣𝑛𝑜 𝑚𝑎𝑑𝑟𝑖𝑑))
• SQL
• Resultado
Ejercicio 18: Obtener los valores de P# para los proveedores que suministran al menos un
componente suministrado al menos por un proveedor que suministra al menos un componente
ROJO
• Estructura algebra relacional
𝜋𝑝#(𝑒𝑛𝑣𝑖𝑜𝑠 ∗ (𝜋𝑐#(𝑒𝑛𝑣𝑖𝑜𝑠 ∗ (𝜎𝑐𝑜𝑙𝑜𝑟 = ′𝑅𝑂𝐽𝑂′(𝑐𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠)))))
• SQL
• Resultados
Ejercicio 19: Obtener los identificadores de articulos, T#, para los que se ha suministrado algun
componente del que se haya suministrado una media superior a 320 articulos
• Estructura algebra relacional
• SQL
• Resultados
Ejercicio 20: Seleccionar los identificadores de proveedores que hayan realizado algun envio con
cantidad mayor que la media de los envios realizados para el componentea que correspondia
dicho envio
• Estructuras algebra relacional
• SQL
• Resultados
Ejercicio 21: Seleccionar los identificadores de componentes suministrados para el articulo 'T2' por
el proveedor 'P2'
• Estructura algebra relacional
𝜋𝑐#(𝜎𝑡# =′ 𝑇2′𝑎𝑛𝑑 𝑝# =′ 𝑃2′(𝐸𝑛𝑣𝑖𝑜𝑠))
• SQL
• Resultados
Ejercicio 22: Seleccionar todos los datos de los envios realizados de componentes cuyo color no
sea 'ROJO'
• Estructura algebra relacional
𝜋𝐸𝑛𝑣𝑖𝑜𝑠.∗ (𝐸𝑛𝑣𝑖𝑜𝑠 ∗ (𝜎𝐶𝑜𝑙𝑜𝑟 <> ′𝑅𝑂𝐽𝑂′(𝑐𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠)))
• SQL
• Resultado
Ejercicio 23: Seleccionar los identificadores de componentes que se suministren para los articulos
'T1' y 'T2'
• Estructura algebra relacional
(𝜋𝑐𝑛𝑜(𝜎𝑡𝑛𝑜=′𝑇1′(𝐸𝑛𝑣𝑖𝑜𝑠)))⋂(𝜋𝑐𝑛𝑜(𝜎𝑡𝑛𝑜=′𝑇2′(𝐸𝑛𝑣𝑖𝑜𝑠))
• SQL
• Respuesta
• Respuesta
Ejercicio 25: Seleccionar los colores de componentes suministrados por el proveedor 'P1'
• Estructura algebra relacional
• Respuesta
Ejercicio 26: Seleccionar los datos de envio y nombre de ciudad de aquellos envios que cumplan
que el articulo, proveedor y componentes son de la misma ciudad
• Estructura algebra relacional
• SQL
• Respuesta
Ejercicio 27: seleccionar los nombres de los componentes que son suministrados en una cantidad
total superior a 500
• Estructura algebra relacional
𝜋𝑐𝑛𝑜𝑚𝑏𝑟𝑒(𝐶𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠 ∗ (𝜎𝑠>500 (∑(𝑐𝑛𝑜) ⊕𝑠𝑢𝑚(𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑)
𝑆(𝐸𝑛𝑣𝑖𝑜𝑠))))
• SQL
• Respuesta
Ejercicio 28: Seleccionar los identificadores de proveedores que residan en Sevilla y no suministren
mas de dos articulos distintos
• Estructura algebra relacional
𝜋𝑝#(𝜎𝑐𝑖𝑢𝑑𝑎𝑑 = ′𝑆𝐸𝑉𝐼𝐿𝐿𝐴′(𝑃𝑟𝑜𝑣𝑒𝑒𝑑𝑜𝑟𝑒𝑠)) ∩ 𝜋𝑝#(𝜎(𝑐 ≤ 2)∑(𝑝#)⨁𝑐𝑜𝑢𝑛𝑡(𝑑𝑖𝑠𝑡𝑖𝑛𝑐𝑡 𝑡#)𝑐(𝑒𝑛𝑣𝑖𝑜𝑠))
• SQL
• Respuesta
Ejercicio 29: Seleccionar los identificadores de articulos para los cuales todos sus componentes se
fabrican en una misma ciudad
• Estructura algebra relacional
𝜋𝑡𝑛𝑜 (𝜎𝑐=1 (∑(𝑡𝑛𝑜)⨁𝑐𝑜𝑢𝑛𝑡(𝑑𝑖𝑠𝑡𝑖𝑛𝑐𝑡 𝑐𝑖𝑢𝑑𝑎𝑑) 𝐶(𝑐𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠 ∗ 𝐸𝑛𝑣𝑖𝑜𝑠))
• SQL
• Respuesta
Ejercicio 30: Seleccionar los identificadores de articulos para los que se proveen envios de todos
los componentes existentes en la base de datos
• Estructura algebra relacional
𝜋𝑡𝑛𝑜(𝐸𝑛𝑣𝑖𝑜𝑠 ÷ 𝜋𝑐𝑛𝑜(𝑐𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠))
• SQL
• Respuesta
• SQL
• Respuesta