Álgebra relacional

42
Lenguajes de Consulta Un lenguaje de consulta es un lengu aje con el que el usuario solicita información de la base de datos: se construye una expresión q ue contesta interrogantes sobre la instancia ac tual de la base de datos.

Upload: crystal93

Post on 27-Jan-2016

218 views

Category:

Documents


0 download

DESCRIPTION

Algebra relacionalBase de Datos

TRANSCRIPT

Page 1: Álgebra Relacional

Lenguajes de Consulta

Un lenguaje de consulta es un lenguaje con el que el usuario solicita información de la base de datos: se construye una expresión que contesta interrogantes sobre la instancia actual de la base de datos.

Page 2: Álgebra Relacional

Álgebra Relacional

Es un lenguaje de consulta que ilustra las técnicas fundamentales para la manipulación de la información.

Page 3: Álgebra Relacional

CONCEPTOS BÁSICOS:

Sean V1 D1 , V2 D2, … , Vn Dn , los valores Vi ,

y sean Di los dominios de cada Vi.

Entonces una tupla (V1, V2, … , Vn) es un elemento

del producto cartesiano de los Dn dominios:

(V1, V2, … , Vn) (D1 X D2 X … XDn)

Page 4: Álgebra Relacional

Relación := es un subconjunto del producto cartesiano de una lista de dominios.

En el álgebra relacional, a las tablas se les llama relaciones y a las filas se les llama tuplas.

Page 5: Álgebra Relacional

Propiedad de Cerradura

Consiste en el hecho de que aplicar cualquier operador de álgebra relacional sobre una relación resulta en una relación.

Page 6: Álgebra Relacional

Operaciones

El álgebra relacional consta de nueve operaciones:

Unión  Proyección Intersección Reunión  Diferencia División  Producto  RenombrarSelección 

Page 7: Álgebra Relacional

UniónLa operación de unión permite combinar datos de varias relaciones.

Supongamos que una determinada empresa internacional posee una tabla de empleados para cada uno de los países en los que opera.

Para conseguir un listado completo de todos los empleados

de la empresa tenemos que realizar una unión de todas las

tablas de empleados de todos los países.

Page 8: Álgebra Relacional

Nota:No siempre es posible realizar consultas de unión

entre varias tablas. Para poder realizar esta operación es necesario e

imprescindible que las tablas a unir tengan las mismas estructuras, que sus campos sean

iguales.

Page 9: Álgebra Relacional

Ejemplo: Teniendo las dos relaciones R y S, si la tupla

entonces

o bien, t pertenece tanto a R como a S.

R y S deben tener esquemas con conjuntos idénticos de atributos.

SRt

StRttSR ,:

Page 10: Álgebra Relacional

SRNombre

Juan DíazAna Gómez

Dirección    Fecha

C/Pez,10    9 9 62C/Luna,3    8 3 58

Nombre

Juan DíazLuis Díaz

Dirección    Fecha

C/Pez,10    9 9 62C/ Sol, 5     8 5 67

R SNombre

Juan DíazAna GómezLuis Díaz

Dirección

C/Pez,10C/Luna,3C/ Sol, 5

 

Fecha

9 9 628 3 588 5 67

Page 11: Álgebra Relacional

Diferencia -

La operación diferencia permite identificar tuplas que están en una relación y no en otra.

Dadas las dos relaciones R y S, si la tupla

entonces

R y S deben tener esquemas con conjuntos idénticos de atributos.

SRt

StRttSR ,:

Page 12: Álgebra Relacional

SRNombre

Juan DíazAna Gómez

Dirección    Fecha

C/Pez,10    9 9 62C/Luna,3    8 3 58

Nombre

Juan DíazLuis Díaz

Dirección    Fecha

C/Pez,10    9 9 62C/ Sol, 5     8 5 67

R S Nombre

Ana Gómez

Dirección

C/Luna,3

 

Fecha

8 3 58

Page 13: Álgebra Relacional

Intersección

Permite identificar tuplas comunes a dos relaciones, es decir:

De manera análoga a la unión, es requerido que los esquemas de ambas relaciones sean idénticos.

SRRSR

Page 14: Álgebra Relacional

SRNombre

Juan DíazAna Gómez

Dirección    Fecha

C/Pez,10    9 9 62C/Luna,3    8 3 58

Nombre

Juan DíazLuis Díaz

Dirección    Fecha

C/Pez,10    9 9 62C/ Sol, 5     8 5 67

R SNombre

Juan Díaz

Dirección

C/Pez,10

Fecha

9 9 62

Page 15: Álgebra Relacional

Producto Cartesiano X

Consiste en una reunir en una sola relación todas las posibles combinaciones ordenadas de todas las tuplas de la primera relación con todas las de la segunda.

Sean R y S dos relaciones de grado m y n, respectivamente. La relación posee grado m+n, cada tupla , está formada por m primeros elementos de R y n últimos de la relación S.

SRSRt

Page 16: Álgebra Relacional
Page 17: Álgebra Relacional

Selección σ Elige las tuplas que satisfacen una condición

dada.

Notación: Se utiliza la letra σ (sigma minúscula) para denotar la selección. La condición se escribe como subíndice de σ.

El grado de la relación se conserva.

Page 18: Álgebra Relacional

Consideremos la relación préstamo:

para seleccionar aquellas tuplas de la relación en las que el nombre-sucursal es Navacerrada, escribimos:

σ nombre-sucursal = “Navacerrada” (préstamo)

Préstamo

Page 19: Álgebra Relacional

Se emplean los símbolos para elaborar la condición de selección, además de los conectores lógicos y ( ) y o ( ).

Entonces la consulta σ nombre-sucursal = “Navacerrada” importe > 1400 (préstamo)arroja la tupla

,,,,,

Page 20: Álgebra Relacional

Proyección П Esta operación corresponde a una selección

en la que se indican los campos que se desean recuperar.

Si se desea, por ejemplo, realizar un listado de todos los números de préstamo y el importe de los mismos pero sin que aparezcan los nombres de las sucursales, la operación proyección es la que permite generar dicha relación.

Page 21: Álgebra Relacional

Notación: Se utiliza la letra П (pi mayúscula) para denotar la proyección. El listado de atributos se escribe como subíndice de П.

П número-préstamo, importe (préstamo)

devuelve la relación siguiente:

Page 22: Álgebra Relacional

Como el resultado de una operación relacional es una relación, es posible realizar una composición de operaciones relacionales.

Considérese la relación cliente:

Page 23: Álgebra Relacional

Para encontrar a los clientes que viven en Peguerinos, escribimos:

Expresión que se evalúa como relación

Page 24: Álgebra Relacional

Consideremos la siguiente relación

Page 25: Álgebra Relacional
Page 26: Álgebra Relacional

Reunión (Join) –reunión zeta-

Se emplea para recuperar datos de relaciones enlazadas por medio de la cláusula JOIN.

La operación reunión se puede combinar con las operaciones de selección y proyección.

La definición es la siguiente: R θ S = σθ ( )

SR

Page 27: Álgebra Relacional

Si se refiere a una condición arbitraria sobre los atributos C de las relaciones R y S, representado por R θ S, se construye:

1. Formando el producto cartesiano entre R y S.2. Se seleccionan las tuplas que

satisfacen C.

SRt

Page 28: Álgebra Relacional
Page 29: Álgebra Relacional
Page 30: Álgebra Relacional

Reunión natural (Natural Join)

Si R y S son dos relaciones con uno o más atributos en común, la reunión natural se determina del siguiente modo:

1. Del producto cartesiano , para cada

atributo Ai común, se seleccionan las filas en

que coinciden R.Ai con S.Ai.

2. Se elimina de la selección la columna

S.Ai.

SR

Page 31: Álgebra Relacional
Page 32: Álgebra Relacional

División Devuelve una nueva relación seleccionando

un subconjunto de las tuplas de una relación que se corresponden con todas las tuplas en otra relación.

Sean R y S relaciones con grados r y s, respectivamente, donde r > s y S .

Entonces R S es la relación de grado (r-s) tal que R S ,

,Su t Rut ),(

Page 33: Álgebra Relacional

1 2

1 3

Page 34: Álgebra Relacional

Se desean hallar a todos los clientes que tengan abierta una cuenta en todas las sucursales de la cuidad “Arganzuela”.

Page 35: Álgebra Relacional

Recuperamos todas las sucursales de Arganzuela

Page 36: Álgebra Relacional

Recuperamos todas las parejas nombre-cliente, nombre-sucursalnombre-cliente número-cuenta

González C-101

López C-102

González C-201

Gómez C-215

Santos C-217

Rupérez C-222

Abril C-305

La relación impositor

Page 37: Álgebra Relacional

Ahora hay que hallar los clientes que aparecen en r2 con los nombres de todas las sucursales de r1.

r2 r1 =

Page 38: Álgebra Relacional

Renombrar

Dada la relación R, el renombrado de R a S, S(R), corresponde a una relación con

exactamente las mismas tuplas y los mismos atributos que R, sólo que el nombre de la relación es S.

Page 39: Álgebra Relacional

Ejercicios:

En base al siguiente esquema: Estados (id_estado, nombre_estado)Poblaciones (id_estado, id_poblacion, descripcion_poblacion)Personas (id_poblacion, rfc_persona, nombre_persona, sex_persona,

direccion_persona) Recupere, empleando álgebra relacional. a) las poblaciones que se encuentran en cada Estado.b) las poblaciones que se encuentran en el Estado de México.c) la población y el estado en el que radican las personas. d) las poblaciones en donde no se encuentre la dirección de Zacatecas.

Page 40: Álgebra Relacional

En base al siguiente esquema:

Editoriales (numero_editorial, nombre_editorial, ciudad)Libros (numero_libro, titulo, autor, anio)Librerias(numero_libreria, nombre_libreria_ciudad) ELL (numero_editorial, numero_libro, numero_libreria, cantidad)

Empleando álgebra relacional;a) Recupere los nombres de las librerías surtidas por alguna editorial de

“Monterrey”b) Recupere los números de editorial que surten a las librerías L1 y L3,

libros con año de publicación 1994.

Page 41: Álgebra Relacional

En base al siguiente esquema:

Proyecciones (numero_sala, numero_pelicula, fecha_inicial, fecha_final)

Películas (numero_pelicula, titulo, genero)Salas (numero_sala)

Recupere , empleando álgebra relacional :a) Para marzo del año 2000, los nombres de las películas emitidasb) Los números de sala en que se proyectaron tales películasc) Los números de sala en que se emite sólo el género “Acción”

Page 42: Álgebra Relacional

En base al siguiente esquema:

Persona (id_persona, nombre)Empleados (id_persona, calle, ciudad)Trabaja (id_persona, nombre_empresa, sueldo)Empresas (nombre_empresa, ciudad)Dirige (id_persona, nombre_director)

Recupere, empleando álgebra relacional:a) Los nombres de todos los empleados de “Empresa1”b) Los nombres y ciudad de todos los empleados en “Empresa1”c) Nombres, calle y ciudad, de todos los empleados de

“Empresa1” con un sueldo mayor de 15,000 pesos.d) Los nombres de todos los empleados que viven en la misma

ciudad que su director