Upload
crystal93
View
214
Download
0
Embed Size (px)
DESCRIPTION
Algebra relacionalBase de Datos
Citation preview
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