Algebra Relacional
Algebra Relacional
Algebra Relacional
Contenido
Operaciones Fundamentales
Operaciones Adicionales
Algebra Relacional
Operaciones Fundamentales
Conjunto de operaciones que toman como argumentos relaciones y retornan una nueva relaci on. Las operaciones fundamentales del Algebra relacional son: Selecci on Proyecci on Uni on Diferencia Producto cartesiano Renombramiento
Algebra Relacional
Selecci on
Selecci on de tuplas dado un predicado l ogico. Por ejemplo, valor >10codigo <500 (Productos ) selecciona los productos cuyo valor es mayor a 10 y su codigo menor a 500. En SQL:
Algebra Relacional
Proyecci on ( )
Selecci on de uno o varios atributos de una relaci on. Por ejemplo codigo (Productos ) retorna todas las tuplas de productos pero solo con el atributo codigo . En SQL:
Algebra Relacional
Composici on
Composici on: Combinaci on de dos o mas operadores del Algebra relacional. Por ejemplo codigo valor >10codigo <500 (Productos ) Expresi on de A.R: Composici on de varias operaciones de A.R
Algebra Relacional
Uni on ()
Uni on de conjuntos de tuplas. Por ejemplo cc ,saldo (ctas corriente ) cc ,saldo (ctas ahorro ) retornar a el conjunto 1 de los saldos y c edulas de las cuentas de ahorros y de cr edito. En SQL:
sin repetici on
Algebra Relacional
Diferencia de Conjuntos ()
Diferencia de Conjuntos de tuplas. Por ejemplo codigo (Estudiantes ) est codigo mat codigo = CC 080 (Matriculas ) selecciona los estudiantes que no han matriculado la materia CC 080. En SQL
SELECT CODIGO FROM ESTUDIANTES MINUS SELECT EST_CODIGO FROM MATRICULAS WHERE MAT_CODIGO = CC080;
Algebra Relacional
Producto Cartesiano ()
Producto cartesiano entre Conjuntos de tuplas. Por ejemplo Estudiantes Cursos retornar a la combinaci on entre cada estudiante en Estudiantes con todos los cursos en la relaci on Cursos . En SQL:
Algebra Relacional
Renombramiento ()
Cambio del nombre de una relaci on y/o sus atributos. Por ejemplo emp(c ,n,t ) (cod ,nom,tel Empleado ) retorna una relaci on con nombre emp y atributos (c , n, t ). En SQL se hace uso de alias para implementar el renombramiento, por ejemplo:
Algebra Relacional
Operaciones Adicionales
A partir de las operaciones fundamentales del Algebra relacional, es posible generar nuevas que aunque no aumentan poder de expresi on si facilitan la escritura de consultas habituales. Entre estas operaciones est an: Intersecci on, Reuni on natural, zeta y externa, divisi on, etc.
Algebra Relacional
Intersecci on de Conjuntos ()
Algebra Relacional
Reuni on Natural ( )
Producto cartesiano pero existe el criterio de reuni on dado por los atributos comunes r s = R S (r .a1=s .a1...r .an=s .an r s )
Algebra Relacional
Reuni on Zeta (
s = (r s )
Por ejemplo, p.nombre ,c .nombre (p (Profesor ) p.codigo =c .pro codigo c (Curso )) retorna una relaci on que contiene el nombre de cada profesor y sus respectivos cursos a cargo. En SQL:
Algebra Relacional
Realiza el join pero si no hay match genera un valor nulo. Es u til cuando el atributo FK puede ser nulo. Por ejemplo, si no todos los cursos del ejemplo anterior tienen un profesor asignado, se debe utilizar la siguiente expresi on: nombre (Profesor ) =P .codigo =C .Pro codigo nombre (Curso ) En SQL : SELECT P.NOMBRE, C.NOMBRE FROM PROFESORES P, CURSOS C WHERE C.PRO_CODIGO = P.CODIGO(+);
Algebra Relacional
Asignaci on ()
Asignaci on como en un lenguaje de programaci on: r1 codigo ,nombre (Profesores ) r2 nombre ,pro codigo (Cursos ) r3 r1 r1 .codigo =r2 .pro codigo r2 r4 r1 nombre ,r2 nombre (r3 )
Algebra Relacional
Divisi on (r s )
Est a en el esquema R S y son las tuplas de r que est an relacionadas con todas las tuplas de s . Formalmente, sea r (R ) y s (S ) relaciones y S R , r s es una relaci on del esquema R S y t r s si:
1 2
tr [S ] = ts [S ] rt [R S ] = t
Algebra Relacional
Funciones de agregaci on
Son funciones que toman un conjunto de valores y retornan un valor u nico seg un un criterio de agrupamiento. Condiciones:
1
Todas las tuplas del grupo tienen los mismos valores para g 1..gn Las tuplas de diferentes grupos tienen valores distintos para g 1..gn
Algebra Relacional
Continuaci on...
Ejemplo: mat codigo ,periodo G count (mat codigo ) (Matricula) cuenta por cada c odigo de materia y per odo los alumnos matriculados. En SQL:
Algebra Relacional
Continuaci on...
Para contar el total de alumnos de la universidad: Gcount (codigo ) (Estudiantes ). En SQL SELECT COUNT(CODIGO) FROM ESTUDIANTES; Para calcular el promedio de notas de cada grupo por cada per odo: mat codigo ,periodo Gavg (nota) (Matricula). En SQL: SELECT MAT_CODIGO, PERIODO, AVG(NOTA) PROMEDIO FROM MATRICULAS GROUP BY MAT_CODIGO, PERIODO;
Algebra Relacional
Ejercicio
Dado el siguiente esquema de B.D: Producto (cod , nombre , precio ) Ciudad (cod , nombre ) Cliente (cc , Nombre , ciu cod ) Sucursal (cod , nombre , ciu cod ) Factura(Num, suc cod , Fecha, Cli Cod ) Detalle (Fac Num, Fac Suc Cod , Pro Cod , Cant , Unit )
Algebra Relacional
continuaci on...
Escribir las siguientes consultas en A.R
1
Seleccionar los N umeros de factura con su respectivo nombre de sucursal Seleccionar los clientes que no han sido registrados en ninguna factura Seleccionar todos los clientes junto con sus facturas (si las tiene) Seleccionar el total de facturas del mes X Seleccionar el total de facturas por sucursal del mes X Seleccionar el producto mas vendido Seleccionar el producto mas vendido por sucursal Encontrar el o los clientes que han comprado en todas las sucursales Encontrar los clientes que solo han comprado en la sucursal X
Carlos A. Olarte ([email protected]) BDI Algebra Relacional
4 5 6 7 8