Ejercicios de Algebra Relacional.
TECNÓLOGICO
NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE PACHUCA
ING. LEÓN OLIVARES ERIC
MATERIA: FUNDAMENTOS DE BASE DE DATOS
PRACTICA: CONSULTAS A TRAVÉS DE AR,
U5.
EQUIPO: PEL5G.
INTEGRANTES:
Peña Gutiérrez César
No. Control: 16200666
Monroy Soto Erick
No. Control: 17200196
Martínez Domínguez
Daniel No. Control: 18200193
Sánchez Ledezma J. Leonardo No.
Control: 17200205
Fecha: 13/11/19
INTRODUCCIÓN:
El álgebra relacional es un conjunto de operaciones
que describen paso a paso cómo computar una respuesta sobre las relaciones, tal
y como éstas son definidas en el modelo relacional. Denominada de tipo
procedimental, a diferencia del Cálculo relacional que es de tipo declarativo.
Describe el aspecto de la manipulación de datos.
Estas operaciones se usan como una representación intermedia de una consulta a
una base de datos y, debido a sus propiedades algebraicas, sirven para obtener
una versión más optimizada y eficiente de dicha consulta.
EL
algebra relacional es un lenguaje de consulta procedural. Consta de un conjunto
de operaciones que toman como entrada una o dos relaciones y producen como
resultado una nueva relación, por lo tanto, es posible anidar y combinar
operadores. Hay ocho operadores en el álgebra relacional que construyen
relaciones y manipulan datos, estos son:
1. Selección
|
2.
Proyección
|
3. Producto
|
4. Unión
|
5.
Intersección
|
6.
Diferencia
|
7. JOIN
|
8. División
|
DESARROLLO:
Ejercicio 1:
Sea una base de datos de una compañía de construcciones con
los siguientes
esquemas-relación:
OBRAS {nroObra, director, tipoObra, fechaComienzo)
TRABAJA (nroObrero, nroObra, fecha, codTarea)
PERSONAL (nroObrero, nomObrero, especialidad)
TAREAS (codTarea, descripcion, duracion)
Se pide: Resolver las siguientes consultas
en Algebra Relacional:
a) Obtener los números de las obras tales que todas las tareas
realizadas en ella tienen una duración de por lo menos 10.
Realizamos el producto cartesiano de la
tabla Trabaja y Tareas:
(Tareas x Trabaja)
Indicamos la condición
de el atributo ‘Especialidad’:
>=
10
Realizamos la
proyección para mostrar el resultado:
∏ Trabaja.nroObra [(Tareas x Trabaja) σ (Tareas.duracion≥10 AND Trabaja.codTarea=Tareas.codTarea)]
b) Obtener los números de obra, director y fecha de comienzo
de las mismas tal que en las obras solo participaron obreros cuya especialidad
es “ALBAÑIL”
Realizamos el producto
cartesiano de la tabla: obras, trabaja y personal:
(Obras x Trabaja x Personal)
Indicamos la condición
en el atributo ‘Personal’:
Personal. Especialidad = ‘Albañil’
Agregamos las
Condiciones de igualdad entre llaves:
Trabaja.nroObra = Obras. nroObra AND Personal.nroObrero =
Trabaja.nroObrero
Indicamos proyección y
selección:
∏Obras.nroObra, Obras.director,
Obras.fechaComienzo [( Obras x Trabaja x Personal) σ (Personal. Especialidad = ‘Albañil’
AND Trabaja.nroObra = Obras. nroObra AND Personal.nroObrero =
Trabaja.nroObrero)]
c) Obtener los números de obra, director y fecha de comienzo
de las mismas tal que en las obras participaron obreros cuya especialidad es
“ALBAÑIL” y obreros de otras especialidades.
Con la operación que
realizamos a continuación, recolectamos todos los números de obra donde
participaron obreros cuya especialidad es “ALBAÑIL”.
A = nroObra [TRABAJA ⋈ (σ
especialidad = ‘Albañil’ (PERSONAL))]
Y con la operación
siguiente, recolectamos todos los números de obra donde participaron obreros de
otras especialidades.
B = nroObra [¡TRABAJA ⋈ (σ
especialidad! = ‘Albañil’ (PERSONAL))]
Creamos la intersección
pertinente entre A y B (A ∩ B) y un join con la tabla Personal
((A ∩ B) ⋈ Obras)
Por último la
proyección
∏Obras.nroObra, Obras.director,
Obras.fechaComienzo ((A ∩ B) ⋈ Obras)
d) Obtener los números de obra, director y fecha de comienzo
de las mismas tal que en las obras participaron obreros con especialidad
“ALBAÑIL”.
Agregamos la condición
en la especialidad “ALBAÑIL”.
A = nroObra [(Trabaja ⋈ (σ
especialidad = ‘Albañil’ (P))]
Recopilamos todos los
números de obra donde participaron obreros de otras especialidades
B = nroObra
[¡Trabaja ⋈ (σ Especialidad! = ‘Albañil’ (P))]
Creamos
la diferencia pertinente entre A y B (A - B) y un join con la tabla Personal
((A - B) ⋈ Obras)
Proyección:
∏Obras.nroObra,
Obras.director, Obras.fechaComienzo ((A - B) ⋈ OBRAS)
Conclusiones:
Las operaciones del álgebra relacional sirven para hacer
consultas a una base de datos. Es preciso conocer estas operaciones porque nos
permiten saber qué servicios de consulta debe proporcionar un lenguaje
relacional. Además, constituye la base para el estudio del tratamiento de las
consultas que efectúan los SGBD internamente (especialmente en lo que respecta
a la optimización de consultas.
Bibliografía:
Basdatos. (2013). Algebra Relacional. 2019, de
Tripod Sitio web:
DorvinEduardo. (2016). Algebra Relacional.
2019, de Slide Share Sitio web:
https://es.slideshare.net/DorvinEduardo/algebra-relacional-62265241