2. ALGEBRA RELACIONAL
•Lenguaje Procedimental
•Seis operaciones básicas
•Selección
•Proyección
•Unión
•Diferencia de conjunto
•Producto cartesiano
•Renombramiento
•Los operadores toman dos o más relaciones (tablas) como entrada y su resultado es una nueva relación (tabla).
3. OPERACIÓN DE SELECCIÓN
•Notación: p(r)
•p es llamado predicado de la selección
Donde p es una formula consistente con el cálculo proposicional de términos conectados por : (y), (o), (no) Cada termino es uno de:
<atributo> op <atributo> o <constante>
donde op es uno de: =, , >, . <.
•Ejemplo de selección:
sucursal-nombre=“Perryridge”(cuenta)
4. EJEMPLO DE LA OPERACIÓN DE SELECCIÓN
•Relación r
A
B
C
D
1
5
12
23
7 7 3 10
•A=B ^ D > 5 (r)
A
B
C
D
1 23
7 10
5. OPERACIÓN DE PROYECCIÓN
•Notación: A1, A2, …, Ak (r)
donde A1, A2 son nombres de atributos y r es el nombre de la relación.
•El resultado es definido como una relación de k columnas obtenidas de borrar las columnas que no están listadas
•Las filas duplicadas son removidas del resultado
•E.j. Para eliminar el atributo sucursal-nombre de cuenta account-number, balance (cuenta)
6. EJEMPLO DE LA OPERACIÓN DE PROYECCIÓN
•Relación r:
A
B
C
10
20
30
40
1 1 1 2
A
C
1
1
1
2
=
A
C
1 1 2
A,C (r)
7. OPERACIÓN DE UNIÓN
•Notación: r s
•Para que r s sea válida.
1. r, s deben ser de la misma aridad (mismo número de atributos)
2. Los dominios de las tributos deben ser compatibles 3. r y s pueden ser relaciones temporales que sean resultado de expresiones del álgebra relacional. E.j.
nombre_cliente (depositantes) nombre_cliente (prestatario)
8. EJEMPLO DE LA OPERACIÓN UNIÓN
•Relaciónes r, s:
r s:
A
B
1
2
1
A
B
2
3
r
s
A
B
1 2 1 3
9. OPERACIÓN DIFERENCIA DE CONJUNTO
•Notación r – s
•Se debe asegurar que la diferencia de conjuntos se realice entre relaciones compatibles.
•r y s deben ser de la misma aridad
•los domminios de los atributos de r y s sean compatibles
•3. r y s pueden ser relaciones temporales que sean resultado de expresiones del álgebra relacional.
10. EJEMPLO DE OPERACIÓN DIFERENCIA DE CONJUNTO
•Relaciones r, s:
r – s:
A
B
1 2 1
A
B
2
3
r
s
A
B
1 1
11. OPERACIÓN PRODUCTO CARTESIANO
•Notación r x s
•Asume que los atributos de r(R) y s(S) son disyuntos. (Esto es, R S = ).
•Si los atributos de r(R) y s(S) no son disyuntos, entonces se debe usar renombramiento.
•Disyunto se dice de aquellos conjuntos que no tienen elementos en común
12. EJEMPLO DE LA OPERACIÓN
PRODUCTO CARTESIANO
Relaciones r, s:
r x s:
A B
1
2
A B
1
1
1
1
2
2
2
2
C D
10
10
20
10
10
10
20
10
E
a
a
b
b
a
a
b
b
C D
10
10
20
10
E
a
a
b
r b
s
13. OPERACIÓN DE RENOMBRAMIENTO
•Permite nombrar, y referirse, a los resultados de expresiones de algebra relacional.
•Permite referirse a una relación por más de un nombre.
Ejemplo:
x (E)
Devuelve la expresión E bajo el nombre X
14. COMPOSICIÓN DE OPERACIONES
• Se pueden construir expresiones usando
multiples operaciones
• Ejemplo A=C(r x s)
• r x s
• A=C(r x s)
A B
1
1
1
1
2
2
2
2
C D
10
10
20
10
10
10
20
10
E
a
a
b
b
a
a
b
b
A B C D E
1
2
2
10
20
20
a
a
b
15. OPERACIONES ADICIONALES
Se definen operaciones que no adicionan poder al algebra relacional pero simplifican algunas consultas.
•Intersección
•Reunión Natural
•División
•Asignación
16. OPERACIÓN DE INTERSECCIÓN
•Notación: r s
•Definida como:
•r s ={ t | t r and t s }
•Asume:
•r, s tienen la misma aridad
•Atributos de r y s son compatibles
•Equivalente a: r s = r - (r - s)
17. EJEMPLO DE OPERACIÓN DE INTERSECCIÓN
•Relaciones r, s:
•r s
A B
1
2
1
r
A B
2 3
s
A B
2
18. Notación: r s
OPERACIÓN DE REUNIÓN NATURAL
•La reunión natural es una operación binaria que permite combinar ciertas selecciones y un producto cartesiano en una sola operación y elimina los atributos repetidos.
•Ejemplo:
R = (A, B, C, D)
S = (E, B, D)
•Esquema Resultante = (A, B, C, D, E)
•r s es definida como: r.A, r.B, r.C, r.D, s.E (r.B = s.B r.D = s.D (r x s))
19. EJEMPLO DE UNA OPERACIÓN DE REUNIÓN NATURAL
•Relaciones r, s:
A
B
1
2
4
1
2
C
D
a a b a b
r
A
B
1 1 1 1 2
C
D
a a a a b
E
B
1 3 1 2 3
D
a a a b b
E
s
r s
20. OPERACIÓN DE DIVISIÓN
•Adecuada para consultas que incluyen la expresión “para todos”.
•Si r y s son relaciones de los esquemas R y S respectively where
•R = (A1, …, Am, B1, …, Bn)
•S = (B1, …, Bn)
El resultado de r s es una relación sobre el esquema
R – S = (A1, …, Am)
r s = { t | t R-S(r) u s ( tu r ) }
r s
21. EJEMPLO DE LA OPERACIÓN DE DIVISIÓN
Relaciones r, s:
r s:
A
A
B
1 2 3 1 1 1 3 4 6 1 2
r
B
1 2
s
22. OPERACIÓN DE ASIGNACIÓN
•La operación de asignación () prevé una conveniente forma de expresar queries complejos.
•Ejemplo: Escribir r s como s
temp1 R-S (r) temp2 R-S ((temp1 x s) – R-S,S (r)) resultado = temp1 – temp2
•El resultado a la derecha de es asignado a la relación de la izquierda de .
•Se pueden usar variable en las subsiguientes expresiones.
23. OPERACIONES Y FUNCIONES DE AGREGACIÓN
•Funciones de Agregación toma una colección de valores y retorna un solo valos como resultado.
avg: valor promedio min: valor mínimo max: valor máximo sum: suma de valores count: número de valores
•Operaciones de Agregación en el algebra relacional
G1, G2, …, Gn g F1( A1), F2( A2),…, Fn( An) (E)
•E es cualquier expresión del algebra relacional
•G1, G2 …, Gn es una lista de atributosque se agrupan (pueden ser vacios)
•Cada Fi es una función se agregación
•Each Ai es un nombre de atributo
24. EJEMPLO DE OPERACIÓN DE AGREGACIÓN
•Relación r:
A
B
C
7 7 3 10
g sum(c) (r)
sum-C
27
26. FUNCIÓN DE AGREGACIÓN (CONT.)
•El resultado de una agregación no tiene nombre
•Se puede usar la operación de renombramiento para darle un nombre
•Por conveniencia, se permite renombrar como parte de la operación de agregamiento
branch-name g sum(balance) as sum-balance (account)
27. MODIFICACIÓN DE LA BASE DE DATOS
•El contenido de la base de datos puede ser modificado usando las siguientes operaciones:
•Borrar
•Insertar
•Actualizar
•Todas estas operaciones son expresadas usando el operador de asignación.
28. BORRADO
•Las solicitudes de borrado se expresan de forma similar que las consultas, salvo que en lugar de mostrar las tuplas, estas son eliminadas de la base de datos.
•Solo se puede borrar la tupla entera; no se pueden borrar valores particulares de atributos
•El borrado se expresa en el algebra relacional como:
r r – E
donde r es una relación y E es una consulta del algebra relacional.
29. EJEMPLOS DE BORRADO
•Borrar todas los registros de cuentas de la sucursal Perryridge.
Borrar todos los registros cuyo monto esté entre 0 y 50
prestamo prestamo – monto 0and monto 50 (prestamo)
cuenta cuenta – nombre-sucursal = “Perryridge” (cuenta)
30. INSERCION
•Para insertar datos en una relación, we either:
•especificar la tupla que se va a insertar
•escribir un query cuyo resultado sea un conjunto de tuplas que vayan a insertarsen
•en el álgebra relacional, una insercion se expresa como:
r r E
donde r es una relación y E es una expresión del álgebra relacional.
31. EJEMPLOS DE INSERCIÓN
•Inserte información en la base de datos especificando que Smith tiene $1200 en la cuenta A-973 en la sucursal Perryridge.
cuenta cuenta {(“Perryridge”, A-973, 1200)}
depositor depositor {(“Smith”, A-973)}
32. ACTUALIZACIÓN
•El mecanismos para cambiar los valores de una tupla sin cambiar todos sus valores
•Use el operador de proyección generalizada para realizar esta tarea
r F1, F2, …, FI, (r)
cuenta AN, BN, BAL * 1.05 (cuenta)
donde NC, NS y SAL son numero-cuenta, nombre-sucursal and saldo, respectivamente.
Se desea incrementar el 5% de interés en todos los saldos de las cuentas.
33. VISTAS
•En algunas ocasiones no es deseable que todos los usuarios puedan ver la totalidad del modelo lógico (e.j., todas las relaciones de la base de datos.)
•Considere una persona que necesita conocer los números de préstamo pero no su monto. Esta persona podría ver la relación descrita en el álgebra relacional por:
nombre-cliente, numero-prestamo (prestatario prestamo)
•Cualquier relación que no es del modelo conceptual pero es visible al usuario como una “relación virtual” es llamada vista.
34. DEFINICIÓN DE VISTA
•Una vista es definida usando la expresión create view
create view v as < query >
donde <query> es cualquier expresión legal del algebra relacional. El nombre de la vista se representa mediante v
•Una vez se ha definido una vista¡, se puede utilizar el nombre de la vista para hacer referencia a la relación virtual que genera la vista.
35. EJEMPLOS DE VISTA
•Considere la vista (llamada todos-clientes) que consiste en las sucursales y sus clientes.
create view todos-clientes as
nombre-sucursal, nom-cliente (depositor account)
nombre-sucursal, nom-cleinte (prestatario prestamo)