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