Álgebra relacional

Post on 27-Jan-2016

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Algebra relacionalBase de Datos

TRANSCRIPT

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.

Álgebra Relacional

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

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)

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.

Propiedad de Cerradura

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

Operaciones

El álgebra relacional consta de nueve operaciones:

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

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.

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.

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 ,:

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

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 ,:

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

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

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

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

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.

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

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

,,,,,

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.

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:

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:

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

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

Consideremos la siguiente relación

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

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

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

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

1 2

1 3

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

Recuperamos todas las sucursales de Arganzuela

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

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

r2 r1 =

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.

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.

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.

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”

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

top related