Laboratorio de Bases de Datos Jonathan Medina Gómez Práctica 1

Laboratorio de Bases de Datos
Jonathan Medina Gómez
Práctica 1: Cursores y manejo de Excepciones
Fecha de Entrega: 24 de Noviembre 2015 (En clase)
1. (1 punto) Escriba un bloque PL/SQL que cree las siguientes tablas (Asigne según su
criterio el tipo de dato de cada atributo y la unicidad y obligatoriedad de los mismos).
Producto
Productor
Venta
ID *
ID *
ID *
Descripcion
Direccion
Fecha
Nombre
Productor_id **
Nombre
Producto_id ***
Cantidad
Cantidad
Precio
*Clave Primaria
**Clave foránea a Productor
***Clave foránea a Producto
2. (2.5 puntos) Realice un bloque PL/SQL para resolver cada una de las siguientes
consultas. (No utilice JOINS de SQL, si necesita relacionar tablas hágalo por medio de
cursores y variables de PL/SQL, utilice sólo lo visto en clase).
2.1 Imprima en pantalla el nombre y la descripción del producto que más se ha
vendido.
2.2 Imprima en pantalla el nombre de todos los productos existentes ordenados por
su ID.
2.3 Imprima en pantalla para cada productor: Su nombre, el número de productos que
ofrece y el nombre y precio de cada uno de ellos.
2.4 Imprima en pantalla todas las ventas (ID, Fecha, Cantidad y Nombre del
Producto) que ha realizado el productor con ID = XXX entre dos fechas dadas.
2.5 Imprima en pantalla los productos que no tiene registrada ninguna venta
ordenados por su precio de menor a mayor.
3. (0.75 puntos) Realice un bloque PL/SQL para cumplir la siguiente restricción del sistema:
“Cuando un producto tiene una cantidad inferior a 10 unidades, su precio se incrementa en
un 5%” (Use la cláusula CURRENT OF dentro del cursor con el cual recorrerá la tabla de
productos).
4. (0.75 puntos) Realice un bloque PL/SQL que imprima el nombre de cada producto,
además:

Si el precio del producto es mayor al promedio de todos los productos del sistema,
imprimir “Producto con precio mayor al promedio”

Si el precio del producto es menor o igual al promedio de todos los productos del
sistema, imprimir “Producto con precio menor o igual al promedio”.
Nota: Tenga en cuenta que para cada bloque creado debe manejar correctamente TODAS
las excepciones que puedan ocurrir durante la ejecución.