Fundamentos de Bases de datos
El Algebra Relacional
Agenda
Algebra Relacional Operaciones Unarias
Operaciones de Conjuntos
Operaciones de Combinacin (Join)
Operacin de Divisin
Operaciones de Agregacin
Operaciones de Agrupacin
2
El Algebra Relacional
Lenguaje terico con operaciones que se aplican a una o mas relaciones, con el fin de definir otra relacin sin modificar las relaciones originales
La salida de una operacin puede usarse como entrada a otra operacin (CIERRE)
Anidar operaciones del AR, igual como se hace con las operaciones Aritmticas.
3
El Algebra Relacional
Existen diferentes representaciones de las operaciones del AR. Aqu usaremos una notacin simblica-> NO FORMAL
Tipos de Operaciones:
Unarias: Una sola relacin
Binarias: Dos relaciones
4
Operaciones Unarias
Seleccin (o restriccin)
Proyeccin
5 Connolly, 2005
Operaciones Unarias
Seleccin (o restriccin): Al aplicarse sobre una relacin R, define una nueva relacin que contiene nicamente aquellas tuplas de R que satisfacen la condicin especificada (predicado)
La denotaremos como: predicate (R)
6 Connolly, 2005
Operaciones Unarias
Ejemplo de Seleccin (o restriccin)
Enumerar todos los miembros del personal cuyo salario sea mayor a 10.000
Salary>10000(staff)
7 Connolly, 2005
Operaciones Unarias
Seleccin predicate (R)
Pueden generarse predicados mas complejos utilizando los operadores lgicos como AND, OR, NOT
8 Connolly, 2005
Operaciones Unarias
Proyeccin : Al aplicarse sobre una relacin R, define una nueva relacin que contiene un subconjunto vertical de R, extrayendo los atributos especificados y eliminando los duplicados
La denotaremos como: col1, . . . , coln(R)
9 Connolly, 2005
Operaciones Unarias Ejemplo de Proyeccin: Generar una lista de
salarios para todo el personal, mostrando los detalles referidos a los atributos: staffNo, fName, iName y salary
staffNo, fName, lName, salary(Staff)
10 Connolly, 2005
Operaciones Unarias Ejemplo de Proyeccin: Generar una lista de
salarios para todo el personal, mostrando los detalles referidos a los atributos: staffNo, fName, iName y salary
staffNo, fName, lName, salary(Staff)
11 Connolly, 2005
Agenda
Algebra Relacional Operaciones Unarias
Operaciones de Conjuntos
Operaciones de Combinacin (Join)
Operacin de Divisin
Operaciones de Agregacin
Operaciones de Agrupacin
12
Operaciones de Conjuntos
Unin
Diferencia
Interseccin
Producto Cartesiano
13 Connolly, 2005
Operaciones de Conjuntos
Unin: La unin de dos relaciones R y S define una nueva relacin que contiene todas las tuplas tanto de R como de S, eliminndose las tuplas duplicadas. R y S deben ser compatibles con respecto a la unin.
La denotaremos como R S Si el Nmero de tuplas de R = i y el Nmero de tuplas de
S = j Entonces el Nmero de tuplas de R S
Operaciones de Conjuntos
Ejemplo de Unin: Enumerar todas las ciudades donde exista una sucursal o un inmueble para arrendar
15 Connolly, 2005
16
Operaciones de Conjuntos
Ejemplo de Unin: Enumerar todas las ciudades donde exista una sucursal o un inmueble para arrendar
city(Branch) city(PropertyForRent)
17 Connolly, 2005
Operaciones de Conjuntos
Diferencia: La diferencia de dos relaciones R y S define una nueva relacin que contiene todas las tuplas que se encuentran en R pero que no estn en S. R y S deben ser compatibles con respecto a la unin.
La denotaremos como R - S
18 Connolly, 2005
Operaciones de Conjuntos
Ejemplo de Diferencia: Enumerar todas las ciudades donde exista una sucursal pero no haya inmuebles para arrendar
19 Connolly, 2005
20
Operaciones de Conjuntos
Ejemplo de Diferencia: Enumerar todas las ciudades donde exista una sucursal pero no haya inmuebles para arrendar
city(Branch) -city(PropertyForRent)
21 Connolly, 2005
Operaciones de Conjuntos
Interseccin: La interseccin de dos relaciones R y S define una nueva relacin que contiene todas las tuplas que se encuentran tanto en R como en S. R y S deben ser compatibles con respecto a la unin.
La denotaremos como R S
Se puede expresar como R S = R (R S)
22 Connolly, 2005
Operaciones de Conjuntos
Ejemplo de Interseccin: Enumerar todas las ciudades donde exista una sucursal y al menos un inmueble para alquilar
23 Connolly, 2005
24
Operaciones de Conjuntos
Ejemplo de Interseccin: Enumerar todas las ciudades donde exista una sucursal y al menos un inmueble para alquilar
city(Branch) city(PropertyForRent)
25 Connolly, 2005
Operaciones de Conjuntos Producto Cartesiano: El producto cartesiano de
dos relaciones R y S define una nueva relacin que es la concatenacin de cada tupla de la relacin R con cada tupla de la relacin S
La denotaremos como R X S
Si R tienen i tuplas y n atributos y S tiene j tuplas y m atributos
R X S tendr (i*j) tuplas con (n+m) atributos
Se antepone el nombre de la relacin a cada atributo para identificar de que relacin viene
26 Connolly, 2005
Operaciones de Conjuntos
Ejemplo de producto cartesiano: Enumerar los nombres y comentarios de todos los clientes que hayan visto una propiedad para alquilar
27 Connolly, 2005
28
Operaciones de Conjuntos Ejemplo de producto cartesiano: Enumerar los
nombres y comentarios de todos los clientes que hayan visto una propiedad para alquilar
(clientNo, fName, lName(Client)) X (clientNo, propertyNo, comment (Viewing))
29 Connolly, 2005
Operaciones de Conjuntos Ejemplo de producto cartesiano: Enumerar los
nombres y comentarios de todo los clientes que hayan visto una propiedad para alquilar
(clientNo, fName, lName(Client)) (clientNo, propertyNo, comment(Viewing))
El producto cartesiano y la seleccin pueden reducirse a una sola operacin
30 Connolly, 2005
Client.clientNo = Viewing.clientNo(
)
Agenda
Algebra Relacional Operaciones Unarias
Operaciones de Conjuntos
Operaciones de Combinacin (Join)
Operacin de Divisin
Operaciones de Agregacin
Operaciones de Agrupacin
31
Operaciones de Combinacin (Join)
Combinacin theta
Combinacin Natural
Combinacin Externa
Semicombinacin
32 Connolly, 2005
Operaciones de Combinacin (Join) Combinacin Theta: La combinacin Theta de R
y S define una nueva relacin que contiene todas las tuplas del producto cartesiano de R y S que satisfacen el predicado F. El predicado F tiene la forma R.ai S.bi donde puede ser uno de los operandos de comparacin (, , =, )
La denotaremos como R F S Grado= GradoR + GradoS (atributos que actual
como operandos) Si F es el operando = se denomina
Equicombinacin
33 Connolly, 2005
Ejemplo de Combinacin Theta : Enumerar los nombres y comentarios de todos los clientes que hayan visto una propiedad para alquilar
(clientNo, fName, lName(Client)) Client.clientNo = Viewing.clientNo (clientNo, propertyNo, comment(Viewing))
34 Connolly, 2005
Operaciones de Combinacin (Join)
Operaciones de Combinacin (Join) Combinacin Natural: La combinacin
Natural es una Equicombinacin entre dos relaciones R y S sobre todos los atributos comunes. Del resultado se elimina una de las apariciones de cada atributo comn
La denotaremos como R S
Grado= (GradoR + GradoS) (# de atributos comunes)
35 Connolly, 2005
Ejemplo de Combinacin Natural : Enumerar los nombres y comentarios de todos los clientes que hayan visto una propiedad para alquilar
(clientNo, fName, lName(Client))
(clientNo, propertyNo, comment(Viewing))
36 Connolly, 2005
Operaciones de Combinacin (Join)
Operaciones de Combinacin (Join)
Combinacin Externa Izquierda (Outer Join): La combinacin Externa Izquierda es una combinacin entre dos relaciones R y S, que genera una nueva relacin en la que se incluyen todas las filas de R con sus atributos correspondientes en S. Los valores de los atributos que no tengan correspondiente se llenan con valor Nulo
La denotaremos como R S
37 Connolly, 2005
Ejemplo de Combinacin Externa Izquierda : Generar un informe sobre las visitas a los inmuebles
38 Connolly, 2005
Operaciones de Combinacin (Join)
Ejemplo de Combinacin Externa Izquierda : Generar un informe sobre las visitas a los inmuebles
propertyNo, street, city(PropertyForRent) Viewing
39 Connolly, 2005
Operaciones de Combinacin (Join)
Operaciones de Combinacin (Join)
40 Connolly, 2005
Externa Natural
Operaciones de Combinacin (Join)
Semicombinacin: La operacin de semicombinacin entre R y S define una nueva relacin que contiene las tuplas de R que participan en la combinacin R y S
La denotaremos como R S
41 Connolly, 2005
Ejemplo de Semicombinacin: Enumerar todos los detalles de los empleados que trabajan en la sucursal de Glasgow
42 Connolly, 2005
Operaciones de Combinacin (Join)
Ejemplo de Semicombinacin: enumerar todos los detalles de los empleados que trabajan en la sucursal de Glasgow
Staff Staff.branchNo=Branch.branchNo(city=Glasgow(Branch))
43 Connolly, 2005
Operaciones de Combinacin (Join)
Agenda
Algebra Relacional Operaciones Unarias
Operaciones de Conjuntos
Operaciones de Combinacin (Join)
Operacin de Divisin
Operaciones de Agregacin
Operaciones de Agrupacin
44
Operacin de Divisin
Divisin: La operacin de Divisin entre R y S define una nueva relacin que contiene las tuplas de R que se corresponden con la combinacin de las tuplas de S
La denotaremos como R S
A ={1,2,3} B = {1, 2} C = A B = {3}
45 Connolly, 2005
Ejemplo de Divisin: enumerar todos Clientes que hayan visitado todos los inmuebles de tres habitaciones
46 Connolly, 2005
Operacin de Divisin
Agenda
Algebra Relacional Operaciones Unarias
Operaciones de Conjuntos
Operaciones de Combinacin (Join)
Operacin de Divisin
Operaciones de Agregacin
Operaciones de Agrupacin
47
Operaciones de Agregacin
Agregacin: Aplica la lista de operaciones AL, a la relacin R para definir una nueva relacin sobre la lista de agregacin. AL contiene una o mas parejas: (,)
La denotaremos como AL(R) Las funciones de agregacin son: COUNT: Cuenta SUM: Suma AVG: Promedio MIN: Valor mnimo MAX: Valor mximo
48 Connolly, 2005
Ejemplo de Agregacin: Cuantos inmuebles tienen un valor de alquiler superior a 350 por mes?
R(myCount) COUNT propertyNo (rent > 350 (PropertyForRent))
49 Connolly, 2005
Operaciones de Agregacin
Ejemplo de Agregacin: Encontrar el valor mnimo, valor mximo y valor promedio del salario de los empleados
R(myMin, myMax, myAverage) min salary, max
salary, avg salary,(PropertyForRent)
50 Connolly, 2005
Operaciones de Agregacin
Agenda
Algebra Relacional Operaciones Unarias
Operaciones de Conjuntos
Operaciones de Combinacin (Join)
Operacin de Divisin
Operaciones de Agregacin
Operaciones de Agrupacin
51
Operaciones de Agrupacin
Agrupacin: Aplica sobre las tuplas de la relacin R, segn los atributos de agrupacin GA, y luego aplica la lista de funciones de agregacin AL; para definir una nueva relacin. AL contiene una o mas parejas: (,). La relacin resultante contiene los atributos de agrupacin GA, junto con los resultados de las funciones de agregacin
La denotaremos como GAAL(R)
52 Connolly, 2005
Ejemplo de Agregacin: Calcular el nmero de empleados que trabajan en cada sucursal y el valor de la suma de sus salarios
R(branchNo, myCount, mySum) branchNo COUNT staffNo, SUM salary (Staff)
53 Connolly, 2005
Operaciones de Agregacin
Agenda
Algebra Relacional Operaciones Unarias
Operaciones de Conjuntos
Operaciones de Combinacin (Join)
Operacin de Divisin
Operaciones de Agregacin
Operaciones de Agrupacin
54
GRACIAS
55