Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Operandos: objetos (valores o variables) desde los cuales nuevos objetos pueden ser construidos. Operadores: s mbolos que denotan nuevos objetos desde objetos dados.
El algebra relacional es un algebra en la cual
Sus operandos son relaciones (instancias) o variables que representan relaciones. Sus operadores est an dise nados para hacer la tareas m as comunes que se necesitan para manipular relaciones en una base de datos.
El resultado es que el algebra relacional se puede utilizar como un lenguaje de consulta. En la pr actica el algebra relacional debe ser extendida para abarcar la mayor parte de las tareas reales que se hacen con los datos. Estudiaremos en detalle los operadores cl asicos.
Tablas
Estas ser an las tablas que usaremos en la mayor a de ejemplos Empleado nombre Torres Soto P erez Figueroa Salas R os Campos Venegas Carcamo Gonzalez sueldo $ 1.200.000 $ 500.000 $ 300.000 $ 600.000 $ 1.500.000 $ 2.000.000 $ 800.000 $ 600.000 $ 500.000 $ 2.000.000 cod dept A1 A2 A2 A1 A1 A3 A2 A1 A2 A3 f echa ing 01/01/2004 01/01/2003 01/10/2003 01/03/2002 01/01/2002 01/06/2002 01/11/2003 01/06/2002 01/04/2003 01/10/2002
Departamento nombre Inform atica Marketing Ventas Recursos Humanos cod dept A1 A2 A3 A4 f echa creac 01/03/2002 01/01/2002 01/01/2001 01/01/2003
Selecci on
Operador de selecci on tuplas de una relaci on.
Tuplas seleccionadas son las que satisfacen cierto predicado l ogico P . El predicado puede depender de los atributos de la relaci on y de valores constantes. El operador toma una relaci on como argumento y el resultado es una nueva relaci on. Sintaxis:
P (r )
Seleccionar los datos del empleado Soto:
nombre=Soto(empleado)
nombre Soto sueldo $ 500.000 cod dept A2 f echa ing 01/01/2003
Los datos de los empleados con sueldo $500.000 que ingresaron despues del 2003:
Proyecci on
Operador de proyecci on , proyecta una relaci on sobre un subconjunto de sus atributos. El operador toma una relaci on como argumento y el resultado es una nueva relaci on. Sintaxis:
A (r ) nombre(departamento)
nombre Inform atica Marketing Ventas Recursos Humanos
donde A representa el conjunto de atributos sobre los que la relaci on r se proyectar a. Ejemplo: obtener los nombres de los distintos departamentos
sueldo(empleado)
sueldo $ 1.200.000 $ 500.000 $ 300.000 $ 600.000 $ 1.500.000 $ 2.000.000 $ 800.000 se eliminan los repetidos! una relaci on es un conjunto.
3
Composici on de Operaciones
El resultado de cada operaci on es una nueva relaci on se pueden aplicar operadores a los resultados de aplicaciones previas. Por ejemplo:
nombre( sueldo>1000000(empleado))
nombre Torres Salas R os Gonzalez Obtener el sueldo y la fecha de ingreso de Soto:
Uni on
Dado que las relaciones son conjuntos de tuplas, se pueden realizar las operaciones usuales de conjuntos como la uni on.
r1 r2
Se deben hacer ciertas restricciones para realizar la uni on:
Ambas relaciones deben tener el mismo n umero de atributos. El dominio del atributo i- esimo de cada relaci on debe coincidir.
Obtener los nombres de los empleados que ganan mas de $1.500.000 o que trabajan en el departamento con c odigo A1.
Diferencia
Tambi en se puede usar la diferencia de conjuntos, las tuplas que est an en una relaci on pero no en la otra.
r1 r2
Para poder realizar la diferencia se deben cumplir las mismas restricciones que para la uni on Ejemplo:
Producto Cartesiano
Representa al producto cartesiano usual de conjuntos. Combina tuplas de cualquieras dos (o m as) relaciones, hace la combinaci on de todos con todos. Si las relaciones a operar tienen N y M tuplas de n y m componentes respectivamente, la relaci on resultante del el producto cartesiano tiene N M tuplas de n + m componentes. Sintaxis: usamos notaci on inja
r1 r2
No hay restricciones a los dominios de las relaciones similares a las anteriores operaciones. Nos permite reunir datos de dos relaciones distintas. Cuidado con los nombres repetidos! se deben renombrar ciertos atributos para no tener porblemas. departamento departamento
nombre Inform atica Inform atica Inform atica Inform atica Marketing Marketing Marketing Marketing Ventas Ventas Ventas Ventas Rec. Hum. Rec. Hum. Rec. Hum. Rec. Hum. cd A1 A1 A1 A1 A2 A2 A2 A2 A3 A3 A3 A3 A4 A4 A4 A4 f ec creac 01/03/2002 01/03/2002 01/03/2002 01/03/2002 01/01/2002 01/01/2002 01/01/2002 01/01/2002 01/01/2001 01/01/2001 01/01/2001 01/01/2001 01/01/2003 01/01/2003 01/01/2003 01/01/2003 nombre Inform atica Marketing Ventas Rec. Hum. Inform atica Marketing Ventas Rec. Hum. Inform atica Marketing Ventas Rec. Hum. Inform atica Marketing Ventas Rec. Hum. cd A1 A2 A3 A4 A1 A2 A3 A4 A1 A2 A3 A4 A1 A2 A3 A4 f ec creac 01/03/2002 01/01/2002 01/01/2001 01/01/2003 01/03/2002 01/01/2002 01/01/2001 01/01/2003 01/03/2002 01/01/2002 01/01/2001 01/01/2003 01/03/2002 01/01/2002 01/01/2001 01/01/2003 7
depto.nombre( emp.nombre=Soto
Renombre
A veces necesitamos obtener informaci on uniendo datos de la misma tabla. Por ejemplo, obtener los nombres de todos los empleados que ingresaron despu es que Soto a la empresa. Primer intento: empleado (
C omo nos referimos a una u otra instancia de la tabla empleado? El operador de renombre
El operador toma una relaci on y entrega la misma relaci on pero con otro nombre, podemos referirnos a distintas instancias de la misma relaci on. Sintaxis:
x (r )
Volviendo al ejemplo, obtener los nombres de todos los empleados que ingresaron despu es que Soto a la empresa, segundo intento: empleado (
nombre=Soto(empleado2(empleado))
empleado.nombre( empleado.f echa ing>empleado2.f echa ing (empleado ( nombre=Soto (empleado2 (empleado))))
Toda relaci on de la base de datos es una expresi on. Si E1 y E2 son expresiones entonces las siguientes tambi en son expresiones:
E1 E2 E1 E2 E1 E2
P (E1) donde P es un predicado con atributos de E1 A(E1) donde A es una lista de atributos de E1 x(E1) donde x es el nuevo nombre de la relaci on E1.
Cada expresi on generada por las reglas anteriores tiene como resultado una relaci on. Toda relaci on resultado de una expresi on en el algebra relacional se puede ver como un arbol donde cada nodo interno est a etiquetado por una operaci on:
Las hojas son relaciones efectivas de la base de datos. La relaci on representada por un arbol es la relaci on que resulta de aplicar la operaci on etiquetada en su ra z a las relaci on representadas por cada uno de los sub arboles hijos.
Por ejemplo la relaci on resultante de (
depto.nombre( emp.nombre=Soto
Est a representada por el siguiente arbol (en la pizarra...) A veces es m as c omodo representar expresiones extensas usando arboles.
10
r1 r2
Se deben cumplir las mismas restricciones que en la uni on y diferencia, los atributos de la relaciones involucradas deben tener los mismos dominios. La intersecci on se puede crear a partir de la diferencia:
r 1 r 2 = r 1 (r 1 r 2 )
Ejemplo:
Reuni on Natural(Join)
Hace un producto cartesiano de sus dos argumentos y realiza una selecci on forzando la igualdad de atributos que aparecen en ambas relaciones. Elimina repetidos (como toda operaci on de conjuntos). Sintaxis:
r1 r2
Ejemplo: listar todos los empleados y el nombre del departamento en el que trabajan
emp.nombre,dept.nombre(empleado departamento)
empleado.nombre Torres Soto P erez Figueroa Salas R os Campos Venegas Carcamo Gonzalez departamento.nombre Inform atica Marketing Marketing Inform atica Inform atica Ventas Marketing Inform atica Marketing Ventas
12
Join en General
Un forma m as general de hacer Join es especicando una propiedad de reuni on. Se hace entonces un producto cartesiano de las dos relaciones y se realiza una selecci on forzando una propiedad m as general que la igualdad de atributos que aparecen en ambas relaciones. Sintaxis:
r1 P r2
donde P es la propiedad de reuni on. Ejemplo: listar todos los pares de nombres de empleados y departamentos tales que el empleado ingres o a la empresa en una fecha anterior a la de creaci on del departamento
empleado (f echa
emp.nombre,depto.nombre(
ing<f echa creac)
departamento)
13
Relaciones Temporales
A veces las consultas se hacen muy extensas. Una forma de simplicarlas es usando relaciones temporales y asign andoles expresiones para usar despu es: r E asigna la expresi on de algebra relaciones E a la nueva relaci on r . Ejemplo: temp sueldo>500000 (empleado departamento) empleado.nombre,departamento.nombre(temp) El ultimo resultado son los nombres de empleados y el departamento en el que trabajan tales que el sueldo del empleado es mayor a $500.000.
14
16
19
20
Actualizaci on A veces queremos cambiar el valor de alg un atributo de una tupla sin cambiarla entera. Podr a hacerse una eliminaci on e inserci on, pero resulta engorrosos muchas veces. Usamos un nuevo operador (no reasignamos!): AE (r ) que representa el hecho de cambiar el atributo A por la expresi on matem atica E en la relaci on r . Subir el sueldo de todos los empleados en %10 si su sueldo actual es mayor que $1.000.000 y en %20 si es menor sueldosueldo1,1 (sueldo1000000 (empleado)) sueldosueldo1,2 (sueldo<1000000 (empleado))
21