Es un lenguaje hasta cierto punto procedimental. Esta conformado por un conjunto de operaciones que permite al usuario especificar peticiones de recuperación. El resultado de una recuperación es una nueva relación, que se ha formado a partir de una o mas relaciones. Por lo tanto, las operaciones del álgebra producen nuevas relaciones que podrán manipularse mas adelante, utilizando operaciones de la misma álgebra Una secuencia de operaciones del álgebra relacional forma una expresión del álgebra relacional, cuyo resultado será también una relación. Las operaciones del álgebra relacional suelen clasificarse en dos grupos. Uno contiene el conjunto de operaciones de la teoría de conjuntos (es posible aplicarlas porque las relaciones se definen como conjunto de tuplas). Entre las operaciones de conjunto están la Unión, la Intersección, la Diferencia y el Producto cartesiano. El otro grupo consiste en operaciones creadas específicamente para bases de datos relacionales, incluye la Selección, la Proyección y la Reunión (Join) entre otras.
Ø Operación
selección
La operación de selección sirve para seleccionar un
conjunto de tuplas de una relación que satisfacen una condición de selección.
Se puede considerar la operación de selección como un filtro que mantiene
únicamente aquellas tuplas que satisfacen una condición de cualificación. Por
ejemplo, para seleccionar de la relación empleado los empleados que trabajan en
el departamento 2 o aquellos cuyo salario mínimo rebasa los 20,000. Podemos
especificar individualmente cada una de estas dos condiciones con la operación
selección como sigue:
σ Num – dept = 2 (Empleado)
σ salario > 20,000 (Empleado)
En general, denotamos la operación selección con
σ <condición de selección> (R)
Donde el símbolo σ (sigma) denota al operador selección,
y la condición de selección es una expresión booleana especificada en términos
de los atributos de la relación R. nótese que R normalmente es una expresión
del álgebra relacional cuyo resultado es una relación. La relación que resulta
de la operación selección tiene los mismos atributos que R. la expresión booleana especificada en la
condición de selección se compone de una o mas clausulas de la forma:
<nombre de atributo> <operador de
comparación> <valor constante>, o
<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> es normalmente uno de los
operadores (=, <, >, <=, >= ), y <valor constante> es un valor
constante del dominio del atributo. Las cláusulas pueden conectarse
arbitrariamente mediante los operadores booleanos AND, OR y NOT para formar
condiciones compuestas.
El operador selección es unario, s decir, se aplica a una
sola relación. Además, la operación de selección se aplica a cada tupla
individualmente, por ello las condiciones de selección no pueden aplicar a más
de una tupla. El grado de la relación resultante de una operación de selección
es el mismo que el de R.
Ø Operación proyección
Si pensamos en una relación como una tabla, la operación selección
selecciona algunas filas de la tabla y desecha otras. La operación proyección,
en cambio, selecciona ciertas columnas de la tabla y desecha las demás. Si solo
nos interesan ciertos atributos de una relación, usamos la operación proyección
para proyectar la relación sobre esos atributos únicamente. Por ejemplo, si
queremos hacer una lista con el nombre, apellidos y el salario de todos los
empleados, podemos usar la siguiente operación de proyección:
pi nombre, apellido1, apellido2, salario(Empleado)
La forma general de la operación proyección es:
pi <lista de atributos > (R)
Donde pi es el símbolo usado para representar la
operación proyección y <lista de atributo> es una lista de atributos de
la relación R. de nuevo nótese que R es, en general, una expresión de algebra
relacional cuyo resultado es una relación, lo cual en el caso mas simple es el
nombre de una relación. El resultado de una operación proyección contiene
únicamente los atributos especificados en la lista <lista de atributos> y
el mismo que aparecen en la lista. Por ello, su grado es igual al número de
atributos en la <lista de atributos>.
Si la lista de atributos solo contiene atributos no clave de R,
es probable que aparezcan tuplas repetidas en el resultado. La operación
proyección elimina cualquier tupla repetida, así que el resultado de la
operación proyección es un conjunto de tuplas y por tanto una relación valida.
Ø Operación renombrar
Para renombrar los atributos; basta con que incluyamos
una lista con los nuevos nombres de atributos entre paréntesis, como en el
siguiente ejemplo:
TEMP ← σ num – dept2 (Empleado)
R (Nomb – pila, Primer – apell, segundo – apell, sal) ← pi nombre, apellido1, apellido2, salario (TEMP)
Ø Operación de conjuntos
De las operaciones de conjuntos clásica, en el modelo
relacional se utilizan varias: Unión, Intersección, Diferencia y producto
cartesiano. Todas estas operaciones son binarias, es decir, se aplica a dos
conjuntos. Al adaptar estas operaciones al modelo relacional, en el caso de la
unión, la intersección y la diferencia, las dos relaciones de entrada deben ser
el mismo tipo de tuplas, esta condición se denomina compatibilidad con la unión
o unión compatibles. Se dice que dos relaciones R (A1, A2, …, An) y s (B1, B2,
…, Bn) son unión compatibles si ambas tienen el mismo grado n y si dom (Ai) =
dom (Bi) para 1 <= i <= n.
esto significa que las dos relaciones tienen el mismo numero de atributos y
cada par de atributos correspondientes tienen el mismo dominio.
Ø Operación producto cartesiano
También es una operación binaria de conjuntos, pero las
relaciones no tienen por qué ser unión compatible. El resultado del producto
cartesiano de R (A1, A2, …,An) x S (B1, B2, …, Bm) es una relación Q con n + M
atributos Q (A1, A2, …, An, B1, B2, …, Bm), en ese orden. La relación
resultante Q tiene una tupla por cada combinación de tuplas: una de R y una de
S. por lo tanto, si R tiene nR tuplas y S ns tuplas, R x S tendrá nR x ns
tuplas. Generalmente la operación de producto cartesiano por si sola no tiene
mucho sentido, pero combinada puede tener utilidad por ejemplo: si calculamos:
R1 ← Departamento x Locaciones_Dept
Resultado ← pi nombre_Dept, locación_Dept (σ Departamento.num_Dept = Locaciones_Dept_Numero_Dept (R1))
Tendremos las diferentes locaciones de un departamento
Ø Operación unión
El resultado de la operación, denotando por R U S, es una
relación que incluye todas las tuplas que están en R o en S o ambas. Las tuplas
repetidas se eliminan.
Emps – Dep2 ← σ
num – dept2 (Empleado)
Resultado1 ← pi NSS (EMPS – Dep2)
Resultado2 (NSS) ← pi supervisor (EMPS – Dep2)
Resultado ← Resultado1 U Resultado2
La relación
Resultado1 contiene los números de la seguridad social de todos los empleados
que trabajan en el departamento 2, y Resultado2
contiene los números de la seguridad social de todos los empleados que
supervisan directamente a empleados que trabajan en el departamento 2. La
operación unión produce las tuplas que están en Resultado1, en Resultado2 o en
ambas.
EJEMPLOS DE OPERACIONES
σ (Num-Dept=2 AND
Salario>35000) or (Num-Dept=1 AND Salario>25000)(EMPLEADO)
Pi Nombre, Apellido1, Apellido2, Salario (σ Num-Dept=2) (EMPLEADO)
Emps – Dep2 ← σ Num
– dept2 (Empleado)
Resultado1 ← Pi NSS (EMPS – Dep2)
Resultado2 (NSS) ← Pi Supervisor (EMPS – Dep2)
Resultado ←
Resultado1 U Resultado2
R1 ← Departamento x Locaciones_Dept
Resultado ← Pi Nombre_Dept, Locación_Dept (σ Departamento.num_Dept = Locaciones_Dept_Numero_Dept
(R1))
No hay comentarios:
Publicar un comentario