Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% encontró este documento útil (0 votos)
48 vistas13 páginas

Algebra Relacional

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 13

UNIVERSIDAD TECNICA DEL NORTE

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

Ejercicio 1: obtener todos los detalles de de todos los articulos de CACERES


• Estructura algebra relacional
𝜎𝑐𝑖𝑢𝑑𝑎𝑑 = ′𝐶𝐴𝐶𝐸𝑅𝐸𝑆′(𝐴𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑠)
• SQL

• Resultado

Ejercicio 2: obtener todos los valores de P# para los proveedores que avastecen el articulo T1
• Estructura algebra relacional
𝜋𝑝#(𝜎𝑡# =′ 𝑇1′(𝐸𝑛𝑣𝑖𝑜𝑠))
• SQL

• Resultado

Ejercicio 3: Obtener la lista de pares de atributos (COLOR, CIUDAD) de la tabla de componentes


eliminados los pares duplicados
• Estructura algebra relacional
𝜋𝑐𝑜𝑙𝑜𝑟, 𝑐𝑖𝑢𝑑𝑎𝑑(𝑐𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠)
• SQL

• Resultado

Ejercicio 4: Obtenga de la tabla de articulos los valores de T# y ciudad donde el nombre de la


ciudad acaba en D o contiene al menos una E
• Estructura algebra relacional
𝜋𝑡#, 𝑐𝑖𝑢𝑑𝑎𝑑(𝜎(𝑐𝑖𝑢𝑑𝑎𝑑 𝐿𝐼𝐾𝐸 ′ %𝐷′)𝑜𝑟 (𝑐𝑖𝑢𝑑𝑎𝑑 𝐿𝐼𝐾𝐸 ′ %𝐸%′)(𝐴𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑠))
• SQL

• 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

𝜋𝑐 ((𝜎 𝑐𝑖𝑢𝑑𝑎𝑑 =′ 𝑆𝐸𝑉𝐼𝐿𝐿𝐴′(𝑃𝑟𝑜𝑣𝑒𝑒𝑑𝑜𝑟𝑒𝑠)) ∗ 𝜋𝑐#, 𝑝# (𝐸𝑛𝑣𝑖𝑜𝑠 ∗ (𝜎 𝑐𝑖𝑢𝑑𝑎𝑑 =′ 𝑆𝐸𝑉𝐼𝐿𝐿𝐴′(𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑠))))


• SQL

• 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
𝐴𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑐𝑖𝑢𝑑𝑎𝑑(𝑝#,𝑐#,𝑐𝑖𝑢𝑑𝑎𝑑)

← 𝜋𝑝#, 𝑐#, 𝑐𝑖𝑢𝑑𝑎𝑑(𝐸𝑛𝑣𝑖𝑜𝑠 ∗ 𝐴𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑠)𝜋𝑐𝑖𝑢𝑑𝑎𝑑,𝑐#,𝑐𝑖𝑢𝑑𝑎𝑑𝑎(𝑃𝑟𝑜𝑣𝑒𝑒𝑑𝑜𝑟𝑒𝑠


∗ 𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑐𝑖𝑢𝑑𝑎𝑑)
• SQL

• 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

Ejercicio 15: Obtener el numero de suministros, el de articulos distintos suministrados y la


cantidad total de articulos suministrados por el proveedor P2
• Estructura algebra relacional
𝑛𝑢𝑚𝑒𝑟𝑜 𝑑𝑒 𝑠𝑢𝑚𝑖𝑛𝑖𝑠𝑡𝑟𝑜𝑠⨁𝑐𝑜𝑢𝑛𝑡(𝑑𝑖𝑠𝑡𝑖𝑛𝑐𝑡 𝑡#)𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑠𝑠𝑢𝑚𝑖𝑛𝑖𝑠𝑡𝑟𝑎𝑑𝑜𝑠⨁𝑠𝑢𝑚(𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑)𝑡𝑜𝑡𝑎𝑙𝑎𝑟𝑡𝑖𝑐𝑢𝑙𝑜𝑠
∑( ) ⨁ 𝑐𝑜𝑢𝑛𝑡() 𝑠𝑢𝑚𝑖𝑛𝑖𝑠𝑡𝑟𝑎𝑑𝑜𝑠 (𝜎𝑝=′𝑃2′(𝑒𝑛𝑣𝑖𝑜𝑠))

• 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

𝜋𝑡#(𝑒𝑛𝑣𝑖𝑜𝑠 ∗ (𝜋𝑐#(𝜎𝐴 > 320(∑(𝑐#)⨁𝐴𝑉𝐺(𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑)𝐴(𝑒𝑛𝑣𝑖𝑜𝑠)))))

• 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

Ejercicio 24: Seleccionar el identificador de proveedor y el numero de envios de componentes de


color 'ROJO' llevados a cabo por cada proveedor
• Estructura algebra relacional
∑(𝑝𝑛𝑜) ⊕𝑐𝑜𝑢𝑛𝑡(∗) 𝐴(𝐸𝑛𝑣𝑖𝑜𝑠 ∗ (𝜎𝑐𝑜𝑙𝑜𝑟=′𝑅𝑂𝐽𝑂′ (𝐶𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠)))
• SQL

• Respuesta
Ejercicio 25: Seleccionar los colores de componentes suministrados por el proveedor 'P1'
• Estructura algebra relacional

𝜋𝑐𝑜𝑙𝑜𝑟(𝐶𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠 ∗ (𝜎𝑝𝑛𝑜=′𝑃1′ (𝐸𝑛𝑣𝑖𝑜𝑠)))


• SQL

• 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

Ejercicio 31: Seleccionar los codigos de proveedor y ariculos que suministran al


menos dos componentes de color 'Rojo'
• Estructura algebra relacional
𝜋𝑝𝑛𝑜,𝑡𝑛𝑜(𝜎𝑐>1 (∑(𝑝𝑛𝑜, 𝑡𝑛𝑜)⨁𝑐𝑜𝑢𝑛𝑡(∗)𝐶(𝐸𝑛𝑣𝑖𝑜𝑠 ∗ (𝜎𝑐𝑜𝑙𝑜𝑟=𝑅𝑜𝑗𝑜(𝐶𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠))))

• SQL

• Respuesta

También podría gustarte