Sunteți pe pagina 1din 5

Instituto Profesional Duoc UC

Escuela de Informática y Telecomunicaciones


Sede San Joaquín

Programación de Base de Datos


PBY3301 -PBY3101 Forma B

Nombre:
Sección
Fecha:
Docente:

Unidad de Aprendizaje: CONSTRUYENDO PROGRAMAS PL/SQL EN LA BASE DE


DATOS.
Unidad de Competencia: Desarrolla operaciones sobre la base de datos para
efectuar procesamiento de datos utilizando el lenguaje asociado de acuerdo a los
requerimientos de información.
Indicadores de Logro:

1- Evalúa la lógica de negocio considerando restricciones del lenguaje,


requisitos de la lógica de negocios, requisitos de información y sistema de
gestión de base de datos para solucionar los requerimientos.

DETALLE EVALUACIÓN
2- Crea Procedimientos Almacenados con y sin parámetros para solucionar
los requerimientos de información planteados.

3- Crea Funciones Almacenadas para solucionar los requerimientos de


información planteados.

4- Crea Package con constructores públicos y privados para solucionar los


requerimientos de información planteados.

5- Crea Triggers asociados a eventos específicos que efectúen operaciones


automáticas sobre los datos para solucionar los requerimientos de
información planteados.

6- Crea sentencias SQL en tiempo de ejecución de las Unidades de


Programas para solucionar los requerimientos de información
planteados.

Puntaje Total: 60 puntos Nota: 7.0


Puntaje: 36 puntos Nota: 4.0
Puntaje Obtenido: Nota:

Instrucciones Generales:

 Desarrolle los casos planteados usando la herramienta Oracle SQLDeveloper.


 Puede hacer usos de las presentaciones de la asignatura y/o apuntes personales como material de consulta durante
el desarrollo de la prueba.
 Los casos están planteados sobre el modelo que se adjunta como “Anexo Forma B”. Por esta razón, para construir
las soluciones de los requerimientos de información planteados en cada caso, deberá ejecutar el script
Script_Pby_eval_3_Creacion.sql (Entregado por el docente) que creará y poblará las tablas del modelo entregado.
 Los resultados deben ser redondeados a valores enteros
Instituto Profesional Duoc UC
Escuela de Informática y Telecomunicaciones
Sede San Joaquín
 Al finalizar la prueba, enviar el script construido al docente mediante un mensaje interno de AVA. El archivo con su
script debe venir con el nombre “Script_Pby_eval_3_Resp_Seccion_Apellidos Nombres.sql”, donde Sección es la
“Sección” a la que pertenece (por 06D) y “Apellidos Nombres” su nombre completo en el orden indicado.

Ante la oportunidad de venta online sin necesidad de local, el grupo Brups


levantó una pizzería virtual por nombre “Delirium Pizzum” con la comunidad local.

Esta primera etapa contempla salir lo antes posible con una aplicación que permita realizar venta
telefónica pudiendo registrar en tiempo real el pedido realizado por el cliente, a la vez que permita
una creación livian del cliente con mínima información para poder realizar el delivery de manera
eficiente.

Dado el modelo que se adjunta en la siguente imagen

tenga en cuenta como es el proceso de negocio que ayudará a completar con su desarrollo:
Instituto Profesional Duoc UC
Escuela de Informática y Telecomunicaciones
Sede San Joaquín
o Un cliente puede tener uno o varios pedidos, donde el detalle de las pizzas solicitadas
se encuentran en PedidoDetalle.
o Cada Pizza tiene un precio base y el detalle de los productos que la componen se
encuentran en PizzaDetalle. Por ejemplo una pizza Pepperoni tiene los siguientes
Productos asociados: Peperoni, doble queso, chalchicha, cebolla.
o Si desea agregar más de una pizza en particular, debe agregar nuevamente al mismo
rut la misma pizza.

Para la correcta implementación de su código, tenga presente las siguientes restricciones y


consideraciones:

o En esta etapa del emprendimiento no podrán pedirse pizza por mitades ni solicitar
ingredientes adicionales, sólo las pizzas estandar (no insista).
o Debe manejar en todo momento errores y registrarlo en la respectiva tabla que
indique desde dónde se está cayendo el proyecto y el cod/msj de error.
o Asegúrese de entender e insertar los respectivos registros respetando la integridad
referencial del modelo y de las definiciones entregadas.
o El precio final de un pedido se calcula sumando el precio base de cada pizza que se le
haya cargado, sin incorporar en ese calculo los productos.

Detalle de la entrega.
Debe entregar en un único script que contenga los siguientes pasos/puntos:

1. Procedimiento prc_registrarLogError.
 Inserta en tabla LogError al recibir los respectivos parámetros (rutina, código de error
y descripción de error).
 Este será utilizado por las excepciones de todas sus rutinas y funciones, independiente
si están en package o no.

2. Función fnc_BuscarCliente.
 Esta función busca un cliente por rut y devuelve su Id si existe.
 Debe recibir el respectivo parámetro de rut y quedará fuera del package para que la
puedan utilizarlo nuevos desarrollos asociado a cliente.

3. Package pck_Pizzeria.

3.1. Función fnc_BuscarPizza.


 Al recibir el código de una pizza devuelva su ID si existe.

3.2. Procedimiento prc_GenerarPedido.


 Se debe crear el pedido asociado al rut del Cliente con estado ‘Activo’ con la
fecha/hora y usuario de sistema. Asegúrese que si existe algún pedido anterior en
estado Activo, entonces debe/n ser cancelado/s (cambio a estado Cancelado) para
poder insertar este nuevo pedido.
Instituto Profesional Duoc UC
Escuela de Informática y Telecomunicaciones
Sede San Joaquín
 Validar con Función de punto anterior si existe, sino lanzar un error (20001,’No existe
Cliente ‘ || Rut).
 Implemente al menos una sentencia DML con sql dinámico con uso de
variables/parámetros en su llamado.

3.3. Procedimiento prc_AgregarPizza.


 Acepta el rút y código de una Pizza, agregándola al pedido que se encuentre Abierto.
Si no encuentra un pedido Abierto para el cliente, debe lanzar un error (20002,’No
existe Pedido para Cliente ’ || Rut) . Si ya existe la misma pizza dentro del pedido, sólo
aumentar la cantidad de esa pizza en 1.
 Implemente al menos una sentencia DML con sql dinámico con uso de
variables/parámetros en su llamado.

3.4. Procedimiento prc_TotalizarPedido.


 Acepta el rút del cliente y calcula el valor total a pagar sumando para cada pizza (suma
de precio base), guardando este valor en el Pedido y cambiando su estado a ‘Vendido’.

4. Trigger Pedidos_Trg_Cambios.
 Debe registrar en tabla LogVenta toda Insercion o Actualización en la Tabla Pedidos
cuando sea registrada la venta, i.e sólo para el estado ‘Vendido’.

5. PL Anónimo para ejecutar sus Rutinas y Procedimientos. Debe considerar los siguientes pasos:

 Limpieza de las tablas que se le solicita insertar datos y errores.


 Crear un pedido a rut ‘0-k’.
 Crear un Pedido a rut ‘3-7’.
 Agregar al rut ‘3-7’ una Pizza ‘TodasLasCarnes'
 Agregar al rut '3-7' una segunda pizza 'TodasLasCarnes'
 Agregar al rut '3-7' una última pizza 'PolloBBQ';
 Cerrar el Pedido llamando a Totalizar para el rut ‘3-7’.

6. Otros requisitos
 Su script debe ser auto-ejecutable: debe borrar primero todos los registros insertados
así como los objetos creados. Luego se crearán a traves de los puntos 1 al 4,
ejecutándolos en el paso 5.
 Debe utilizar los Sequencer asociados a todas las tablas involucradas: Pedidos,
detalle_pedido, LogVenta y LogError.
 Debe asegurar de controlar en todo momento los errores, a parte de los específicos
solicitados.

Referencias
Después de la operación del punto 5, debiera encontrar (con la salvedad que sus PK podrían tomar
otra numeración) lo siguiente
Instituto Profesional Duoc UC
Escuela de Informática y Telecomunicaciones
Sede San Joaquín
 Tabla Pedidos

 Tabla PedidoDetalle

 Tabla Log Venta

 Tabla Log Errores

A modo de información complementaria, el contenido de las principales tablas cargadas con el


script inicial, tienen los siguientes valores

- Cliente

- Pizza

S-ar putea să vă placă și