ProcedimientosBloque..

Anuncio
taller de base de datos
Procedimientos y bloques anónimos PL/SQL.
1. Desarrollar un procedimiento almacenado que permita insertar un registro en en la
tabla sección previo a insertar deberá verificar que el numero de secciones asignadas
al profesor no sobrepase las 8 secciones. (mensaje “numero de secciones
sobrepasadas”) (3 ptos).
2. Desarrollar un procedimiento almacenado que permita borrar asignaciones de un
alumno (tabla se_asigna), deberá verificar que el numero de secciones no baje de 2
asignaciones por alumno (3 ptos).
3. Desarrollar un procedimiento almacenado que permita mostrar las secciones que tiene
asignado un profesor, ademas deberá de contar el numero de asignaturas que imparte
esto ultimo será un parámetro de salida del procedimiento(out) (4 ptos).
4. Realizar un bloque anónimo que permita catalogar a un profesor según el numero de
asignaturas que imparte (deberá de utilizar el procedimiento anterior) (4 ptos).
• Si el numero de asignaturas que imparte es superior a 4 “sobrecargado”
• Si el numero de asignaturas que imparte es menor a 4 y superior a 2
normal”.
• Si el numero de asignaturas es menor o igual a 2 “Baja carga”.
“Carga
5. Desarrollar un procedimiento que permita calcular el pago por asignatura que recibe un
profesor, este pago va a depender de las horas semanales de la asignatura y el
numero de semestres que se imparte (tabla asignatura), tener en cuenta que el
profesor puede tener mas de una sección para la misma asignatura (tabla sección). el
precio por hora deberá ser una constante ($8000) al igual las semanas por semestre
(16), solo recibirá por parámetro el código de la asignatura y la cédula del profesor (6
ptos).
• Numsec * ( (Horassem * precioporhora) * ( semestre * semanasporsemestre ) )
!
!
ej: Profesor Marta Medina
!
Cédula:4567890
!
Asignatura: AA0001
!
Numero secciones : 2
!
Horas semanales: 8
!
Semestre : 1!
!
Calculo : 2 * ( (8 * 8000) * (1 *16) )
6. Al ejercicio anterior agregar el manejo de excepciones (No encontrado, Mas de un
registro) (2 ptos).
7. Analice la instrucción sql presentada y responda las siguientes preguntas: (6 ptos)
taller de base de datos
• ¿Que interrogante responde la sentencia sql?.
• ¿Cual es la función de la instrucción RANK() y por que se utiliza en la consulta?
• ¿Cual es la función de ROWNUM en la consulta y por que se utiliza?.
select cedprof, cuenta from
(select cedprof, cuenta, rank() over (order by cuenta desc) rnk
from
(select cedprof, count(cedprof) cuenta
from seccion
group by cedprof
)
)
where rnk = 1 and rownum = 1;
8. Lleve la consulta anterior a un procedimiento almacenado que envíe a un bloque
anónimo (parámetro out) la CEDPROF y CUENTA (4 puntos).
Formato de entrega
Para la fecha estipulada se debe entregar un archivo RAR con la siguiente nomenclatura
primera letra de su nombre seguido por su apellido junto con la palabra procedimientos ej:
bgarciaProcedimientos.rar deberá ser enviado a la siguiente dirección de correo
[email protected] con en el asunto Taller procedimientos.
El archivo deberá contener:
• En formato sql debidamente comentado, las instrucciones PL-SQL para los
procedimientos y bloques anónimos respectivos de cada pregunta.
Descargar