Download Doc de prueba

Transcript
1.
LENGUAJES DE INTERROGACION DE BASES DE DATOS
Un lenguaje de interrogación o consulta es un lenguaje en el que un usuario solicita información de la base de
datos. Estos lenguajes suelen ser de un nivel superior que el de los lenguajes de programación habituales. Los
lenguajes de consulta pueden clasificarse, tal como vimos al estudiar los LMD, en dos grupos:
□
Lenguajes procedurales o procedimentales: El usuario instruye al sistema para que lleve a cabo una
serie de operaciones en la base de datos para calcular el resultado deseado.
□
Lenguajes no procedurales o no procedimentales: El usuario describe la información deseada sin dar
un procedimiento concreto para obtener esa información.
En este epígrafe vamos a estudiar los lenguajes formales de consulta o lenguajes “puros”. Los tres que se
estudian no son cómodos de usar, pero a cambio sirven como base formal para lenguajes de consulta que si
resultan cómodos.
El primer lenguaje de consulta, el álgebra relacional, se estudia en detalle. El álgebra relacional forma la base del
lenguaje de consulta SQL, ampliamente usado y que también estudiaremos en el epígrafe siguiente. A
continuación se proporciona una visión general de otros dos lenguajes formales: el cálculo relacional de tuplas y
el cálculo relacional de dominios, que son lenguajes declarativos de consulta basados en la lógica matemática. El
cálculo relacional de dominios es la base del lenguaje de consulta QBE.
1.1
EL ÁLGEBRA RELACIONAL
El álgebra relacional es un lenguaje de consulta procedimental. Consta de un conjunto de operaciones que toman
como entrada una o dos relaciones y producen como resultado una nueva relación.
Como ya vimos al estudiar el modelo relacional, las operaciones asociadas a este modelo de datos forman el
álgebra relacional. Se puede demostrar matemáticamente que ésta álgebra es completa, o sea, que por medio de
ella se puede realizar cualquier acceso a la base de datos.
Las operaciones fundamentales del álgebra relacional son: selección, proyección, unión, diferencia de conjuntos,
producto cartesiano y renombramiento. Además de estas operaciones fundamentales hay otras operaciones que
se definen a partir de las fundamentales, tales como: intersección de conjuntos, unión natural y asignación.
Veamos ahora con más detalle cada una de estas operaciones. Los ejemplos en los que nos vamos a apoyar
hacen referencia a las tablas ejemplo que aparecen en el apartado 3.2.1: Alumno, Asignatura y Cursa.
1.1.1
OPERACIONES FUNDAMENTALES
Se dividen estas operaciones en dos tipos:
□
Unarias: Porque operan con una sola relación o tabla. Son: selección, proyección y renombramiento.
□
Binarias: Porque operan con dos relaciones. Son: unión, diferencia de conjuntos y producto cartesiano.
1.1.1.1 LA OPERACIÓN SELECCIÓN
La operación selección selecciona tuplas que satisfacen un predicado dado. Se utiliza la letra griega sigma
minúscula (σ) para denotar la selección. El predicado aparece como subíndice de σ. La relación de entrada es el
argumento que aparece entre paréntesis a continuación de σ.
Por lo tanto, la definición formal dice: Si P es un predicado compuesto por operadores lógicos, aritméticos y de
comparación y sus operandos son los valores de los atributos de una relación R, entonces la selección σP(R) es el
conjunto de tuplas de la relación R que hacen verdadera la condición establecida por el predicado P.
TEMARIO-TICC-mar04
Actualizado en marzo de 2004
T13
Página 2 de 20