Академический Документы
Профессиональный Документы
Культура Документы
Objetivo General
Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna
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:
Asignatura: Base de Datos y Sistemas Distribuidos - Universidad Nacional Jorge Basadre Grohmann de Tacna
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
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
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
FIGURA 2: Relacin prstamo Fuente: Silberschatz, A., Korth, H.F., & Sudarshan S. (2007)
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
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)
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
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
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
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
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
Ejercicios calificados
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.
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
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
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