algebra relacional
Embed Size (px)
TRANSCRIPT

ALGEBRA RELACIONAL

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).

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)

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

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)

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)

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)

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

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.

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

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

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
b r
s

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

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

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

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)

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

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))

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

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

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

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.

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

EJEMPLO DE OPERACIÓN DE AGREGACIÓN
• Relación r:
A B
C
7
7
3
10 g sum(c) (r) sum-C
27

EJEMPLO DE OPERACIÓN DE AGREGACIÓN
• Relación account agrupada por branch-name:
branch-name g sum(balance) (account)
branch-name account-number balance
Perryridge
Perryridge
Brighton
Brighton
Redwood
A-102
A-201
A-217
A-215
A-222
400
900
750
750
700
branch-name balance
Perryridge
Brighton
Redwood
1300
1500
700

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)

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.

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.

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)

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.

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)}

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.

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.

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.

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)