Você está na página 1de 29

EL LGEBRA RELACIONAL

Consta de un conjunto de operaciones que toman como


entrada una o dos relaciones y producen como resultado
una nueva relacin.
Las operaciones fundamentales del lgebra relacional
son:
seleccin
proyeccin,
Unin
diferencia de conjuntos
producto cartesiano
renombramiento.
hay otras operaciones, por ejemplo, interseccin de
conjuntos, reunin natural, divisin y asignacin.

Las operaciones seleccin, proyeccin y renombramiento
se denominan operaciones unarias porque operan sobre
una sola relacin.
Las otras tres operaciones operan sobre pares de
relaciones y se denominan, por lo tanto, operaciones
binarias.
Seleccin ()
Selecciona tuplas que satisfacen un predicado dado. Se
utiliza la letra griega sigma minscula () para denotar la
seleccin.
El predicado aparece como subndice de . La relacin del
argumento se da entre parntesis a continuacin de .

Por tanto, para seleccionar las tuplas de la relacin Alumno
en que el nombre es Juan hay que escribir
Nombre= Juan (Alumno)

Nombre= Juan (Alumno)

Control Nombre A_Paterno A_Materno Promedio
13620015 Juan Lpez Cruz 90
13620117 Pedro Santiago Cruz 80
13620139 Juan Prez Lpez 85
13620004 Andrs Soriano Ventura 95
13620012 Pablo Lpez Lpez 89
Control Nombre A_Paterno A_Materno Promedio
13620015 Juan Lpez Cruz 90
13620139 Juan Prez Lpez 85

Nombre= Juan Promedio>=90 (Alumno)


Control Nombre A_Paterno A_Materno Promedio
13620015 Juan Lpez Cruz 90
En la operacin seleccin, se permiten las comparaciones
que utilizan =, , <, , > o en el predicado de
seleccin.
Adems, se pueden combinar varios predicados en uno
mayor utilizando las conectivas y () y o ().
Operacin proyeccin ()
Es una operacin unaria que devuelve su relacin de
argumentos, excluyendo algunos argumentos.
Dado que las relaciones son conjuntos, se eliminan todas las
filas duplicadas.
La proyeccin se denota por la letra griega mayscula pi ().
Se crea una lista de los atributos que se desea que aparezcan
en el resultado como subndice de .
La relacin de argumentos se escribe a continuacin entre
parntesis.

Nombre, Promedio (Alumno)

Nombre, Promedio (Alumno)



Control Nombre A_Paterno A_Materno Promedio
13620015 Juan Lpez Cruz 90
13620117 Pedro Santiago Cruz 80
13620139 Juan Prez Lpez 85
13620004 Andrs Soriano Ventura 95
13620012 Pablo Lpez Lpez 89
Nombre Promedio
Juan 90
Pedro 80
Juan 85
Andrs 95
Pablo 89

Control, Nombre
(
Promedio>=87
(Alumno))
Control Nombre Promedio
13620015
Juan 90
13620004
Andrs 95
13620012
Pablo 89
El promedio solo
para comparacin
Control Nombre
13620015
Juan
13620004
Andrs
13620012
Pablo
Prestatario
Nombre_ cliente Num_ prstamo
Fernndez P-16
Gmez P-93
Gmez P-15
Lpez P-14
Prez P-17
Santos P-11
Aguirre P-23
Valdivieso P-17
Nombre_cliente Nmero_cuenta
Abril C-102
Gmez C-101
Gonzlez C-201
Gonzlez C-217
Lpez C-222
Snchez C-215
Santos C-305
Impositor
Es una operacin binaria, denotada, como en la teora de
conjuntos, por .
Operacin unin

nombre-cliente
(prestatario)
nombre-cliente
(impositor)

Nombre_ cliente
Abril
Aguirre
Fernndez
Gmez
Gonzlez
Lpez
Prez
Snchez
Santos
Valdivieso
Diferencia de conjuntos
La operacin diferencia de conjuntos, denotada por ,
permite buscar las tuplas que estn en una relacin pero
no en la otra. La expresin r s da como resultado una
relacin que contiene las tuplas que estn en r pero no en
s.

nombre-cliente
(Impositor)
nombre-cliente
(Prestatario)
Nombre_cliente
Abril
Gonzlez
Snchez
Impositor
Clientes con cuenta abierta pero sin prstamo concedido.
operacin producto cartesiano
La operacin producto cartesiano, denotada por un aspa
(), permite combinar informacin de cualesquiera dos
relaciones. El producto cartesiano de las relaciones r
1
y r
2

como r
1
r
2
.
Prestatario (r
1
)
Nombre_ cliente numero_ prstamo
Fernndez P-16
Gmez P-23
Lpez P-14
Prez P-17
Santos P-11
Aguirre P-23
Valdivieso P-17
nmero_prstamo Nombre_sucursal importe
P-11 Tlaxiaco 900
P-15 Tlaxiaco 1500
P-16 Putla 1300
P-17 Oaxaca 1000
P-23 Mxico 2000
P-93 Puebla 500
Prstamo (r
2
)
Nombre_ cliente
Prestatario.numero_
prstamo
Prestamo.nmero
_prstamo
Nombre_sucursal importe
Fernndez P-16 P-11 Tlaxiaco 900
Fernndez P-16 P-15 Tlaxiaco 1500
Fernndez P-16 P-16 Putla 1300
Fernndez P-16 P-17 Oaxaca 1000
Fernndez P-16 P-23 Mxico 2000
Fernndez P-16 P-93 Puebla 500

. . .
Valdivieso P-17 P-11 Tlaxiaco 900
Valdivieso P-17 P-15 Tlaxiaco 1500
Valdivieso P-17 P-16 Putla 1300
Valdivieso P-17 P-17 Oaxaca 1000
Valdivieso P-17 P-23 Mxico 2000
Valdivieso P-17 P-93 Puebla 500

nombre-sucursal = Tlaxiaco
(prestatario prestamo).
Nombre_ cliente
prestatario.numero_
prstamo
prestamo.nmero-
prstamo Nombre_sucursal importe
Fernndez P-16 P-11 Tlaxiaco 900
Fernndez P-16 P-15 Tlaxiaco 1500
Gmez P-15 P-11 Tlaxiaco 900
Gmez P-15 P-15 Tlaxiaco 1500
Lpez P-14 P-11 Tlaxiaco 900
Lpez P-14 P-15 Tlaxiaco 1500
Prez P-17 P-11 Tlaxiaco 900
Prez P-17 P-15 Tlaxiaco 1500
Santos P-11 P-11 Tlaxiaco 900
Santos P-11 P-15 Tlaxiaco 1500
Aguirre P-23 P-11 Tlaxiaco 900
Aguirre P-23 P-15 Tlaxiaco 1500
Valdivieso P-17 P-11 Tlaxiaco 900
Valdivieso P-17 P-15 Tlaxiaco 1500

nombre_cliente
(
prestatario.numero_prstamo = prstamo.nmero_prstamo
(
nombre_sucursal = Tlaxiaco
(prestatario prstamo))).

Nombre_ cliente
Gmez
Santos
Operacin interseccin ()

nombre-cliente
(prestatario)
nombre-cliente
(impositor)
Nombre_ cliente
Gmez
Lpez
Santos
operacin renombramiento
A diferencia de las relaciones de la base de datos, los
resultados de las expresiones de lgebra relacional no
tienen un nombre que se pueda utilizar para referirse a
ellas.
El operador renombramiento, denotado por la letra
griega rho minscula (), permite realizar esta tarea.

) Expresin (
x


cuenta.saldo
(
cuenta.saldo < d.saldo
(cuenta
d
(cuenta))).
nmero-cuenta nombre_sucursal saldo
C-101
Tlaxiaco
500
C-215
Tlaxiaco
700
C-102
Putla
400
C-305
Oaxaca
350
C-201
Mxico
900
C-222
Puebla
700
C-217
Tlaxiaco
750
Relacin cuenta
saldo
500
400
350
700
750

saldo
(cuenta)
cuenta.saldo
(
cuenta.saldo < d.saldo
(cuenta
d

(cuenta)))
saldo
900
empleado (nombre-empleado, calle, ciudad)
trabaja (nombre-empleado, nombre-empresa, sueldo)
empresa (nombre-empresa, ciudad)
jefe (nombre-empleado, nombre-jefe)
Escriba en cada una de ellas 10 registros y realice lo que a
continuacin se indica.
1.- mostrar los nombres de los empleados que trabajan para
una empresa.
2.- mostrar el nombre y lugar de residencia de todos los
empleados que trabajan para una empresa importante.
3.- mostrar el nombre, la calle y ciudad de residencia de todos
los empleados que trabajan para una empresa importante y
ganan ms de $ 200, 000. 00 anuales.
4.- mostrar el nombre de todos los empleados que viven en la
misma ciudad en la que se encuentran la empresa para la cual
trabajan.
5.- mostrar el nombre de todos los empleados que viven en la
misma ciudad y en la misma calle que sus jefes.
6.- mostrar el nombre de los empleados que ganan ms que
cualquier empleado de alguna empresa pequea.

1. Mostrar los nombres de los empleados que trabajan para
una empresa.

nombre_empleado
(
nombre_empresa=Coppel
(TRABAJA))

2. 2.- Mostrar el nombre y ciudad de residencia de todos los
empleados que trabajan para una empresa importante.

nombre_empleado, ciudad
(
EMPLEADO.nombre_empleado = TRABAJA.Nombre_empleado
(
nombre_empresa=Coppel
(EMPLEADO x TRABAJA)))

3. Mostrar el nombre, la calle y ciudad de residencia de
todos los empleados que trabajan para una empresa
importante y ganan ms de $ 200, 000. 00 anuales.

nombre_empleado, ciudad
(
EMPLEADO.nombre_empleado=TRABAJA. Nombre_empleado
(
nombre_empresa=Coppel sueldo>200000
(EMPLEADO x TRABAJA)))


4. Mostrar el nombre de todos los empleados que viven en la
misma ciudad en la que se encuentran la empresa para la
cual trabajan.

EMPLEADO.nombre_empleado
(
EMPLEADO. Ciudad=EMPRESA.ciudad


TRABAJA.nombre_empresa= EMPRESA.nombre_empresa
(EMPRESA X (
EMPLEADO.nombre_empleado, EMPLEADO.ciudad, TRABAJA.nombre_empresa
(
EMPLEADO.nombre_empleado=TRABAJA.nombre_empleado
(EMPLEADO x
TRABAJA)))))
5. Mostrar el nombre de todos los empleados que viven en la
misma ciudad y en la misma calle que sus jefes.

JEFE.nombre_empleado
(
EMPLEADO.nombe_empleado=JEFE.nombre_empleado
JEFE.nombre_jefe= DIRECCION_JEFE.nombre_jefe
(JEFE x (
EMPLEADO.nombre_empleado, DIRECCION_JEFE.nombre_jefe
(
EMPLEADO.calle=DIRECCION_JEFE.calle

EMPLEADO. Ciudad= DIRECCION_JEFE. ciudad

(EMPLEADO x TRABAJA)))))

6. Mostrar el nombre de los empleados que ganan ms que
cualquier empleado de alguna empresa pequea.



nombre_empleado
(
sueldo>142000
(TRABAJA))

Você também pode gostar