0% encontró este documento útil (0 votos)
384 vistas14 páginas

Ejercicios de Álgebra Relacional en Bases de Datos

Este documento presenta un esquema relacional de una base de datos para un banco y resuelve una serie de consultas utilizando álgebra relacional. Se definen relaciones como clientes, cuentas, préstamos y sucursales, y se realizan consultas como seleccionar clientes con préstamos en una sucursal específica, obtener los nombres de clientes con cuentas o préstamos, y calcular sumas y máximos de sueldos de empleados por sucursal.

Cargado por

Yamani GD
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
384 vistas14 páginas

Ejercicios de Álgebra Relacional en Bases de Datos

Este documento presenta un esquema relacional de una base de datos para un banco y resuelve una serie de consultas utilizando álgebra relacional. Se definen relaciones como clientes, cuentas, préstamos y sucursales, y se realizan consultas como seleccionar clientes con préstamos en una sucursal específica, obtener los nombres de clientes con cuentas o préstamos, y calcular sumas y máximos de sueldos de empleados por sucursal.

Cargado por

Yamani GD
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

FUNDAMENTOS DE

BASE DE DATOS
ALGEBRA RELACIONAL
Dadas las siguientes relaciones, resolver por medio del algebra relacional
los siguientes ejercicios
Fig. 1 Esquema relacional de un banco

Resolver los siguientes ejercicios haciendo uso del algebra


relacional.

1.- seleccionar las tuplas de la relación préstamo en que la sucursal


es «Navacerrada».
σnombre-sucursal = «Navacerrada» (préstamo)

Numero- Nombre- Impor


prestamo sucursal te
p-15 Navacerrada 1.500
p-16 Navacerrada 1.500

2.- Obtener los nombres de todos los clientes que tienen un préstamo o una
cuenta

Πnombre-cliente (prestatario)∪Πnombre-cliente (impositor)

Nombre-
cliente
Abril
Fernández
Gómez
González
López
Pérez
Rupérez
Santos
Sotoca
Valdivieso
.
3.- Se pueden buscar todos los clientes del banco que tienen abierta
una cuenta pero no tienen concedido ningún préstamo
Πnombre-cliente (impositor) – Πnombre-cliente (prestatario)

Nombre-
cliente
Abril
Gonzales
Ruperez

4.- se desea averiguar los nombres de todos los clientes que tienen
concedido un préstamo en
la sucursal de Navacerrada.

σnombre-sucursal = «Navacerrada» (prestatario ⋅ préstamo).

Nombre- Prestatario.numero- Préstamo.numero- Nombre- Import


cliente prestamo prestamo sucursal e
Santos P-17 P-15 Navacerrada 1.500
Santos P-17 P-16 Navacerrada 1.300
Gomez P-23 P-15 Navacerrada 1.500
Gomez P-23 P-16 Navacerrada 1.300
Lopez P-15 P-15 Navacerrada 1.500
Lopez P-15 P-16 Navacerrada 1.300
Sotoca P-14 P-15 Navacerrada 1.500
Sotoca P-14 P-16 Navacerrada 1.300
Perez P-93 P-15 Navacerrada 1.500
Perez P-93 P-16 Navacerrada 1.300
Gomez P-11 P-15 Navacerrada 1.500
Gomez P-11 P-16 Navacerrada 1.300
Valdivieso P-17 P-15 Navacerrada 1.500
Valdivieso P-17 P-16 Navacerrada 1.300
Fernandez P-16 P-15 Navacerrada 1.500
Fernandez P-16 P-16 Navacerrada 1.300

5.- los clientes que tienen concedido un préstamo en la sucursal de


Navacerrada.

Πnombre-cliente (σprestatario.número-préstamo = préstamo.número-préstamo


(σnombre-sucursal = «Navacerrada» (prestatario ⋅ préstamo)))

Nombre-cliente
Fernandez
Lopez

6.- La consulta para averiguar el máximo saldo de cuenta del banco

Πsaldo (cuenta) – Πcuenta.saldo (σcuenta.saldo < d.saldo


(cuenta ⋅ ρd (cuenta)))
Sald
o
900

7.- hallar a los clientes que vivian en la calle Gomez y en esa misma
ciudad.

Πcliente.nombre-cliente (σcliente.calle-cliente = dirección-Gómez ∧


cliente.ciudad-cliente = dirección-Gómez. ciudad (cliente ⋅

ρdirección-Gómez (calle, ciudad) (Πcalle-cliente, ciudad-cliente


(σnombre-cliente = «Gómez» (cliente)))))

Nombre-
cliente
Gomez
Perez

8.- se desea averiguar todos los clientes que tienen un préstamo


concedido y una cuenta abierta.

Πnombre-cliente (prestatario)∩Πnombre-cliente (impositor)

Nombre-
cliente
Gomez
Perez
Santos

9.- Averiguar los nombres de todos los clientes que tienen concedido
un préstamo en el banco y averiguar su importe.

Πnombre-cliente, número-préstamo, importe (prestatario préstamo)

Nombre- Numero- Impor


cliente prestamo te
Fernandez P-16 1.300
Gomez P-23 2.000
Gomez P-11 900
Lopez P-15 1.500
Perez P-93 500
Santos P-17 1.000
Sotoca P-14 1.500
valdivieso P-17 1.000

10.- Hallar los nombres de todas las sucursales con clientes que
tienen una cuenta abierta en el banco y que viven en Peguerinos.

Πnombre-sucursal (σciudad-cliente = «Peguerinos» (cliente


cuenta impositor))

Nombre-
sucursal
Galapagar
Navacerrada

11.- se desea hallar a todos los clientes que tengan abierta una
cuenta en todas las sucursales ubicadas en Arganzuela.

Πnombre-cliente, nombre-sucursal (impositor cuenta)


 Πnombre-sucursal (σciudad-sucursal = «Arganzuela» (sucursal))

Nombre-
sucursal
Centro
Galapagar

12.- se desea hallar la suma total de sueldos de todos los empleados


a tiempo parcial en cada sucursal del banco por separado, en lugar
de hallar la suma de sueldos de todo el banco.

nombre-sucursal Gsum(sueldo) (trabajo-por-horas)

Nombre- Nombre- Sueld


empleado sucursal o
Gonzales Centro 1.50
Diaz Centro 0
Jimenez Centro 1.30
Catalán Leganes 0
Cana Leganes 2.50
Cascallar Navacerrada 0
Fernandez Navacerrada 1.60
Ribera navacerrada 0
1.50
0
5.30
0
1.50
0
1.30
0

13.- se desea averiguar el sueldo máximo de los empleados a tiempo


parcial de cada oficina, además de la suma de los sueldos.

nombre-sucursalGsum(sueldo) as suma-sueldo,max(sueldo) as
sueldo-máximo (trabajo-por-horas)

Nombre- Suma- Sueldo-


sucursal empleado maximo
Centro 5.300 2.500
Leganes 3.100 1.600
Navacerrada 8.300 5.300

Para la siguiente Base de Datos Relacional:

FEDERACION (NOMBRE#, DIRECCION, TELEFONO)

MIEMBRO (DNI#, NOMBRE_M, TITULACION)

COMPOSICION (NOMBRE#, DNI#, CARGO, FECHA_INICIO)

Se pide dar respuesta algebraica a las siguientes consultas:

14. Obtener el nombre de los presidentes de federación.

Π NOMBRE_M (σ CARGO = 'PRESIDENTE' (COMPOSICION) * MIEMBRO)

15.- Obtener la dirección de aquellas federaciones que tienen


gerente.

Π DIRECCION (σ CARGO = 'GERENTE' (COMPOSICION) * FEDERACION)

16.- Obtener las federaciones que no tienen asesor técnico.

Π NOMBRE= (FEDERACION)-Π NOMBRE# (σ CARGO = 'ASESOR TECNICO' (COMPOSICION)

17.- 4. Obtener las federaciones que tienen todos los cargos.

Π NOMBRE= CARGO (COMPOSICION) ÷ Π CARGO (COMPOSICION)

18.- 5. Obtener las federaciones que tienen asesor técnico y


psicólogo.
Π NOMBRE ( σ CARGO = 'ASESOR TECNICO' (COMPOSICION)) ∩

Π NOMBRE= (σ CARGO = 'PSICOLOGO (COMPOSICION))

Dadas las siguientes relaciones, resolver cada


uno de los ejercicios que se te pide haciendo P C T CANTIDAD
uso del Algebra relacional # # #
P PNOMBR CATEGORI CIUDAD P C T 200
# E A 1 1 1 700
P CARLOS 20 SEVILLA P C T 400
1 JUAN 10 MADRID 2 1 4 200
P JOSE 30 SEVILLA P C T 200
2 INMA 20 SEVILLA 2 3 1 500
P EVA 30 CACERE P C T 600
3 S FIG1. 2 3 2 400
P P C T 800
4 2 3 3 100
P P C T 200
5 2 3 4 500
Relación de proveedores P C T 300
2 3 5 300
C CNOMBR COLO PES CIUDAD P C T 200
# E R O 2 3 6 100
C X3A ROJO 12 SEVILLA P C T 100
1 B85 VERD 17 MADRID 2 3 7 200
C C4B E 17 MALAGA P C T 100
2 C4B AZUL 14 SEVILLA 3 5 2 200
C VT8 ROJO 12 MADRID P C T 800
3 C30 AZUL 19 SEVILLA 3 3 1 400
C ROJO P C T 500
4 4 4 2
C P C T
5 4 6 3
C P C T
6 5 6 2
P C T
FIG.2 fig.2 relacion de componentes
5 2 4
P C T
T TNOMBRE CIUDAD
5 2 4
#
P C T
T CLASIFICADOR MADRID
5 5 7
1 A MALAGA
P C T
T PERFORADORA CECERES
5 5 2
2 LECTORA CACERES
P C T
T CONSOLA SEVILLA
5 6 4
P C T
5 1 4
P C T
5 3 4
P C T
5 4 5
P C T
5 6 4
3 MEZCLADORA BERCELON
T TERMINAL A
4 CINTA SEVILLA
T
5
T
6
T
7
Fig.3 relacion de artículos

Fig.4 relacion de envíos

19.- Obtener de la tabla de artículos los valores de T# y CIUDAD


donde el nombre de la ciudad acaba en D o contiene al menos una
E.

Π t#,ciudad (σ ciudad LIKE%D) OR (ciudad LIKE%E%)(Articulos))

T CIUDAD
#
T MADRID
1 CACERES
T CACERES
3 SEVILLA
T BARCELON
4 A
T
5
T
6

20.- Obtener los valores de P# para los proveedores que


suministran para el artículo T1 el componente C1.

Π p#(σ (t#=´T1´) AND (C#=´C1´)(Envios))

P
#
P
1

21.- Obtener los valores de P# para los proveedores que


suministran para un artículo de SEVILLA o MADRID un componente
ROJO.

Π p#((σ color=´ROJO´(componentes))*(Envios* Π t#((σ (ciudad=´MADRID´


OR Ciudad=´SEVILLA´)(Articulos)))))

P
#
P
1
P
4

22.- Obtener los valores de T# para los artículos que usan al


menos un componente que se puede obtener con el proveedor P1.

Π t#( Envíos * Π c#(σ p#='P1'(Envíos)) )

T
#
T
1
T
4
23.- obtener los valores de P# para los proveedores que suministran
almenos un componente suministrado almenos por un proveedor que
suministra almenos un componente rojo.

Π p#(ENVIOS*(Π C#(ENVIOS*(Π p#(ENVIOS*(σ color=´ROJO´(COMPONENTES)))))))

P
#
P
1
P
2
P
3
P
4
P
5

24.-Obtener los identificadore de artículos, T#, para los que se ha


suministrado algún componente del que se haya suministrado una
media superior a 320 articulos

Π t#(ENVIOS*(Π C#(σ A>320(∑(c#) ⊕ AVG(cantidad) A (ENVIOS)))))

T
#
T
1
T
2
T
3
T
4
T
5
T
6

25.-Seleccionar todos los datos de los envíos realizados de


componentes cuyo color no sea ´ROJO´.

Π ENVIOS.*(ENVIOS*(σ COLOR<>´ROJO´ (COMPONENTES)))

P C T CANTIDAD
# # #
P C T 200
5 2 2 100
P C T 400
5 2 4 200
P C T 200
2 3 1 200
P C T 500
3 3 1 200
P C T 600
2 3 2 400
P C T 800
2 3 3 100
P C T 500
2 3 4 400
P C T
5 3 4
P C T
2 3 5
P C T
2 3 6
P C T
2 3 7
P C T
2 5 2
P C T
5 5 4
P C T
5 5 5

26.- Seleccionar los nombres de los components que son


suministrados en una cantidad total superior a 500.

Π cnombre(componentes*(σ s>500)(∑(c#)⊕SUM(cantidad) S(Envios))))

CNOMBR
E
C30
C4B
VT8
X3A

27.-Seleccionar los identificadores de proveedores que residan en


Sevilla y no suministren mas de dos artículos distintos.

Π p#(σ ciudad=´sevilla´(proveedores))∩Π p#(σ (c<=2)(∑(p#)⊕COUNT(DISTINCT


t#)C(envíos)))
P
#
P
1
P
3
P
4

28.-seleccionar los identificadores de artículos para los que se


provean envios de datos los componentes existente en la base de
datos.

Π t#(Envios ÷ Π c#(componentes))

T
#
T
4

29.- Obtener los valores de p# para los proveedores que suministren


los artículos T1 y T2

Π p#(σ t#=´T1´(envíos))) ∩ (Π p#(σ t#=´t2´(envíos))

P
#
P
2
P
3

30.-seleccionar el identificador de proveedores y el numero de envíos


de coponentes de color ´ROJO´ llevados acabo por cada proveedor.

∑(p#)⊕COUNT(*) A (ENVIOS*(σ COLOR=´ROJO´ (COMPONENTES)))

P A
#
P 2
1 1
P 2
3 4
P
4
P
5
Bibliografía

Fundamentos.de.Bases.de.datos.Abraham.Silberschatz.McGRAW-HILL

También podría gustarte