semana5 clase1
Post on 10-Oct-2015
7 views
Embed Size (px)
TRANSCRIPT
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 S