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

Tema: lgebra Relacional

Asignatura : Base de Datos y Sistemas Distribuidos


Fecha de la sesin de clase: Lunes 18 de Abril del 2011 Este archivo tiene: 27 diapositivas
Ing. Edgar Taya Acosta Universidad Nacional Jorge Basadre Grohmann de Tacna

Objetivo General

Reconocer y aplicar el lgebra relacional mediante sus concepciones bsicas.

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

Competencias
Identifica los operadores del lgebra relacional. Forma consultas con el algebra relacional. Combina operadores para realizar consultas complejas de recuperacin de datos.

Ejemplo Motivacional

En la siguiente aplicacin:

FIGURA 1: Ventana de aplicacin Deuda del Abonado Fuente: Elaboracin Propia.

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

Como podemos apreciar en la Figura 1, se ingresa el nmero telefnico de un abonado y luego si presionamos el botn Ver Deuda nos muestra la deuda en soles segn su consumo de llamadas.

En realidad se invoca al procedimiento almacenado llamado DeudaXAbonado cmo podemos apreciar en el cdigo 1, con el argumento @nume, que es el nmero que ingresamos en la caja de texto.

CDIGO 1: Cdigo fuente en Visual Basic de la aplicacin Deuda del Abonado Fuente: Elaboracin propia

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

El procedimiento almacenado tiene el siguiente cdigo:

CDIGO 2: Cdigo fuente en Transact-SQL 2005 del procedimiento almacenado denominado DeudaXAbonado Fuente: Elaboracin propia

Como vern es una consulta en SQL donde tenemos un SELECT FROM WHERE (Operador de seleccin) una funcin de agregado SUM con una clusula GROUP BY (Proyeccin generalizada y funciones de agregacin), su expresin algebraica es la siguiente: nro_telefonico, nro_telefonico Gsum(importe) as deuda (Deudas.nro_telefonico =@nume (Deudas))

Ahora que ya sabemos que hay detrs de una simple aplicacin entendemos la importancia de conocer los fundamentos de los lenguajes de consulta en este caso particular del lgebra relacional.

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

EL LGEBRA RELACIONAL

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

Operaciones fundamentales 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 prstamo en que la sucursal es Navacerrada hay que escribir nombre-sucursal = Navacerrada (prstamo)

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

Si la relacin prstamo es como se muestra:

FIGURA 2: Relacin prstamo Fuente: Silberschatz, A., Korth, H.F., & Sudarshan S. (2007)

Entonces la relacin que resulta de la consulta anterior es como se muestra en la Figura 3.

FIGURA 3 Resultado de nombre-sucursal = Navacerrada (prstamo) Fuente: Silberschatz, A., Korth, H.F., & Sudarshan S. (2007).

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

La operacin proyeccin Supngase que se desea hacer una lista de todos los nmeros de prstamo y del importe de los mismos, pero sin que aparezcan los nombres de las sucursales. La operacin proyeccin permite producir esta relacin. La operacin 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 proyeccin se denota por la letra griega mayscula pi (). Se crea una lista de los 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 nmeros de prstamo y del importe de los mismos puede escribirse como nmero-prstamo, importe(prstamo)

La relacin que resulta de esta consulta se muestra en la Figura 4.

FIGURA 4. Nmeros de prstamo y sus importes. Fuente: Silberschatz, A., Korth, H.F., & Sudarshan S. (2007)

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

Funciones de agregacin Las funciones de agregacin son funciones que toman una coleccin de valores y devuelven como resultado un nico valor. Por ejemplo, la funcin de agregacin sum toma un conjunto de valores y devuelve la suma de los mismos. Por tanto, la funcin sum aplicada a la coleccin {1, 1, 3, 4, 4, 11} devuelve el valor 24. La funcin de agregacin avg devuelve la media de los valores. Cuando se aplica al conjunto anterior devuelve el valor 4. La funcin de agregacin count devuelve el nmero de elementos del conjunto, y devolvera 6 en el caso anterior. Otras funciones de agregacin habituales son min y max, que devuelven el valor mnimo y el mximo de la coleccin; en el ejemplo anterior devuelven 1 y 11, respectivamente.

Las colecciones en las que operan las funciones de agregacin pueden tener valores repetidos; el orden en el que aparezcan los valores no tiene importancia. Estas colecciones se denominan multiconjuntos. Los conjuntos son un caso especial de los multiconjuntos, en los que slo hay una copia de cada elemento. Para ilustrar el concepto de agregacin se utilizar la relacin trabajo-por-horas descrita en la Figura 21, que muestra los empleados a tiempo parcial. Supngase que se desea averiguar la suma total de los sueldos de los empleados del banco a tiempo parcial. La expresin del lgebra relacional para esta consulta es: Gsum(sueldo) (trabajo-por-horas)

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

FIGURA 21. La relacin trabajo-por-horas. Fuente: Silberschatz, A., Korth, H.F., & Sudarshan S. (2007)

El smbolo G es la letra G en el tipo de letra caligrfico; se lee G caligrfica. La operacin del lgebra relacional G significa que se debe aplicar agregacin, y el subndice indica la operacin de agregacin a aplicar. El resultado de la expresin anterior es una relacin con un nico atributo, que contiene una sola fila con un valor correspondiente a la suma de los sueldos de todos los trabajadores que trabajan en el banco a tiempo parcial. Hay casos en los que se deben borrar los valores repetidos antes de calcular una funcin de agregacin. Si se desean borrar los valores repetidos hay que utilizar los mismos nombres de funciones que antes, con la cadena de texto distinct precedida de un guin aadida al final del nombre de la funcin (por ejemplo, count-distinct). Un ejemplo se da en la consulta Averiguar el nmero de sucursales que aparecen en la relacin trabajo-por-horas. En este caso, el nombre de cada sucursal slo se cuenta una vez, independientemente del nmero de empleados que trabajen en la misma. Esta consulta se escribe de la manera siguiente: Gcount-distinct(nombre-sucursal) (trabajo-por-horas)

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

Para la relacin mostrada en la Figura 21 el resultado de esta consulta es el valor 3. Supngase que se desea hallar la suma total de sueldos de todos los empleados a tiempo parcial en cada sucursal del banco por separado, en lugar de hallar la suma de sueldos de todo el banco. Para ello hay que dividir la relacin trabajo-por-horas en grupos basados en la sucursal y aplicar la funcin de agregacin a cada grupo. La expresin siguiente obtiene el resultado deseado utilizando el operador de agregacin G:
nombre-sucursal

Gsum(sueldo) (trabajo-por-horas)

El atributo nombre-sucursal subndice a la izquierda de G indica que la relacin de entrada trabajo-por-horas debe dividirse en grupos de acuerdo con el valor de nombre-sucursal. Los grupos resultantes se muestran en la Figura 22.

FIGURA 22. La relacin trabajo-por-horas despus de la agrupacin. Fuente: Silberschatz, A., Korth, H.F., & Sudarshan S. (2007)

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

La expresin sum(sueldo) en el subndice derecho de G indica que, para cada grupo de tuplas (es decir, para cada sucursal) hay que aplicar la funcin de agregacin sum al conjunto de valores del atributo sueldo. La relacin resultante consiste en las tuplas con el nombre de la sucursal y la suma de los sueldos de la sucursal, como se muestra en la Figura 23.

FIGURA 23. Resultado de nombre-sucursal Gsum(sueldo) (trabajo-por-horas) Fuente: Silberschatz, A., Korth, H.F., & Sudarshan S. (2007)

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

Indicadores para medir las competencias adquiridas en clase


COMPETENCIA Identifica los operadores del lgebra relacional. Cuestionario INDICADOR ESCALA 3. Optimo 2. En proceso 1. Deficiente.

Forma consultas con el algebra relacional.

Ejercicios calificados

3. Optimo 2. En proceso 1. Deficiente.

Combina operadores para realizar consultas complejas de recuperacin de datos.

Trabajo prctico encargado Diseo de consultas con lgebra relacional

3. Optimo 2. En proceso 1. Deficiente.

Actividades para el alumnos

Trabajo de lectura:

Para la prxima clase leer lo siguiente: Silberschatz, A., Korth, H.F., & Sudarshan S. (2007). Fundamentos de Diseo de Bases de Datos. (5ta Edicin, pp. 36-59 ). Madrid: McGraw-Hill/Interamericana. Luego de la lectura subir un ensayo en el Saln virtual () con plazo mximo el 14 de Junio del 2011.

Actividades en el entorno virtual de aprendizaje http://edgartaya.host22.com/salonvirtual:


Resolver el cuestionario. Enviar los ejercicios resueltos. Desarrollar y remitir el trabajo prctico. Participar en el foro de discusin del tema.

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

Conclusiones

El alumno logr reconocer y aplicar el lgebra relacional mediante sus concepciones bsicas.

Bibliografa

De Miguel, A., Piattini, M. & Marcos, E. (2000). Diseo de Bases de Datos Relacionales. (1ra Edicin). Madrid: AlfaOmega Grupo Editor. Mannino, M. (2007). Administracin de bases de datos: Diseo y desarrollo de aplicaciones. (3ra Edicin). Mxico DF: McGraw-Hill/Interamericana Editores. Silberschatz, A., Korth, H.F., & Sudarshan S. (2007). Fundamentos de Diseo de Bases de Datos. (5ta Edicin, pp. 36-59). Madrid: McGrawHill/Interamericana.

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

Tema: lgebra Relacional

Seor, ensame lo que tengo que ensear, ensame lo que aun tengo que aprender. Ensame el conocimiento de tu voluntad y la sabidura para ponerle en prctica San Agustn, Conf. 13; In Joan 40,10

Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna

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