Bas De Datos Cuestinario 6 Libro
jrab6610 de Abril de 2014
17.715 Palabras (71 Páginas)238 Visitas
n
s
s
s
n
),
le
o
CAPíTULO 6
El álgebra relacional y
los cálculos relacionales
n este capítulo vamos a tratar los dos lenguajes formales del modelo relacional: el álgebra relacional y EIOS cálculos relacionales. Como ya comentamos en el Capítulo 2, un modelo de datos debe incluir un
conjunto de operaciones para manipular la base de datos junto con los conceptos necesarios para la definición
de su estructura y restricciones. El conjunto de operaciones básicas del modelo relacional es el álgebra
relacional, el cual permite al usuario especificar las peticiones fundamentales de recuperación. El resultado
de una recuperación es una nueva relación, la cual puede estar constituida por una o más relaciones. Por
consiguiente, las operaciones de álgebra producen nuevas relaciones que pueden ser manipuladas más adelante
usando operaciones del mismo álgebra. Una secuencia de operaciones de álgebra relacional conforma una
expresión de álgebra relacional, cuyo resultado será también una nueva relación que representa el resultado
de una consulta a la base de datos (o una petición de recuperación).
El álgebra relacional es muy importante por varias razones. La primera, porque proporciona un fundamento
formal para las operaciones del modelo relacional. La segunda razón, y quizá la más importante, es que se utiliza
como base para la implementación y optimización de consultas en los RDBMS (Sistemas de administración
de bases de datos relacionales, Re/ational DataBase Management Systems), tal y como se comentará en
la Parte 4. Tercera, porque algunos de sus conceptos se han incorporado al lenguaje estándar de consultas SQL
para los RDBMS.
Aunque ninguno de los RDBMS comerciales actuales proporcionan una interfaz para las consultas de álgebra
relacional, las funciones y operaciones centrales de cualquier sistema relacional están basadas en estas operaciones,
que explicamos con detalle en las siguientes secciones.
Mientras que el álgebra define un conjunto de operaciones del modelo relacional, los cálculos relacionales
ofrecen una notación declarativa de alto nivel para especificar las consultas relacionales. Una expresión de
cálculo relacional crea una nueva relación, la cual está especificada en términos de variables que engloban
filas de las relaciones almacenadas en la base de datos (en cálculos de tupla) o columnas de las relaciones
almacenadas (para los cálculos de dominio). En una expresión de cálculo, no existe un orden de operaciones
para recuperar los resultados de la consulta: la expresión sólo especifica la información que el resultado debería
contener. Ésta es la diferencia principal entre el álgebra relacional y los cálculos relacionales. Éste último
es importante porque tiene una base firme en la lógica matemática y porque el SQL (Lenguaje de consulta
estándar, Standard Quel)! Language) para los RDBMS tiene alguno de sus fundamentos en los cálculos de
tupla relacional. l
1 SQL está basado en los cálculos relacionales de tupla, aunque también incorpora algunas de las operaciones del álgebra relacional y sus
extensiones, como veremos en los Capítulos 8 y 9.
146 Capítulo 6 El álgebra relacional y los cálculos relacionales
El álgebra relacional tiende a ser considerado como una parte integral del modelo de datos relacional. Sus operaciones
pueden dividirse en dos grupos. Uno de ellos incluye el conjunto de operaciones de la teoría matemática
de conjuntos, los cuales son aplicables porque cada relación está definida de modo que sea un conjunto
de tuplas en el modelo relacional formal. Estas operaciones incluyen UNiÓN (UNION), INTERSECCiÓN
(INTERSECTlON), DIFERENCIA DE CONJUNTOS (SET DIFFERENCE) Y PRODUCTO CARTESIANO
(CARTESIAN PRODUCT)o El otro grupo está constituido por las operaciones desarrolladas específicamente
para las bases de datos relacionales, como la SELECCiÓN (SELECT), la PROYECCiÓN (PROJECT), la
CONCATENACiÓN o COMBINACiÓN (JOIN) y otras. La Sección 6.1 empieza tratando las operaciones
SELECCiÓN y PROYECCiÓN porque son operaciones unarias que operan en relaciones individuales. La
Sección 6.2 se encarga del conjunto de operaciones, mientras que la 6.3 se centra en la CONCATENACiÓN y
otras operaciones binarias complejas que operan sobre dos tablas. En los ejemplos utilizaremos la base de
datos EMPRESA de la Figura 5.6.
Algunas de las peticiones de base de datos más comunes no pueden llevarse a cabo con las operaciones del
álgebra relacional originales, por lo que se desarrollaron otras nuevas para lograrlo. Entre estas operaciones
se incluyen las funciones agregadas, que son operaciones que pueden resumir datos a patiir de tablas, así
como operaciones CONCATENACiÓN y UNiÓN adicionales. Estas operaciones fueron añadidas al álgebra
relacional original debido a su importancia para muchas aplicaciones de bases de datos, y se describen en la
Sección 6.4. En la Sección 6.5 ofreceremos ejemplos de consultas que usan operaciones relacionales, yalgunas
de ellas se utilizan posteriormente en otros capítulos para ilustrar varios lenguajes.
En las Secciones 6.6 y 6.7 se describe el otro tipo de lenguaje formal para las bases de datos relacionales, los
cálculos relacionales. Existen dos variantes del mismo. El cálculo relacional de tupla se explica en la Sección
6.6, mientras que el de dominio se detalla en la Sección 6.7. Algunas de las construcciones SQL tratadas en
el Capítulo 8 están basadas en la primera de estas variantes. El cálculo relacional es un lenguaje formal basado
en una rama de la lógica matemática llamada cálculos de predicad02. En los cálculos relacionales de tupla,
las variables alcanzan a las tuplas, mientras que en los de dominio "atacan" a los valores de los atributos. En
el Apéndice D podrá encontrar una descripción del QBE (Consulta mediante ejemplo, Quel}'-By-Example),
un lenguaje relacional gráfico y agradable para el usuario basado en los cálculos relacionales de dominio. La
Sección 6.8 resume todo este capítulo.
Los lectores interesados en una introducción menos detallada de los lenguajes relacionales formales pueden
saltarse las Secciones 6.4, 6.6 y 6.7.
6.1 Operaciones relacionales unarias: SELECCiÓN
(SELECT) y PROYECCiÓN (PROJECT)
6.1.1 La operación SELECCiÓN
SELECCiÓN se emplea para seleccionar un subconjunto de las tuplas de una relación que satisfacen una condición
de selección. Se puede considerar esta operación como un filtro que mantiene sólo las tuplas que satisfacen
una determinada condición. SELECCiÓN puede visualizarse también como una partición horizontal de
la relación en dos conjuntos de tuplas: las que satisfacen la condición son seleccionadas y las que no, descartadas.
Por ejemplo, para seleccionar las tuplas de EMPLEADO cuyo departamento sea 4, o cuyo salario sea
mayor de 30.000 euros, podemos especificar individualmente cada una de estas condiciones con una operación
SELECCiÓN como ésta:
(TDno=4(EMPLEADO)
(T Sueldo>30ooo(EMPLEADO)
2 En este capítulo se asume que no tiene ningún conocimiento sobre los cálculos de predicado de primer orden (los que tratan con variables
y valores cuantificados).
a
y
le
el
s
sí
ra
la
1-
en
nisde
area
raria-
6.1 Operaciones relacionales unarias: SELECCiÓN (SELECT) y PROYECCiÓN (PROJECT) 147
En general', SELECCiÓN está designada como:
CJ <condición de selección>(R)
donde el símbolo (J (sigma) se utiliza para especificar el operador de SELECCiÓN, mientras que la condición
de selección es una expresión lógica (o booleana) especificada sobre los atributos de la relación R. Observe
que R es, generalmente, una expresión de álgebra relacional cuyo resultado es una relación: la más sencilla
de estas expresiones es sólo el nombre de una relación de base de datos. El resultado de SELECCiÓN tiene
los mismos atributos que R.
La expresión lógica especificada en <condición de selección> está constituida por un número de cláusulas de
la forma:
<nombre de atributo> <operador de comparación> <valor constante>,
o bien:
<nombre de atributo> <operador de comparación> <nombre de atributo>
donde <nombre de atributo> es el nombre de un atributo de R, <operador de comparación> suele ser uno de
los operadores {=, <, ::5, >,2::, =1= } Y <valor constante> es un valor del dominio del atributo. Las cláusulas
pueden estar conectadas arbitrariamente por operadores lógicos and, 01' y not para formar una condicióll de
selección general. Por ejemplo, para seleccionar las tuplas de todos los empleados que trabaj,an en el departamento
4 y ganan sobre 25.000 euros al año, o los que trabajan en el 5 y ganan alrededor de 30.000, podemos
especificar la siguiente operación de SELECCiÓN:
CJ(Dno=4 ANO Sueldo>25000) OR (Dno=5 ANO sueldo>30oo0¡(EMPLEADO)
El resultado
...