Algebra relacional

35
ALGEBRA RELACIONAL

Transcript of Algebra relacional

Page 1: Algebra relacional

ALGEBRA RELACIONAL

Page 2: 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).

Page 3: Algebra relacional

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)

Page 4: Algebra relacional

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

Page 5: Algebra relacional

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)

Page 6: Algebra relacional

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)

Page 7: Algebra relacional

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)

Page 8: Algebra relacional

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

Page 9: Algebra relacional

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.

Page 10: Algebra 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

Page 11: Algebra relacional

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

Page 12: Algebra relacional

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

Page 13: Algebra relacional

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

Page 14: Algebra relacional

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

Page 15: Algebra relacional

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

Page 16: Algebra relacional

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)

Page 17: Algebra relacional

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

Page 18: Algebra relacional

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

Page 19: Algebra relacional

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

Page 20: Algebra relacional

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

Page 21: Algebra relacional

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

Page 22: Algebra relacional

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.

Page 23: Algebra relacional

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

Page 24: Algebra relacional

EJEMPLO DE OPERACIÓN DE AGREGACIÓN

• Relación r:

A B

C

7

7

3

10 g sum(c) (r) sum-C

27

Page 25: Algebra relacional

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

Page 26: Algebra relacional

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)

Page 27: Algebra relacional

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.

Page 28: Algebra relacional

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.

Page 29: 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)

Page 30: Algebra relacional

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.

Page 31: Algebra 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)}

Page 32: Algebra relacional

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.

Page 33: Algebra relacional

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.

Page 34: Algebra relacional

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.

Page 35: Algebra relacional

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)