La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

John Freddy Duitama M. Universidad de Antioquia. El Cálculo Relacional. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama.

Presentaciones similares


Presentación del tema: "John Freddy Duitama M. Universidad de Antioquia. El Cálculo Relacional. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama."— Transcripción de la presentación:

1 John Freddy Duitama M. Universidad de Antioquia. El Cálculo Relacional. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.

2 John Freddy Duitama M. Universidad de Antioquia. Lenguaje formal para manipular y definir relaciones. Lenguaje no procedimental. Las fórmulas son expresiones que denotan relaciones. Existen cálculo relacional de tuplas y el cálculo relacional de dominios. Cálculo Relacional de tuplas. Una forma de la lógica en donde las variables son tuplas. {t / P(t)} el conjunto de tuplas tales que el predicado P es cierto. Cálculo Relacional.

3 John Freddy Duitama M. Universidad de Antioquia. Una consulta del cálculo relacional de tuplas tiene la forma { t / P(t) } t  R denota que la tupla t está en la relación R. t [A] denota el valor del atributo A en la tupla t. {t / P(t)} el conjunto de tuplas tales que el predicado P es cierto. Ejemplo: { t /  t  R ( Q ( t ) ) } Existe una tupla t en R tal que el predicado Q(t) es verdadero. {s/ s  Empleados  s[cargo]=“Auxiliar” } Definiciones Básicas

4 John Freddy Duitama M. Universidad de Antioquia. Átomos para las fórmulas bien formadas. (f.b.f) 1.t  R, donde t una variable tupla y R una relación. 2.2.s [A]   t [B]; s, t = variables tupla. A,B = atributos de las relaciones sobre las que defino las variables s, t.   {, =, !=, = } y los dominios de A y B pueden compararse con estos operadores. 3. s[A]  c. Con c constante en el dominio del atributo A.

5 John Freddy Duitama M. Universidad de Antioquia. Reglas de construcción para las fórmulas bien formadas. Un átomo es una f.b.f. Si P1 es una f.b.f. entonces  P1 y (P1) son f.b.f. Si P1 y P2 son f.b.f entonces: P1  P2, P1  P2, P1  P2 son f.b.f. Si P1(a) es una f.b.f. que contiene a una variable libre s entonces:  s ( P1(s) ) y  s (P1(s)) son f.b.f. Expresiones equivalentes. P1  P2  (  P1  P2)  s (P1(s))   s (  P1(s) )  P1  P2 P1 ==> P2  ( P  Q )  P  Q  ( P  Q )  P   Q

6 John Freddy Duitama M. Universidad de Antioquia. El cálculo de tuplas como lenguaje de consulta. Sean las relaciones: Cliente(nombre-cliente,dirección,ciudad). Sucursal(nombre-sucursal,activo,ciudad) Préstamo(sucursal, préstamo,nombre-cliente,valor). Depósito(sucursal,cuenta,nombre-cliente,saldo) Cada atributo asociado a un dominio. 1. Encontrar el nombre de la sucursal, el préstamo, el nombre del cliente y el valor para los préstamos mayores en valor a 1200. { t / t  préstamo  t [valor] > 1200 } {t[sucursal, préstamo, nombre-cliente, valor] / t  préstamo  t [valor] > 1200 }

7 John Freddy Duitama M. Universidad de Antioquia. El cálculo de tuplas como lenguaje de consulta. Sean las relaciones: Cliente(nombre-cliente,dirección,ciudad). Sucursal(nombre-sucursal,activo,ciudad) Préstamo(sucursal, préstamo,nombre-cliente,valor). Depósito(sucursal,cuenta,nombre-cliente,saldo) Cada atributo asociado a un dominio. 2. Encuentre el nombre de los clientes con préstamos mayores a 1200. { t /  s  préstamo (  s[valor] > 1200  s[nombre-cliente] = t[nombre-cliente] ) } Notación alternativa. { t[nombre-cliente] /  s  préstamo (  s[valor] > 1200  s[nombre-cliente] = t[nombre-cliente] ) }

8 John Freddy Duitama M. Universidad de Antioquia. El cálculo de tuplas como lenguaje de consulta. Sean las relaciones: Cliente(nombre-cliente,dirección,ciudad). Sucursal(nombre-sucursal,activo,ciudad) Préstamo(sucursal, préstamo,nombre-cliente,valor). Depósito(sucursal,cuenta,nombre-cliente,saldo) 3. Hallar el nombre de los clientes que tienen préstamos, depósitos o ambas cosas en la sucursal de la América. {t /  s  préstamo (  s[nombre-cliente]= t[nombre-cliente]  s[sucursal] = “La América” )   u  depósito ( t[nombre-cliente] = u[nombre-cliente]  u[sucursal] = “La América” ) }

9 John Freddy Duitama M. Universidad de Antioquia. El cálculo de tuplas como lenguaje de consulta. Sean las relaciones: Cliente(nombre-cliente,dirección,ciudad). Sucursal(nombre-sucursal,activo,ciudad) Préstamo(sucursal, préstamo,nombre-cliente,valor). Depósito(sucursal,cuenta,nombre-cliente,saldo) 4. Encontrar el nombre de los clientes que tienen tanto un depósito como un préstamo en la sucursal de la América. {t /  s  préstamo ( s[nombre-cliente] = t[nombre-cliente]  s[sucursal] = “La América” )   u  depósito ( t[nombre-cliente] = u[nombre-cliente]  u[sucursal] = La América ) }

10 John Freddy Duitama M. Universidad de Antioquia. El cálculo de tuplas como lenguaje de consulta. Sean las relaciones: Cliente(nombre-cliente,dirección,ciudad). Sucursal(nombre-sucursal,activo,ciudad) Préstamo(sucursal, préstamo,nombre-cliente,valor). Depósito(sucursal,cuenta,nombre-cliente,saldo) 5. Encontrar el nombre de los clientes con préstamos en la sucursal de Belén. Informar ciudad de residencia del cliente. {t /  s  préstamo ( s[nombre-cliente]=t[nombre-cliente]  s[sucursal] = “Belen”  u  cliente ( u[nombre-cliente] = s[nombre-cliente]  u[ciudad] = t[ciudad] ) ) } Esquema nueva relación: t [nombre-cliente, ciudad]

11 John Freddy Duitama M. Universidad de Antioquia. El cálculo de tuplas como lenguaje de consulta. Sean las relaciones: Cliente(nombre-cliente,dirección,ciudad). Sucursal(nombre-sucursal,activo,ciudad) Préstamo(sucursal, préstamo,nombre-cliente,valor). Depósito(sucursal,cuenta,nombre-cliente,saldo) 6. Encontrar el nombre de todos los clientes que tiene depósitos en Belén pero que no tienen préstamos en esta sucursal. {t /  s  depósito ( s[nombre-cliente]=t[nombre-cliente]  s[sucursal] = “Belén” )   u  prestamo ( u[nombre-cliente]=t[nombre-cliente]  u[sucursal] = “Belén” ) }

12 John Freddy Duitama M. Universidad de Antioquia. El cálculo de tuplas como lenguaje de consulta. Sean las relaciones: Cliente(nombre-cliente,dirección,ciudad). Sucursal(nombre-sucursal,activo,ciudad) Préstamo(sucursal, préstamo,nombre-cliente,valor). Depósito(sucursal,cuenta,nombre-cliente,saldo) 7. Encuentre el nombre de todos los clientes que tienen préstamos en una sucursal ubicada en la ciudad donde residen. {t /  s  préstamo ( s[nombre-cliente] = t[nombre-cliente]   u  cliente ( s[nombre-cliente] = u[nombre-cliente]   z  sucursal  z[ciudad] = u[ciudad]  z[nombre-sucursal] = s[sucursal] ) ) ) }

13 John Freddy Duitama M. Universidad de Antioquia. El cálculo de tuplas como lenguaje de consulta. Sean las relaciones: Préstamo(sucursal, préstamo,nombre-cliente,valor). Cliente(nombre-cliente,dirección,ciudad). Depósito(sucursal,cuenta,nombre-cliente,saldo) Sucursal(nombre-sucursal,activo,ciudad) 8. Encontrar los clientes que tienen depositos en todas las sucursales ubicadas en Medellín. { t /  u  sucursal ( u[ciudad] = “Medellín”   s  depósito ( s[nombre-cliente] = t[nombre-cliente]  u[nombre-sucursal] = s[nombre-sucursal] ) ) }

14 John Freddy Duitama M. Universidad de Antioquia. El cálculo de tuplas como lenguaje de consulta. Sean las relaciones: Préstamo(sucursal, préstamo,nombre-cliente,valor). Cliente(nombre-cliente,dirección,ciudad). Depósito(sucursal,cuenta,nombre-cliente,saldo) Sucursal(nombre-sucursal,activo,ciudad) 8-a. Encontrar los clientes que tienen depositos en todas las sucursales ubicadas en Medellín. { t /  u  sucursal ( u[ciudad] = Medellín   s  depósito ( s[nombre-cliente] = t[nombre-cliente]  u[nombre-sucursal] = s[nombre-sucursal] ) }

15 John Freddy Duitama M. Universidad de Antioquia. Dominio de una fórmula relacional de tuplas P. dom(P)= es el conjunto de todos los valores a los que P hace referencia Los valores mencionados en P. Los valores que son explícitos en las relaciones que aparecen en P dom( t  préstamo  t[saldo] > 1200 ) = El conjunto que contenga a 1200 El conjunto de todos los valores que aparecen en préstamo. Una expresión es segura si todos los valores que aparecen en el resultado son valores del dom(P). Que pasa con (dom(t  préstamo  t[saldo] > 1200 ) ? En este cálculo solo usaremos expresiones seguras.

16 John Freddy Duitama M. Universidad de Antioquia. Bibiografía. Jeffrey D. Ullman. Principles of Database and Knowledge-Base System. Volúmenes I. Computer Science Press. 1988. Capítulos 2 y 3. Jeffrey D. Ullman. and Jennifer Widom. A First Course in Database Systems. Prentice Hall. 1997. Capítulos. 3 y 4. Abraham Silberschatz, et. Al. Fundamentos de Bases de Datos. Quinta edición. 2006.


Descargar ppt "John Freddy Duitama M. Universidad de Antioquia. El Cálculo Relacional. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama."

Presentaciones similares


Anuncios Google