Está en la página 1de 5

ALGEBRA RELACIONAL

El lgebra relacional es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como stas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Clculo relacional que es de tipo declarativo. Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y eficiente de dicha consulta. El lgebra relacional es un lenguaje terico con operaciones que se aplican a una o ms relaciones, con el fin de definir otra relacin, sin modificar las relaciones originales.

OPERACIONES FUNDAMENTALES DEL ALGEBRA RELACIONAL


El conjunto de operaciones para manipular las tuplas de las relaciones o tablas y el resultado de cada operacin es una nueva relacin que podemos manipular posteriormente. Operaciones: Seleccionar Proyectar Producto cartesiano Unin Diferencia Cada operador del lgebra acepta una o dos relaciones y retorna una relacin como resultado. y son operadores unarios, el resto de los operadores son binarios. Las operaciones bsicas del lgebra relacional son: Seleccin (): Permite seleccionar un subconjunto de tuplas de una relacin (R), todas aquellas que cumplan la(s) condicin(es) P, esto es: Ejemplo: Selecciona todas las tuplas que contengan Gmez como apellido en la relacin Alumnos. Una condicin puede ser una combinacin booleana, donde se pueden usar operadores como: , , combinndolos con operadores: .
Unidad 5 Algebra Relacional Fundamentos de Base de Datos Pgina 5

Proyeccin (): Permite extraer columnas (atributos) de una relacin, dando como resultado un subconjunto vertical de atributos de la relacin, esto es:

,,
Donde A1, A2,, An son atributos de la relacin R. Ejemplo:

,,_()
Selecciona los atributos Apellido, Semestre y Numero_Control de la relacin Alumnos, mostrados como un subconjunto de la relacin Alumnos. Producto cartesiano (x): El producto cartesiano de dos relaciones se escribe como:

Y entrega una relacin, cuyo esquema corresponde a una combinacin de todas las tuplas de R con cada una de las tuplas de S, y sus atributos corresponden a los de R seguidos por los de S. Ejemplo: Muestra una nueva relacin, cuyo esquema contiene cada una de las tuplas de la relacin Alumnos junto con las tuplas de la relacin Maestros, mostrando primero los atributos de la relacin Alumnos seguidos por las tuplas de la relacin Maestros. Unin (): Produce el conjunto de todas las tuplas que pertenecen ya sea a R o a S o a Ambas. Al igual que en teora de conjuntos el smbolo representa aqu la unin de dos relaciones. R y S deben ser uniones compatibles. Diferencia (-): La diferencia de dos relaciones, R y S denotada por: Entrega todas aquellas tuplas que estn en R, pero no en S. R y S deben ser uniones compatibles. Estas operaciones son fundamentales en el sentido en que (1) todas las dems operaciones pueden ser expresadas como una combinacin de stas y (2) ninguna de estas operaciones pueden ser omitidas sin que con ello se pierda informacin.

OTRAS OPERACIONES DEL ALGEBRA RELACIONAL


Interseccin (): La operacin de interseccin permite identificar filas que son comunes en dos relaciones. Supongamos que tenemos una tabla de empleados y otra tabla con los asistentes que han realizado un curso de ingls (los asistentes pueden ser empleados o gente de la calle). Queremos crear una figura virtual en la tabla denominada "Empleados que hablan Ingls", esta figura podemos crearla realizando una interseccin de empleados y curso de ingls, los elementos que existan en ambas tablas sern aquellos empleados que han asistido al curso. La interseccin de dos relaciones se puede especificar en funcin de otrosoperadores bsicos: La interseccin, como en Teora de conjuntos, corresponde al conjunto de todas las tuplas que estn en R y en S, siendo R y S uniones compatibles. Reunin o JOIN(|x|): La reunin se utiliza para recuperar datos a travs de varias tablas conectadas unas con otras mediante clusulas JOIN, en cualquiera de sus tres variantes INNER, LEFT, RIGHT. La operacin reunin se puede combinar con las operaciones seleccin y proyeccin. Un ejemplo de reunin es conseguir los pedidos que nos han realizado los clientes nacionales cuyo importe supere 15.000 unidades de producto, generando un informe con el nombre del cliente y el cdigo del pedido. En este caso se da por supuesto que la tabla clientes es diferente a la tabla pedidos y que hay que conectar ambas mediante, en este caso, un INNER JOIN. Divisin: La operacin divisin es la contraria a la operacin producto y quizs sea la ms compleja de explicar, por tanto comenzar directamente con un ejemplo. Una determinada empresa posee una tabla de comerciales, otra tabla de productos y otra con las ventas de los comerciales. Queremos averiguar que comerciales han vendido todo tipo de producto.

Lo primero que hacemos es extraer en una tabla todos los cdigos de todos los productos, a esta tabla la denominamos
A.Tabla ACdigo Producto 1035 2241 2249 2518

En una segunda tabla extraemos, de la tabla de ventas, el cdigo del producto y el comercial que lo ha vendido, lo hacemos con una proyeccin y evitamos traer valores duplicados. El resultado podra ser el siguiente: Tabla B Cdigo Comercial Cdigo Producto
10 2241 23 2518 23 1035 39 2518 37 2518 10 2249 23 2249 23 2241

Si dividimos la tabla B entre la tabla A obtendremos como resultado una tercera tabla que: 1. Los campos que contiene son aquellos de la tabla B que no existen en la tabla A. En este caso el campo Cdigo Comercial es el nico de la tabla B que no existe en la tabla A. 2. Un registro se encuentra en la tabla resultado si y slo si est asociado en la tabla B con cada fila de la tabla ATabla Resultado Cdigo Por qu el resultado es 23? El comercial 23 es el nico de la tabla B que tiene asociados todos los posibles cdigos de producto de la tabla A.

ALGEBRA RELACIONAL EXTENDIDA


Las operaciones bsicas del lgebra relacional se han ampliado de varias maneras. Una ampliacin sencilla es permitir operaciones aritmticas como parte de la proyeccin. Una ampliacin importante es permitir operaciones de agregacin, como el clculo de la suma delos elementos de un conjunto, o su media. Otra ampliacin importante es la operacin reunin externa, que permite a las expresiones del lgebra relacional trabajar con los valores nulos que modelan la informacin que falta. Proyeccin generalizada La operacin proyeccin generalizada ampla la operacin proyeccin permitiendo que se utilicen funciones aritmticas en la lista de proyeccin. La operacin proyeccin generalizada tiene la forma: F1 ,F2,..., Fn (E) donde E es cualquier expresin del lgebra relacional y F1, F2, . . . , Fn son expresiones aritmticas. De forma trivial, la expresin aritmtica puede ser simplemente un atributo o una constante.

Funciones de agregacin Las funciones de agregacin son funciones que toman una coleccin de valores y devuelven como resultado un nico valor. Las funciones de agregacin ms habituales son sum (Suma), avg (Media aritmtica), count (nmero de elementos), min y max (Mnimo y mximo, respectivamente). Reunin externa La operacin reunin externa es una ampliacin de la operacin reunin para trabajar con la informacin que falta. Esta operacin tiene tres formas diferentes: reunin externa por la izquierda, denotada por |X, reunin externa por la derecha, denotada por X| y reunin externa completa, denotada por X. La reunin externa por la izquierda (|X) toma todas las tuplas de la relacin de la izquierda que no coincidan con ninguna tupla de la relacin de la derecha,las rellena con valores nulos en todos los dems atributos de la relacin de la derecha y las aade al resultado de la reunin natural. La reunin externa por la derecha (X|) es simtrica de la reunin externa por la izquierda. La reunin externa completa (X) realiza estas dos operaciones, rellenando las tuplas de la relacin de la izquierda que no coincidan con ninguna tupla de la relacin de la derecha y las tuplas de la relacin de la derecha que no coincidan con ninguna tupla de la relacin de la izquierda, y aadindolas al resultado de la reunin

VALORES NULOS
A menudo hay varias formas de tratar los valores nulos. Las operaciones y las comparaciones con valores nulos se deberan evitar siempre que sea posible. Dado que el valor especial nulo indica valor desconocido o no existente, cualquier operacin aritmtica que incluya valores nulos devolver un valor nulo. De manera similar, cualquier comparacin (como <, _, >, _ y, /) que incluya un valor nulo se evala al nuevo valor lgico desconocido. Las operaciones lgicas tratan los valores desconocidos tal y como se muestra en la siguiente tabla. A la hora de efectuar operaciones en el lgebra relacional que impliquen valores nulos, hay que tener en cuenta que las operaciones de proyeccin, unin, interseccin y diferencia tratan los valores nulos como cualquier otro valor al eliminar duplicados. Si dos tuplas del resultado de alguna de estas operaciones son exactamente iguales, y ambos tienen nulos en los mismos campos, se tratan como duplicados. La decisin es un tanto arbitraria porque sin saber cul es el valor real no se sabe si los dos valores nulos son duplicados o no. Para las funciones de agregacin, hay que tener en cuenta que cuando hay nulos en los atributos agregados, la operacin borra los valores nulos del resultado antes de aplicar la agregacin. Si el multiconjunto resultante est vaco, el resultado agregado ser nulo. Obsrvese que el tratamiento de los valores nulos aqu es diferente queen las expresiones aritmticas ordinarias.

OPERACIONES DE MODIFICACIONES A LA BASE DE DATOS


En este apartado se abordar la manera de insertar, borrar o modificar informacin de la base de datos. Borrado

Las solicitudes de borrado se expresan bsicamente igual que las consultas. Sin embargo, en lugar de mostrar las tuplas al usuario, se eliminan de la base de datos las tuplas seleccionadas. Slo se pueden borrar tuplas enteras; no se pueden borrar valores de atributos concretos. En el lgebra relacional los borrados se expresan mediante r r E, donde r es una relacin y E es una consulta del lgebra relacional. Insercin Para insertar datos en una relacin hay que especificar la tupla que se va a insertar o escribir una consulta cuyo resultado sea un conjunto de tuplas que vayan a insertarse. El valor de los atributos de las tuplas insertadas deben ser miembros del dominio de cada atributo y las tuplas insertadas deben ser de la clase correcta. En el lgebra relacional las inserciones se expresan mediante r rU E donde r es una relacin y E es una consulta del lgebra relacional. Actualizacin Puede que, en algunas situaciones, se desee modificar un valor de una tupla sin modificar todos los valores de la tupla. Se puede utilizar el operador proyeccin generalizada para realizar esta tarea: r F1, F2, ..., Fn(r), donde cada Fi es o bien el i-simo atributo de r, si el i-simo atributo no est actualizado, o unaexpresin que slo implique constantes y los atributos de r, y que del nuevo valor del atributo. Si se desea seleccionar varias tuplas de r y slo actualizar esas mismas tuplas, se puede utilizar la expresin siguiente, donde P denota la condicin de seleccin que escoge las tuplas que hay que actualizar:
Unidad 5 Algebra Relacional Fundamentos de Base de Datos Pgina 11