Вы находитесь на странице: 1из 38

Algebra Relacional

Algebra Relacional

Algebra relacional
Conjunto de operaciones usadas para manipular relaciones. Estas operaciones toman relaciones como operandos y regresan relaciones que a su vez pueden ser manipuladas. MR es cerrado. Los operadores: Uni on, diferencia, intersecci on. Con el signicado usual en conjuntos, aplicado a relaciones. Selecci on. Selecciona ciertas tuplas de una relaci on. Proyecci on. Selecciona ciertas columnas de una relaci on. Productos y joins. Composici on de relaciones. Renombrado de relaciones y atributos.

Algebra Relacional

Selecci on
Notaci on: predicado (R ) Selecciona tuplas que satisfacen un predicado dado. Predicado: Operadores: (>, <, >=, <=, =, <>, , , ) Operandos: atributos o constantes. A B C D a a 1 7 Relaci on r: a b 5 7 b b 12 3 b b 23 10 A=B D >5 (R ) A a b B a b C 1 23 D 7 10

Algebra Relacional

Proyecci on
Notaci on: lista
de atributos (R )

Es una tabla obtenida de R al eliminar los atributos no-especicados. En la tabla resultante aparecen los atributos en el mismo orden que en la lista. Los renglones duplicados A B C a a 1 Relaci on r: a b 5 b b 12 b b 23 A a b b D 7 3 10
Algebra Relacional

se eliminan. D 7 7 3 10

A,D (R )

Uni on
Notaci on: R S Es la tabla que contiene las tuplas de la primera relaci on adem as de las tuplas de la segunda relaci on. Al adaptar los operadores de conjuntos a relaciones se debe asegurar que exista compatibilidad entre ellas.
Tienen el mismo grado. Los atributos tienen el mismo nombre. El dominio del atributo-i de R es el mismo que el dominio del atributo-i en S , i

A a Relaci on R: a b

B A 1 S: a 2 b 1

B 2 3

A a R S a b b

B 1 2 1 3

Algebra Relacional

Diferencia
Notaci on: R S Crea una tabla con las tuplas que est an en la relaci on R pero no en S. Operaci on v alida A a Relaci on R: a b A R S a b B 1 1 entre relaciones compatibles. B A B 1 S: a 2 2 b 3 1

Algebra Relacional

Producto Cartesiano
Notaci on: R S Permite combinar informaci on de cualquier par de relaciones. R S = {tq |t r and q s }. Si R y S tienen atributos en com un es necesario renombrarlos. Para evitar ambig uedades se precede el nombre del atributo con el nombre de la relaci on.
A Relaci on R: 1 3 A 1 1 1 3 3 3 R.B 2 2 2 4 4 4 B 2 S: 4 S.B 2 4 9 2 4 9 B C D 2 5 6 4 7 8 9 10 11 C D 5 6 7 8 10 11 5 6 7 8 10 11
Algebra Relacional

R S

Join natural
Notaci on: R S

R (X1 , X2 , ...Xm , Y1 , Y2 , ..., Yn ) S (Y1 , Y2 , ..., Yn , Z1 , Z2 , ..., Zp ) Relaci on con atributos X, Y, Z y poblado por el conjunto de tuplas que tienen igual valor de Y en R y en S. R S (R .Y1 =S .Y1 R .Y2 =S .Y2 ...R .Yn =S .Yn (R S )) A R 1 3 B C 2 5 S 4 7 9 10 Si las relaciones R y S no entonces A B A B B 2 4 D A B C D 6 = 1 2 5 6 8 3 4 7 8 11 tienen nombres de atributos en com un

Algebra Relacional

Theta Join
Notaci on: R S Equivalente al Join s olo que se permite usar cualquier condici on de comparaci on. (). El resultado se construye:
Toma el R S Selecciona s olo las tuplas que satisfacen

A B 1 2 R 6 7 9 7 A R.B 1 2 1 2 1 2 6 7 9 7

C 3 8 8 R.C 3 3 3 8 8

B 2 A<D S 2 7 S.B S.C 2 3 2 3 7 8 7 8 7 8

C 3 3 8 D 4 5 10 10 10

D 4 = 5 10

Algebra Relacional

Intersecci on
Notaci on: R S = R (R S ) Relaci on con las tuplas que est an en R y en S tambi en. Operaci on v alida A a Relaci on R: a b R S A a B 2 entre relaciones compatibles. B A B 1 S: a 2 2 b 3 1

Algebra Relacional

Renombrado
Notaci on: x (E ) x (A1 ,A2 ,...,An ) (E ) Asigna nombre a nueva relaci on. A Relaci on R: 1 3 w w ,x ,y ,z (R ) 1 3 la relaci on y/o a los atributos. No se obtiene una B 2 4 x 2 4 C 5 7 y 5 7 D 6 8 z 6 8

Algebra Relacional

Combinaci on de operadores
Algebra =
1 2

Argumentos b asicos + Formas de construcci on de expresiones. Los argumentos son las variables que representan las relaciones + tuplas constantes. Las expresiones se construyen aplicando los operadores y par entesis si se requieren. Consulta es una expresi on del algebra relacional.

Para el algebra relacional:


1

Algebra Relacional

Precedencia de operadores
La forma normal de agrupar los operadores es:
1 2 3

Los operadores unarios: , , tienen mayor precedencia. Luego siguen los operadores multiplicativos: Los de menor prioridad son los aditivos: , , . ,
, .

Este NO es un acuerdo universal as que es mejor usar siempre par entesis.

Algebra Relacional

Expresiones y esquemas
Cada expresi on requiere un esquema: Si se aplican , , , usar el esquema de cualquiera de sus operandos. La proyecci on: usa los atributos listados en la proyecci on. Selecci on: no cambia el esquema. Producto R S usa los atributos de R y los de S. Theta join: igual que el producto. Join natural: usa los atributos de cada relaci on, los atributos en com un s olo aparecen una vez. Renombrado: usa el esquema indicado.

Algebra Relacional

Esquema de la Base de Datos


Cuenta (nombreSucursal, numCta, saldo) Sucursal (nombreSucursal, ciudad, activos) Cliente (nombreCliente, calle, ciudad) CtaCliente (nombreCliente, numCta) Prestamo (nombreSucursal, numPrestamo, importe) Prestatario (nombreCliente, numPrestamo)

Algebra Relacional

Ejemplos de consultas
1

Encontrar la informaci on de todos los pr estamos realizados en la sucursal Fuentes Brotantes.

Algebra Relacional

Ejemplos de consultas
1

Encontrar la informaci on de todos los pr estamos realizados en la sucursal Fuentes Brotantes. nombreSucursal =FuentesBrotantes (Prestamo ) Determinar el nombre de los clientes que viven en Guanajuato.

Algebra Relacional

Ejemplos de consultas
1

Encontrar la informaci on de todos los pr estamos realizados en la sucursal Fuentes Brotantes. nombreSucursal =FuentesBrotantes (Prestamo ) Determinar el nombre de los clientes que viven en Guanajuato. nombreCliente (ciudad =Guanajuato (Cliente )) Nombre de todos los clientes del banco que tienen una cuenta, un pr estamo o ambas cosas.

Algebra Relacional

Ejemplos de consultas
1

Encontrar la informaci on de todos los pr estamos realizados en la sucursal Fuentes Brotantes. nombreSucursal =FuentesBrotantes (Prestamo ) Determinar el nombre de los clientes que viven en Guanajuato. nombreCliente (ciudad =Guanajuato (Cliente )) Nombre de todos los clientes del banco que tienen una cuenta, un pr estamo o ambas cosas. a) nombreCliente (Prestatario ) b) nombreCliente (CtaCliente ) La respuesta es: nombreCliente (ctaCliente ) nombreCliente (Prestatario ) Relaci on de clientes que tienen abierta una cuenta pero no tienen ninguna de cr edito.

Algebra Relacional

Ejemplos de consultas
1

Encontrar la informaci on de todos los pr estamos realizados en la sucursal Fuentes Brotantes. nombreSucursal =FuentesBrotantes (Prestamo ) Determinar el nombre de los clientes que viven en Guanajuato. nombreCliente (ciudad =Guanajuato (Cliente )) Nombre de todos los clientes del banco que tienen una cuenta, un pr estamo o ambas cosas. a) nombreCliente (Prestatario ) b) nombreCliente (CtaCliente ) La respuesta es: nombreCliente (ctaCliente ) nombreCliente (Prestatario ) Relaci on de clientes que tienen abierta una cuenta pero no tienen ninguna de cr edito. nombreCliente (CtaCliente ) nombreCliente (Prestatario ) Todos los clientes que tienen un pr estamo y una cuenta abierta.
Algebra Relacional

Ejemplos de consultas
1

Encontrar la informaci on de todos los pr estamos realizados en la sucursal Fuentes Brotantes. nombreSucursal =FuentesBrotantes (Prestamo ) Determinar el nombre de los clientes que viven en Guanajuato. nombreCliente (ciudad =Guanajuato (Cliente )) Nombre de todos los clientes del banco que tienen una cuenta, un pr estamo o ambas cosas. a) nombreCliente (Prestatario ) b) nombreCliente (CtaCliente ) La respuesta es: nombreCliente (ctaCliente ) nombreCliente (Prestatario ) Relaci on de clientes que tienen abierta una cuenta pero no tienen ninguna de cr edito. nombreCliente (CtaCliente ) nombreCliente (Prestatario ) Todos los clientes que tienen un pr estamo y una cuenta abierta. nombreCliente (Prestatario ) nombreCliente (CtaCliente )
Algebra Relacional

... Ejemplos de consultas


1

Nombre de todos los clientes que tienen un cr edito en la sucursal de Fuentes Brotantes.

Algebra Relacional

... Ejemplos de consultas


1

Nombre de todos los clientes que tienen un cr edito en la sucursal de Fuentes Brotantes. nombreCliente (Prestatario .numPrestamo =Prestamo .numPrestamo (nombreSucursal =FuentesBrotantes (Prestatario Prestamo ))) Nombre de todos los clientes que tienen un pr estamo y el importe del mismo.

Algebra Relacional

... Ejemplos de consultas


1

Nombre de todos los clientes que tienen un cr edito en la sucursal de Fuentes Brotantes. nombreCliente (Prestatario .numPrestamo =Prestamo .numPrestamo (nombreSucursal =FuentesBrotantes (Prestatario Prestamo ))) Nombre de todos los clientes que tienen un pr estamo y el importe del mismo. nombreCliente ,importe (Prestatario prestamo ) El nombre de todas las sucursales con clientes que tienen una cuenta abierta en el banco y viven en Cuernavaca.

Algebra Relacional

... Ejemplos de consultas


1

Nombre de todos los clientes que tienen un cr edito en la sucursal de Fuentes Brotantes. nombreCliente (Prestatario .numPrestamo =Prestamo .numPrestamo (nombreSucursal =FuentesBrotantes (Prestatario Prestamo ))) Nombre de todos los clientes que tienen un pr estamo y el importe del mismo. nombreCliente ,importe (Prestatario prestamo ) El nombre de todas las sucursales con clientes que tienen una cuenta abierta en el banco y viven en Cuernavaca. nombreSucursal (Cliente .ciudad =Cuernavaca (Cliente CtaCliente Cuenta)) Todos los clientes que tienen una cuenta abierta y un pr estamo en el banco.

Algebra Relacional

... Ejemplos de consultas


1

Nombre de todos los clientes que tienen un cr edito en la sucursal de Fuentes Brotantes. nombreCliente (Prestatario .numPrestamo =Prestamo .numPrestamo (nombreSucursal =FuentesBrotantes (Prestatario Prestamo ))) Nombre de todos los clientes que tienen un pr estamo y el importe del mismo. nombreCliente ,importe (Prestatario prestamo ) El nombre de todas las sucursales con clientes que tienen una cuenta abierta en el banco y viven en Cuernavaca. nombreSucursal (Cliente .ciudad =Cuernavaca (Cliente CtaCliente Cuenta)) Todos los clientes que tienen una cuenta abierta y un pr estamo en el banco. nombreCliente (Prestatario CtaCliente )
Algebra Relacional

Operaciones de Actualizaci on (Borrado)


R R e con e = Una tupla constante especicada Resultado de una consulta en algebra relacional. Restricciones: Tupla con el mismo grado que la R y con valores en los dominios adecuados.
1

Borrar las cuentas de G omez.

Algebra Relacional

Operaciones de Actualizaci on (Borrado)


R R e con e = Una tupla constante especicada Resultado de una consulta en algebra relacional. Restricciones: Tupla con el mismo grado que la R y con valores en los dominios adecuados.
1

Borrar las cuentas de G omez. Cuenta Cuenta nombreCliente =Gomez (CuentaCliente ) Borrar los prestamos con importe entre 0 y 8000 pesos.

Algebra Relacional

Operaciones de Actualizaci on (Borrado)


R R e con e = Una tupla constante especicada Resultado de una consulta en algebra relacional. Restricciones: Tupla con el mismo grado que la R y con valores en los dominios adecuados.
1

Borrar las cuentas de G omez. Cuenta Cuenta nombreCliente =Gomez (CuentaCliente ) Borrar los prestamos con importe entre 0 y 8000 pesos. Prestamo Prestamo importe 0importe 8000 (Prestamo ) Borrar las cuentas de Guanajuato.

Algebra Relacional

Operaciones de Actualizaci on (Borrado)


R R e con e = Una tupla constante especicada Resultado de una consulta en algebra relacional. Restricciones: Tupla con el mismo grado que la R y con valores en los dominios adecuados.
1

Borrar las cuentas de G omez. Cuenta Cuenta nombreCliente =Gomez (CuentaCliente ) Borrar los prestamos con importe entre 0 y 8000 pesos. Prestamo Prestamo importe 0importe 8000 (Prestamo ) Borrar las cuentas de Guanajuato. r1 ciudad =Guanajuato (Cuenta Sucursal ) r2 nombreSucursal ,numCta,saldo (r1 ) Cuenta Cuenta r2
Algebra Relacional

Operaciones de Actualizaci on (Inserci on)


R R e con e = Una tupla constante especicada Resultado de una consulta en algebra relacional. Restricciones: Tupla con el mismo grado que la R y con valores en los dominios adecuados. 1 Insertar a G omez con 240,000 pts en la cuenta C-973 de Cuernavaca

Algebra Relacional

Operaciones de Actualizaci on (Inserci on)


R R e con e = Una tupla constante especicada Resultado de una consulta en algebra relacional. Restricciones: Tupla con el mismo grado que la R y con valores en los dominios adecuados. 1 Insertar a G omez con 240,000 pts en la cuenta C-973 de Cuernavaca Cuenta Cuenta {(Cuernavaca, C 973, 240000)} CtaCliente CtaCliente {(Gomez , C 973)} Cliente Cliente {(Gomez , Bugambilias , Cuernavaca)} 2 Ofrecer una nueva cuenta con 40,000 a todos los clientes con pr estamos en Cuernavaca, el n umero del pr estamo ser a el de la nueva cuenta.

Algebra Relacional

Operaciones de Actualizaci on (Inserci on)


R R e con e = Una tupla constante especicada Resultado de una consulta en algebra relacional. Restricciones: Tupla con el mismo grado que la R y con valores en los dominios adecuados. 1 Insertar a G omez con 240,000 pts en la cuenta C-973 de Cuernavaca Cuenta Cuenta {(Cuernavaca, C 973, 240000)} CtaCliente CtaCliente {(Gomez , C 973)} Cliente Cliente {(Gomez , Bugambilias , Cuernavaca)} 2 Ofrecer una nueva cuenta con 40,000 a todos los clientes con pr estamos en Cuernavaca, el n umero del pr estamo ser a el de la nueva cuenta. r1 (nombreSucursal =Cuernavaca (Prestatario Prestamo )) r2 nombreSucursal ,numPrestamo (r1 ) Cuenta Cuenta (r2 {40000}) CtaCliente CtaCliente nombreCliente , numPrestamo (r1 )
Algebra Relacional

Operaciones de Actualizaci on (Actualizaci on)


Borrado + Inserci on. O bien, mediante el operador de proyecci on generalizado, donde en la lista de proyecci on aparecen nombres de atributos (si no se modicar an) o bien estos involucrados en operaciones aritm eticas. 1 Disminuir al saldo de la cuenta C973 de G omez el 10 % .

Algebra Relacional

Operaciones de Actualizaci on (Actualizaci on)


Borrado + Inserci on. O bien, mediante el operador de proyecci on generalizado, donde en la lista de proyecci on aparecen nombres de atributos (si no se modicar an) o bien estos involucrados en operaciones aritm eticas. 1 Disminuir al saldo de la cuenta C973 de G omez el 10 % . r1 numCta=C 973 (Cuenta) Cuenta Cuenta r1 r2 saldo 1,10 (r1 ) Cuenta Cuenta {(Cuernavaca, C 973) r2 )} 2 Aumentar todos los saldos en un 5 % .

Algebra Relacional

Operaciones de Actualizaci on (Actualizaci on)


Borrado + Inserci on. O bien, mediante el operador de proyecci on generalizado, donde en la lista de proyecci on aparecen nombres de atributos (si no se modicar an) o bien estos involucrados en operaciones aritm eticas. 1 Disminuir al saldo de la cuenta C973 de G omez el 10 % . r1 numCta=C 973 (Cuenta) Cuenta Cuenta r1 r2 saldo 1,10 (r1 ) Cuenta Cuenta {(Cuernavaca, C 973) r2 )} 2 Aumentar todos los saldos en un 5 % . Cuenta Sucursal ,numCta,saldo 1,05 (Cuenta) 3 Disminuir 6 % a las cuentas con saldo mayor que 20000 y a las dem as 5 %.

Algebra Relacional

Operaciones de Actualizaci on (Actualizaci on)


Borrado + Inserci on. O bien, mediante el operador de proyecci on generalizado, donde en la lista de proyecci on aparecen nombres de atributos (si no se modicar an) o bien estos involucrados en operaciones aritm eticas. 1 Disminuir al saldo de la cuenta C973 de G omez el 10 % . r1 numCta=C 973 (Cuenta) Cuenta Cuenta r1 r2 saldo 1,10 (r1 ) Cuenta Cuenta {(Cuernavaca, C 973) r2 )} 2 Aumentar todos los saldos en un 5 % . Cuenta Sucursal ,numCta,saldo 1,05 (Cuenta) 3 Disminuir 6 % a las cuentas con saldo mayor que 20000 y a las dem as 5 %. r1 Sucursal ,numCta,saldo 1,06 (saldo >20000 (Cuenta)) r2 Sucursal ,numCta,saldo 1,05 (saldo 20000 (Cuenta)) Cuenta r1 r2
Algebra Relacional

Funciones de Agregaci on
Permiten combinar tuplas de una relaci on para producir un valor agregado. Las m as comunes son: sum, avg, count, min, max. Ejemplo: sumatributo (R ) crea una relaci on con un u nico atributo que es la suma de los valores de atributo en la relaci on R. Para evitar trabajar con duplicados se debe preceder la operaci on con distint.

Algebra Relacional

Вам также может понравиться