Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algebra Relacional SQL
Algebra Relacional SQL
Abstract
Se introduce el lgebra relacional como modelo formal de las bases de datos relacionales. Se proporcionan ejemplos en SQL equivalentes a operaciones del lgebra relacional para conectar ambos lenguajes.
conjunto de relaciones.
Estas relaciones
las vemos informalmente como tablas en los gestores de bases de datos relacionales, pero no hay que olvidar Una relacin de nombre
, An).A m),
R se dene sobre el un conjunto de atributos Ai y se denota como R(A1, A2, ... R(A1, A2, ... , An) es un conjunto de tuplasti (i = 1, 2, ...,
que pertenece
esquema de la relacin.
En contraste, la
t i = {<A1:v[i,1]>, <A2:v[i,2]> ... <An:v[i, n])>} y, para cada par <Aj:v[i,j]>, se cumple que v[i,j] es un valor
nulo.
dominio(Aj),
o bien
Para seguir la discusin terica utilizaremos un ejemplo de una base de datos para modelar la actividad docente de los profesores de un departamento. Comenzaremos por un esquema muy sencillo, con dos relaciones que se muestran a continuacin.
Version
1.1: Nov 19, 2008 12:20 pm US/Central
http://creativecommons.org/licenses/by/2.0/
http://cnx.org/content/m18351/1.1/
Figure 1
Siguiendo la notacin anterior, por ejemplo, tenemos una relacin DEPARTAMENTOS(nombre, grado-experimentalidad, telefono). Una posible tupla sera la siguiente: t1 = {<nombre: Matemticas>, <grado-experimentalidad:1.5>, <fax:918845689>}
tanto los operandos como el resultado son relaciones. Esta propiedad se denomina cierre (o clausura) relacional. Esto tiene dos consecuencias evidentes pero
R:=expr
Con esto expresamos que el resultado de la expresin de lgebra relacional toda regla) pasaremos a llamarla notacin:
expr (que es una relacin en R. Tambin es til redenominar los atributos de una relacin, con la misma
el mismo dominio que
R(A 1 , A 2 , ...
Ai.
operaciones las dividiremos en dos grupos, las especcamente relacionales y las que son tpicas de la teora
http://cnx.org/content/m18351/1.1/
En el lenguaje SQL se pueden redenominar atributos mediante la clusula AS. Por ejemplo:
1.5 Operaciones especcamente relacionales 1.5.1 La proyeccin permite elegir algunos atributos La operacin de proyeccin permite seleccionar algunos atributos de una relacin (sea sta una relacin
o el resultado de otras operaciones). Formalmente, dada una relacin jutno de atributos de esa relacin
, An), y un subcon-
y contiene las partes de las tuplas con los valores de los atributos proyectados.
Es importante notar lo siguiente en las proyecciones: Como el resultado de cualquier operacin de lgebra relacional es una relacin, las tuplas repetidas en el resultado de la proyeccin se eliminarn. El orden de los atributos en la proyeccin no tiene que ser el mismo que en la relacin original.
La operacin de proyeccin en el lenguaje de consulta SQL se realiza simplemente especicando el subconjunto de atributos en la clusula SELECT.
Table 1
La siguiente sentencia
SELECT hace una proyeccin SELECT nombre, apellidos FROM PROFESORES SELECT nombre FROM profesores
del
nombre
y los
apellidos.
Es importante notar que la siguiente sentencia no devolvera una relacin, ya que tendra dos tuplas repetidas.
Para asegurar que el resultado es una relacin en el sentido matemtico, hay que utilizar el modicador
condicin de seleccin C La
condicin de seleccin es una condicin lgica que permita decidir qu incluir y qu no. Los atributos de la seleccin son los mismos que los de la relacin original, y todas las tuplas de la seleccin cumplen la condicin C. Por ejemplo:
SELECT * FROM DEPARTAMENTOS WHERE grado-experimentalidad > 1.0 SELECT * FROM PROFESORES WHERE not es doctor and telfono-mvil IS NOT NULL.
http://cnx.org/content/m18351/1.1/
1.5.3 La combinacin o reunin (join) permite cruzar los valores de tablas relacionadas
La combinacin toma dos relaciones y devuelve una relacin con las tuplas que resultan de concatenar tuplas de la primera con tuplas de la segunda y despus seleccionar las que cumplen una
condicin de combinacinC. Una combinacin entre las relaciones R y Q mediante la condicin C se denota como R[C]Q.
Por ejemplo, si queremos obtener la informacin de profesores y departamentos combinada, utilizaremos como combinacin la igualdad de la clave ajena en PROFESORES con la clave primaria en DEPARTAMENTOS:
WHERE.
FROM,
y la condicin
se
1.5.3.1 La equicombinacin
La equicombinacin (equireunin o equijoin) es una combinacin que en la condicin C solo tiene igualdades. Es especialmente importante porque permite obtener informacin relacionada por las claves ajenas de las tablas.
Se eliminarn las tuplas repetidas. Se entiende que en las dos relaciones no debe haber tuplas con la misma clave primaria y el resto de la informacin diferente.
Si tenemos dividida la informacin de los profesores antiguos y los nuevos en dos relaciones (por ejemplo, por motivos de rendimiento), pero queremos obtener un listado histrico de todos ellos, podemos utilizar el operador
UNION de SQL. SELECT * FROM PROFESORES UNION SELECT * FROM EX-PROFESORES El operador UNION requiere que
SELECT
sean del
mismo tipo segn el orden de aparicin. Si en una de las tablas este orden fuese diferente, habra que utilizar
http://cnx.org/content/m18351/1.1/
una proyeccin que alterase el orden. Los nombres de atributos de la nueva relacin sern los de la primera
SELECT.
El producto cartesiano raramente se utiliza en la prctica, pero es interesante conocerlo para diferenciarlo de la operacin de combinacin (join).
http://cnx.org/content/m18351/1.1/