You are on page 1of 33

Algebra Relacional

Gestin y Modelacin de Datos

Algebra Relacional
Lenguaje de consulta Procedimental (nfasis en el como) Consta de: Operandos: relaciones Operadores: aplicados sobre relaciones Cerrada: el resultado es tambin una relacin Las operaciones se pueden componer

Algebra Relacional
Operaciones Fundamentales:
Seleccin, Proyeccin, Unin, Diferencia, Producto Cartesiano, Renombramiento

Operaciones qe se definen en trminos de las fundamentales:


Interseccin, Join Natural, Divisin, Asignacin

Seleccin ()
Selecciona las tuplas que satisfacen un predicado (condicin) condicin (relacin) Ejemplo:

cod_dpto = 1001(departamento)
cod_dpto nom_dpto ced_jefe cod_sucursal 1001 GERENCIA GENERAL 100101 2501

Seleccin ()
R2 = c (R1) R2 contiene todas las tuplas de R1 que satisfacen c

Los esquemas de R1 y R2 son iguales

c (r) = { t | t pertenece a r y c(t)}

Seleccin ()
La condicin esta formada por un trmino, o varios trminos unidos con operadores and (), or () Los trminos son de la forma: atributo op atributo atributo op constante Donde op puede ser: =, , <, >, ,

Seleccin ()
Es conmutativa c1 (c2 (c3 (R))) = c3 (c2 (c1 (R)))
Una secuencia se puede reemplazar por conjuncin de condiciones

c1 (c2 (c3 (R))) = c1c2c3 (R)

Ej.

R es: empleado, c1 es: salario > 1000000 c2 es: cod_dpto = 1001 c3 es: ced_jefe = 200101

Proyeccin ()
Permite seleccionar ciertas columnas Se eliminan las filas duplicadas (las relaciones son conjuntos)

att1, att2, attk (relacin)

Proyeccin ()
Ejemplo: nom_dpto, ced_jefe (departamento)
nom_dpto GERENCIA GENERAL GERENCIA FINANCIERA DIRECCION DE VENTAS DIRECCION DE MERCADEO REGIONAL INTERNACIONAL REGIONAL EEUU REGIONAL ESPAA REGIONAL ESPAA 2 200101 300101 ced_jefe 100101 100301 100201

Proyeccin ()
R2 = L (R1) L es una lista de atributos: att1, att2, attk R2 contiene todas los atributos att1, att2, attk de las tuplas de R1 R2 no tiene tuplas duplicadas

Proyeccin ()
NO es conmutativa L1 (L2 (R1)) = L1 (R1) cuando los atributos de L1 estan incluidos en L2

Proyeccin extendida: la lista de atributos puede contener expresiones

A+B C(R1)

Composicin de Operaciones
Ejemplo: nom_dpto, ced_jefe (cod_dpto = 1001(departamento))
nom_dpto GERENCIA GENERAL ced_jefe 100101

Ejercicio
Con base en el esquema de la base de datos de empleados, escriba en algebra relacional las siguientes consultas:
Nombres, apellidos y fecha de ingreso de los empleados del departamento 4001 Nombre y fecha de ingreso de los empleados con salario mayor a 1.000.000 Nombres, apellidos, y valor de la prima de cada empleado (la prima es medio salario)

Producto Cartesiano ()
Permite combinar la informacin de dos relaciones R1 R2 Ejemplo: pas x regin R3 = R1 R2 Cada tupla t1 de R1 se combina (concatena) con una tupla t2 de R2 El esquema de R3 se forma con los atributos de R1 y R2 Si A es un atributo de R1 y tambin de R2, usar R1.A o R2.A

Producto Cartesiano ()
Departamento
DID d1 d2 d3 d4 Nombre dpto1 dpto2 dpto3 dpto4 Ciudad Cali Bta Cali EID e1 e2 e3 e4 e5 e6 Nombres emp1 emp2 emp3 emp4 emp5 emp6

Empleado
Apellidos ap1 ap2 ap3 ap4 ap5 ap6 30 Sueldo 10 20 10 50 d2 d3 Departamento d1 d2

Departamento x Empleado
DID d1 d1 Nombre dpto1 dpto1 Ciudad Cali Cali EID e1 e2 Nombres emp1 emp2 Apellidos ap1 ap2 Sueldo 10 20 Departamento d1 d2

d1 dpto1 dpto2 dpto2 Cali Bta Bta e6 E1 e6 emp6 emp1 emp6 ap6 ap1 ap6 30 10 30 d1

d2 d2

d4

dpto4

e6

emp6

ap6

30

Renombramiento ()
Permite renombrar atributos y relaciones Para nombrar el resultado de un producto cartesiano de una relacin consigo misma (R1 x R1) s(a1,a2,..,ak)(E) s(E) (a1,a2,..,ak)(E) Asigna el nombre S a la relacin resultante de la expresin E, y los nombres a1, a2, , ak a sus atributos

Renombramiento ()
Ejemplo: empleado.ced_jefe= jefe.cedula (empleado x jefe (empleado))

ced_jefe = cedula_jefe (empleado x jefe(cedula_jefe,nom_jefe,ape_jefe) ( cedula, nombres, apellidos(empleado))

Unin (u)
Retorna la unin de los conjuntos de tuplas de dos relaciones R1 u R2 R1 y R2 deben ser compatibles:
Tener la misma aridad Dominios compatibles en las columnas correspondientes

Las tuplas duplicadas se eliminan

Unin (u)
Ejemplo: nom_region(region) u nom_pais(pais)

Diferencia (-)
Retorna la diferencia de los conjuntos de tuplas de dos relaciones (tuplas que estn en la primera relacin pero no en la segunda) R1 - R2 Las relaciones deben ser compatibles

Diferencia (-)
Ejemplo: salario < 2000000 (empleado) salario < 1000000 (empleado)

Ejercicios
Escriba una expresin en algebra relacional para las siguientes consultas:
Nombres de los empleados de la sucursal ubicada en la ciudad de bogot Las cedulas de los empleados que NO son jefes de otros empleados Los nombres de los empleados que ingresaron a la compaa en la misma fecha que Pedro Perez Restrepo Los nombres de los jefes de departamento y de los jefes de otros empleados El salario ms alto (el mximo) de los empleados Un full outer join entre empleado y departamento

Definicin Formal del Algebra Relacional

Definicin Formal del Algebra Relacional


Las expresiones fundamentales del Algebra Relacional son:
Una relacin de la base de datos Una relacin constante: listar tuplas entre llaves {(101, Centro), (102,Sur), (103, Este)}

Definicin Formal del Algebra Relacional


Precedencia de los operadores (de ms alta a ms baja):
1. 2. 3. 4. [ , , ] [ , [x] ] [ u, - ]

Arboles de Expresin
Hojas son operandos Nodos internos son operadores departamento.nom_dpto,
empleado.nombres, empleado.apellidos ( departamento.cod_dpto = empleado.cod_dpto
departamento.nom_dpto, empleado.nombres, empleado.apellidos

departamento.cod_dpto = empleado.cod_dpto

(departamento empleado))

departamento

empleado

Otras operaciones
No aaden potencia al algebra: se pueden definir en trminos de las operaciones fundamentales Facilitan la escritura de consultas habituales

Otras operaciones
Interseccin () r s = r (r s) Join Natural ( [x] ): join con una condicin de igualdad entre los atributos que aparecen en ambos esquemas sucursal [x] pas = sucursal.cod_pais = pais.cod_pais (sucursal x pas)

Otras operaciones
Theta-Join ([x]c): combina la seleccin (con condicin c) y el producto cartesiano r [x]c s = c (r x s) empleado [x]empleado.cod_dpto = departamento.cod_dpto departamento = empleado.cod_dpto = departamento.cod_dpto (empleado x departamento)

Otras operaciones
Divisin ():
Consultas que incluyen la expresin para todo r s = r s(r) r s((r s(r) s) r s,s (r)) Si r(a1,a2,..am,b1,b2,,bn) y s(b1,b2,,bn) r s(r) tiene el esquema: (a1,a2,..am)

Otras operaciones
rs

r s = { t | t r-s(r) para todo u s ( tu r ) } tu es la concatenacin de las tuplas t y u

Otras Operaciones
Asignacin
Crea nombres de relaciones temporales Ejemplo: R3 R1 x R2 R4 c (R3)

(Fundamentals of Database Systems, Elmasri y Navathe)

Ejercicios

Estudiante

Profesor

c) ?

d) ? b) ? a) ?

You might also like