Semana5 Clase1

download Semana5 Clase1

of 55

Transcript of Semana5 Clase1

  • 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