Вы находитесь на странице: 1из 16

INSTITUTO TECNOLOGICO DE ACAPULCO FUNDAMENTOS DE BASE DE DATOS

ALGEBRA RELACIONAL
El algebra 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 relacin. Las operaciones fundamentales del algebra relacional son seleccin, proyeccin, unin, diferencia de conjuntos, producto cartesiano y renombramiento. Adems de las operaciones fundamentales hay otras apreciaciones, por ejemplo, interseccin de conjuntos, reunin natural, divisin y asignacin. Estas operaciones se definirn en funcin de las operaciones fundamentales.

OPERACIONES FUNAMENTALES
Las operaciones seleccin, proyeccin y renombramiento, se denominan operaciones unarias, porque operan sobre una sola relacin.
Las otras tres operaciones operan sobre pares de relaciones y se denominan por lo tanto operaciones binarias.

La operacin SELECCIN
La operacin seleccin, selecciona tuplas que satisfacen un predicado dado. Se utiliza la letra griega sigma minscula () para denotar la seleccin. El predicado aparece como subndice de . La relacin del argumento se da entre parntesis a continuacin de . Por tanto para seleccionar las tuplas de la relacin Salarios en que la sucursal es <<Estel>>, hay que escribir: NomSuc = << Estel>>(Salarios)

El resultado del primer ensayo de seleccin seria:

Se pueden buscar todas las tuplas donde el salario devengado sea mayor a C$7,000 escribiendo:

Salario>7000 (Salarios),

y el resultado sera el siguiente:

En general se permiten las comparaciones que utilizan =, , <, , >, o en el predicado de seleccin. Adems se pueden combinar varios predicados en uno mayor usando las conectivas y () y o (V). por tanto, para encontrar las tuplas correspondientes a la sucursal Estel, con salarios mayores a 7,000 hay que escribir: y el resultado sera el siguiente:

NomSuc = << Estel>>

Salario > 7000

(Salarios)

En el caso que el predicado de la operacin de seleccin no genere ninguna tupla el resultado de la seleccin ser un valor especial nulo que expresa valor desconocido o inexistente y se evalua como falso, por elemplo:

NomSuc = << Estel>>

Salario > 8500

(Salarios)

Supngase que se desea imprimir una lista determinada en las que no interesan algunos datos como cdigo de empleado, cdigo de sucursal, ni el salario. La operacin de proyeccin permite producir esta relacin. La operacin de proyeccin es una operacin unaria que devuelve su relacin de argumentos excluyendo algunos argumentos. Dado que las relaciones son conjuntos se eliminan todas las filas duplicadas. La operacin de proyeccin se denota por la letra mayscula pi (). Se crea la lista de atributos que se desea que aparezcan en el resultado como subndice de . La relacin de argumentos se escribe a continuacin entre parntesis. Por tanto; la consulta para crear una lista de todos los empleados y sucursales puede escribirse como:

La operacin PROYECCIN

NomSuc, Empleado (Salarios)


Resultado:

Composicin de operaciones relacionales


Es importante el echo de que el resultado de una operacin relacional sea tambin una relacin. Considrese una relacin mas compleja, Encontrar los empleados de la sucursal de Estel, en este caso habra que escribir:

Empleado (NomSuc = << Estel>>(Salarios))


Tngase en cuenta que, en vez de dar el nombre de una relacin en el argumento de la operacin proyeccin se da una expresin que se evalua como una relacin. Dado que las operaciones de algebra relacional se aplican a relaciones y estas a su vez dan como resultado una nueva relacin, las expresiones de algebra relacional pueden combinarse para formar una expresin de algebra relacional.

La operacin UNION
Considerese la relacin Incentivos

y la relacin Antigedad:

Se desea generar una lista que muestre los empleados que perciben ingresos por incentivos, antigedad o ambos. Se puede observar que ambas relaciones no satisfacen completamente la lista a generar. No obstante se conoce la manera de generar la lista de empleados de la relacin incentivos: Empleado (Incentivos) de igual manera en la relacin Antigedad: Empleado (Antigedad).

Para generar una lista que contenga ambos listados es necesario la operacin unin, de estos dos conjuntos; es decir, hacen falta todos los nombres de los empleados que aparecen en alguna de las dos relaciones o en ambas. Estos datos se pueden averiguar mediante la operacin binaria unin, denotada igual que en la teora de conjuntos por U. por tanto la expresin buscada es:

Empleado (Incentivos) U Empleado (Antigedad)


y el resultado mostrara lo siguiente:

Cabe sealar que la operacin de unin que efectuamos se dio entre dos relaciones que son compatibles, es decir que poseen el mismo tipo de dominio, como lo es Empleado, no tendra sentido tratar de hacer una operacin de unin entre el dominio empleado de la relacin incentivo, con el dominio NomSuc de la relacin Salarios. Adems se debe tomar en cuenta el numero de campos de la relacin, en el caso de incentivos tiene dos campos, mientras que Salarios tiene cinco campos. Por tanto para que la relacin que una operacin unin rUs sea vlida hay que exigir que se cumplan dos condiciones: Las relaciones r y s deben ser de la misma aridad. Es decir, deben tener el mismo nmero de atributos. Los dominios de los atributos i-esimos de r y de s deben ser iguales para todo i.

La operacin DIFERENCIA DE CONJUNTOS

La operacin diferencia de conjuntos denotada por el operador aritmtico -, permite buscar las tuplas que estn en una relacin pero no en otra. La expresin r-s da como resultado una relacin que contiene las tuplas que estn en r pero no estn en s. Se pueden buscar todos los empleados que no tengan incentivos, o antigedad, escribiendo:

Empleado (Salarios) - Empleado (Incentivos)

Empleado (Salarios) - Empleado (Antigedad)

La operacin PRODUCTO CARTESIANO


La operacin producto cartesiano denotada por una x permite combinar informacin de dos relaciones cualquiera. El producto cartesiano de las relaciones r1 y r2 esta dado por r1 x r2. Recurdese que las relaciones se definen como subconjuntos del producto cartesiano de un conjunto de dominios. Dado que en este tipo de relaciones puede existir el mismo nombre de dominio en ambas relaciones como lo es Empleado, en las relaciones Incentivos, Antigedad, hay que crear un esquema de denominaciones para distinguir entre ambos atributos. En este caso se logra adjuntando al atributo (dominio), el nombre de la relacin de la que proviene originalmente. Por ejemplo, el esquema de la relacin r= Incentivo x Antigedad es:
(Incentivo.Empleado, Incentivo.Incent, Antigedad.Empleado, Antigedad.Antig) El acuerdo de denominaciones precedente exige que las relaciones que sean argumentos de la operacin de producto cartesiano tengan nombres diferentes. Esta exigencia causa problemas en algunos casos, como cuando se desea calcular el producto cartesiano de una relacin consigo misma. Se produce un problema similar si se utiliza el resultado de una expresin del algebra relacional en un producto cartesiano, dado que har falta un nombre para la relacin para poder hacer referencia a sus atributos.

La operacin RENOMBRAMIENTO
A diferencia de las relaciones de la base de datos, los resultados de las expresiones de algebra relacional, no tienen un nombre que se pueda utilizar para referirse a ellas. Resulta til poder ponerles nombre: el operador renombramiento, denotado por la letra griega rho minscula (), permite realizar esta tarea. Dada una expresin E, se le puede resignar un nombre x mediante la siguiente expresin:

x(E)
devuelve el resultado de la expresin E, con el nombre de x. las relaciones r por si mismas se consideran expresiones (triviales), del algebra relacional. Por tanto, tambin se puede aplicar la operacin renombramiento a una relacin r para obtener una misma relacin con un nombre nuevo, de esa manera podemos darle una solucin al problema del producto cartesiano cuando intentamos aplicar esta operacin con la misma relacin. Por ejemplo: Incentivo x Incentivo2(Incentivo) Otra forma de la operacin de renombramiento es la siguiente. Supngase que una expresin de algebra relacional E tiene aridad n. Por tanto, la expresin :

x(A1, A1, An)(E)


Devuelve el resultado de la expresin con el nombre x, y los atributos con el nombre cambiado a A1, A1, An respectivamente.

OPERACIN INTERSECCION DE CONJUNTOS


La interseccin de conjuntos () comunes a dos

relaciones, por ejemplo encontrar los clientes que tienen unacuenta y un prstamo en una sucursal sera:
nombre_cliente( nombre_sucursal=Nombre(prstamo) nombre_cliente( nombre_sucursal=nombre (depsito))

Cualquier expresin del lgebra relacional que use la

interseccin de conjuntos puede reescribirse sustituyendo laoperacin interseccin por un par de operaciones diferencia de conjuntos: r s = r-(r-s). As, la interseccin de conjuntos no es una operacin fundamental y no aade potencia al lgebra.

OPERACIN REUNION NATURAL


Tpicamente, una consulta que implica un producto cartesiano incluye

una operacin de seleccin en elresultado del producto. Considrese la consulta encontrar a todos los clientes que tiene un prstamo y las ciudades enlas que viven. Primero formamos el producto cartesiano de las relaciones prstamo y cliente, despus seleccionamosaquellas tuplas que presenten un nico nombre_cliente.
prstamo.nombre_cliente, ciudad_cliente ( prestamo.nombre_cliente=cliente.nombre_cliente (prstamo x cliente))

OPERACIN DIVISION
La operacin divisin () se establece para aquellas

consultas que incluyen la frase para todos2. Supngase que queremos encontrar a todos los clientes que tienen una cuenta en todas las sucursales que estn en Brooklyn. Podemos obtener todas las sucursales en Brooklyn mediante:
r1=nombre_sucursal( ciudad_sucursal=Brooklyn(depsito)

OPERACIN DE ASIGNACION
A veces es conveniente escribir una expresin del lgebra relacional por

partes usando la asignacin a una variable de relacin temporal. La operacin asignacin (), funciona de forma parecida a la asignacin de los lenguajes de programacin. La evaluacin de una asignacin no da como resultado una relacin que se presenta al usuario, ms bien, el resultado de la expresin a la derecha de es asignado a la variable de relacin de la parte izquierda. Esta variable de relacin puede usarse en subsiguientes expresiones. Con la operacin asignacin, una consulta puede escribirse como un programa secuencial que consta de una serie de asignaciones seguidas de una expresin cuyo valor se presenta como el resultado de la consulta. En lgebra relacional, la asignacin debe hacerse siempre a una variable de relacin temporal. Es importante observar que la operacin de asignacin no proporciona potencia adicional al lgebra, es una forma conveniente de expresar consultas complejas de forma ms sencilla

Вам также может понравиться