miércoles, 12 de diciembre de 2012

Base de Datos Distribuidas

Álgebra Relacional 

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