Algebra y calculo relacional

46
Documento basado en las presentaciones del libro Sistemas de Bases de Datos de Thomas Connolly y Carolyn E. Begg. 1

Transcript of Algebra y calculo relacional

Page 1: Algebra y calculo relacional

Documento basado en las presentaciones del libro Sistemas de Bases de Datos de Thomas Connolly y Carolyn E. Begg.

1

Page 2: Algebra y calculo relacional

Significado del termino relacional completo.

Como es la forma de las consultas en el algebrarelacional.

Como es la forma de consultas in tuplas en elcalculo relacional.

Como es la forma de consultas en el dominiode el calculo relacional.

Categorías del DML relacional.

2

Page 3: Algebra y calculo relacional

El algebra y el calculo relacional sonlenguajes formales asociados con el modelorelacional.

Informalmente, el algebra relacional es unlenguaje procedimental (alto nivel) y elcalculo relacional es un lenguaje noprocedimental.

Ambos lenguajes son equivalentes.

Un lenguaje que produce una relación quepuede ser derivada usando calculo relacionales relacionalmente completa.

3

Page 4: Algebra y calculo relacional

Las operaciones del algebra relacionaltrabajan sobre una o mas relaciones paradefinir otra relación sin cambiar las relacionesoriginales.

Ambos, operadores y resultados sonrelaciones, así la salida desde una operaciónpuede llegar a ser la entrada para otraoperación.

Se permite que expresiones sean anidadas.Esta propiedad es llamada Clausula.

4

Page 5: Algebra y calculo relacional

Existen 5 operaciones básicas del algebrarelacional: Selección, Proyección, Producto cartesiano, Unión, Diferencia de Conjuntos.

Estas permiten la recuperación de datos.

Operaciones como Join (unión), Intersección,y and División, pueden ser expresadas entérminos de las 5 operaciones básicas.

5

Page 6: Algebra y calculo relacional

6

Page 7: Algebra y calculo relacional

7

Page 8: Algebra y calculo relacional

predicado (R)

Trabaja con una simple relación R y define larelación que contiene solamente aquellas tuplas(filas) de R que satisfacen la condiciónespecificada (predicado).

8

Page 9: Algebra y calculo relacional

Listar todo el Staff con salario mas grandeque $10,000.

salary > 10000 (Staff)

9

Page 10: Algebra y calculo relacional

col1, . . . , coln(R)

Trabaja con una simple relación R y define unarelación que contiene un subconjunto vertical(atributos) de R, extractando los valores losatributos especificados y eliminando losduplicados.

10

Page 11: Algebra y calculo relacional

Producir la lista de salarios para todo el Staffmostrando solamente staffNo, fName,lName, y detalles de salary.

staffNo, fName, lName, salary(Staff)

11

Page 12: Algebra y calculo relacional

R S Unión de dos relaciones R y S definen una relación

que contiene todas las tuplas de R o S o ambas, lastuplas duplicadas serán eliminadas.

R y S deben ser compatibles para la Unión.

Si R y S tiene i y j tuplas respectivamente, launión es obtenida por la concatenación deellas en una relación con un máximo de (I + J)tuplas.

12

Page 13: Algebra y calculo relacional

Liste todas las ciudades donde hay ni unasucursal (Branch) o una propiedad en alquiler.

city(Branch) city(PropertyForRent)

13

Page 14: Algebra y calculo relacional

R – S

Define una relación de las tuplas que están en larelación R pero que no están en S

R y S deben ser compatibles para la diferencia.

14

Page 15: Algebra y calculo relacional

Listar todas las ciudades donde están lassucursales (Branch) pero no están el laspropiedades para la renta (PropertyForRent).

city(Branch) –city(PropertyForRent)

15

Page 16: Algebra y calculo relacional

R S

Define una relación que consistente delconjunto de todas las tuplas que están enambos conjuntos R y S.

R y S deben ser compatibles para laintersección.

R S = R – (R – S)

16

Page 17: Algebra y calculo relacional

Listar todas las ciudades donde hay unasucursal (Branch) y por lo menos unapropiedad para renta.

city(Branch) city(PropertyForRent)

17

Page 18: Algebra y calculo relacional

R X S

Define una relación que es la concatenación detodas las tuplas de la relación R con las tuplas dela relación S.

18

Page 19: Algebra y calculo relacional

Listar los nombre y comentarios de todos los clientesquienes han visto una propiedad para la renta.

(clientNo, fName, lName(Client)) X (clientNo, propertyNo, comment

(Viewing))

19

Page 20: Algebra y calculo relacional

Use selección para extraer aquellas tuplas dondeClient.clientNo = Viewing.clientNo.

Client.clientNo = Viewing.clientNo((clientNo, fName, lName(Client)) (clientNo, propertyNo, comment(Viewing)))

Producto Cartesiano y la Selección pueden ser reducidos a una simple operaciónllamada Join.

20

Page 21: Algebra y calculo relacional

Join es derivado del producto cartesiano.

Son las operaciones más difíciles deimplementar eficientemente en una RDBMS.

21

Page 22: Algebra y calculo relacional

Forma de la operación joinTheta join

Equijoin (un particular tipo de Theta join)

Join Natural

Outer join

Semijoin

22

Page 23: Algebra y calculo relacional

R FS

Define una relación que consiste de tuplas quesatisfacen el predicado F del productocartesiano de R y S.

El predicado de F es de la forma R.ai S.bi

donde puede ser uno de los operadores decomparación (<, , >, , =, ).

23

Page 24: Algebra y calculo relacional

Theta puede ser re-escrita de usando selecciónbásica y producto cartesiano.

R FS = F(R S)

El grado de un Theta join es la suma de grados delos operando relacionales de R y S. Si el predicadode F contiene solo igualdad (=), el termino usado esEquijoin.

24

Page 25: Algebra y calculo relacional

Listar los nombres y comentarios de todos losclientes quienes han visto una propiedad pararentar.

(clientNo, fName, lName(Client)) Client.clientNo =

Viewing.clientNo (clientNo, propertyNo, comment(Viewing))

25

Page 26: Algebra y calculo relacional

R S

Un Equijoin de dos relaciones R y S sobre todos losatributos comunes x. Una ocurrencia de cadaatributo común es eliminado de la relaciónresultado.

26

Page 27: Algebra y calculo relacional

Listar los nombres y comentarios de todos los

clientes que han visto una propiedad para rentar.

(clientNo, fName, lName(Client))

(clientNo, propertyNo, comment(Viewing))

27

Page 28: Algebra y calculo relacional

Para mostrar filas en el resultado que no tienenvalores de emparejamiento (match) en lascolumnas del join, use Outer join.

R S (Izquierdo) outer join es un join en el cual tuplas de R

que no tienen valores para emparejar (match) concolumnas comunes de S y estas son incluidas en elresultado.

28

Page 29: Algebra y calculo relacional

Producir un reporte de estado las propiedadesvisitadas.

propertyNo, street, city(PropertyForRent) Viewing

29

Page 30: Algebra y calculo relacional

R F S

Define una relación que contiene tuplas de R queparticipan en el join de R con S.

Un Semijoin puede ser escrito como una proyección y unJoin:

R F S =A(R F S)

30

Page 31: Algebra y calculo relacional

Liste los detalles completos de todo el staffquienes trabajan en una sucursal (branch) enGlasgow.

Staff Staff.branchNo=Branch.branchNo(city=‘Glasgow’(Branch))

31

Page 32: Algebra y calculo relacional

R S Define una relación sobre los atributos C que consisten de

un conjunto de tuplas de R que corresponder con lacombinación de todas la tupla en S.

Expresado usando operaciones básicas:T1 C(R)

T2 C((S X T1) – R)

TT1 – T2

32

Page 33: Algebra y calculo relacional

Identificar todos los cliente quienes han vistotodas las propiedades de tres alcobas.

(clientNo, propertyNo(Viewing))

(propertyNo(rooms = 3 (PropertyForRent)))

33

Page 34: Algebra y calculo relacional

AL(R)

Aplica la lista de funciones de agregación, AL, a larelación R para definir una relación sobre la listade agregación.

AL contiene uno o más pares(<función_agregada>, <atributos>).

Las principales funciones agregadas son:COUNT, SUM, AVG, MIN y MAX.

34

Page 35: Algebra y calculo relacional

Cuantas propiedades tienen un valor de renta de más de350 mes?

R(myCount) COUNT propertyNo (σrent > 350

(PropertyForRent))

35

Page 36: Algebra y calculo relacional

GAAL(R) Agrupación de tuplas de R por los atributos

definidos, GA, y después, aplica a la lista unafunción agregada, AL, para definir una nuevarelación

AL contiene uno o más pares(<función_agregada>, <atributos>).

La relación resultante contiene los atributos queagrupan, GA, junto con resultados de cada uno delas funciones agregadas.

36

Page 37: Algebra y calculo relacional

Encontrar el número de Personas (Staff) que trabajan encada sucursal (Branch) y la sumas de sus salarios.

R(branchNo, myCount, mySum)

branchNo COUNT staffNo, SUM salary (Staff)

37

Page 38: Algebra y calculo relacional

La operación de asignación () suministra una formaconveniente de expresar consultas complejas.

Asignación será hecha sobre variables de relacióntemporales.

Ejemplo: r s as

temp1 R-S (r )

temp2 R-S ((temp1 x s ) – R-S,S (r ))

result = temp1 – temp2

El resultado a las derecha es asignado a la variable de

relación a la izquierda de.

Puede usarse variables en expresiones subsecuentes.

Page 39: Algebra y calculo relacional

El contenido de la base de datos sepuede realizar usando las siguientesoperaciones:

Borrado (Delete)

Inserción (Insert)

Actualización (Update)

Todas las operaciones son expresadasusando el operador de asignación.

Page 40: Algebra y calculo relacional

Una petición de borrado es expresadasimilarmente a una consulta, excepto que en vezde mostrar tuplas al usuario, la tuplas sonremovidas.

Se pueden borrar solamente todas las tuplas; nose pueden borrar solo valores de atributos enparticular.

Es expresado por:R R – E

donde R es una relación y E es consulta delalgebra relacional.

Page 41: Algebra y calculo relacional

Borrar todas las tuplas de la sucursal(Branch) donde la ciudad sea London.

Branch Branch –city = “London” (Branch)

Page 42: Algebra y calculo relacional

Para insertar datos en una relación se debetener en cuenta: Especificar la tupla a ser insertada

Escribir una consulta cuyo resultado es elconjunto de tuplas a ser insertado.

En el algebra relacional se expresa así:R R E

donde R es la relación y E es la expresiónalgebraica de la relación a insertar.

Page 43: Algebra y calculo relacional

Insertar información el la relación Cliente la siguienteinformación el cliente CR99 que es Jenny López, teléfono123456 y prefType = House y el máximo de renta a pagar 600.

Client Client {(“CR99”, “Jenny”, ”López”, “123456”, “House”, 600)}

Page 44: Algebra y calculo relacional

Un mecanismo para cambiar valores de unatupla sin cambiar todos los valores en la tupla

Usa el operador de proyección para hacer latarea

Cada Fi es: Un atributo de R que no sea modificado,

ó, Si el atributo a ser actualizado es Fi una expresión

puede ser usada.

)(,,,, 21RR

lFFF

Page 45: Algebra y calculo relacional

Incrementar al valor máximo a pagar por renta de todos los cliente en el 4.5 porciento.

Client clientNo, fName, lName, telNo, prefType, * maxRent *4.5 (Client)

Page 46: Algebra y calculo relacional

Connolly, Tomas M,. Begg, Carolyn E. “Sistemasde bases de datos: Un enfoque práctico paradiseño, implementación y gestión”. 4ª Edición.Pearson – Addison Wesley. 2005. Capitulo 4.

KORTH, HENRY F., SILBERSCHATZ, ABRAHAM,“Fundamentos de bases de datos” 2da. Edición,McGraw-Hill/Interamericana de España, España,1993

46