ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Bas De Datos Cuestinario 6 Libro

jrab6610 de Abril de 2014

17.715 Palabras (71 Páginas)238 Visitas

Página 1 de 71

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

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

...

Descargar como (para miembros actualizados) txt (127 Kb)
Leer 70 páginas más »
Disponible sólo en Clubensayos.com