You are on page 1of 3

1

BASE DE DATOS II
UNIDAD 4.- CINE

Crearemos una base de datos para ayudar a un pequeño cine con el control de sus
funciones, usuarios y compra de boletos

1.- Crearemos la base de datos CINE

2.- Crearemos la tabla “TIPO_FUNCIONES”, la cual será nuestro catálogo de


funciones, en donde habrá:
• ID_FUNCION, INT AUTO INCREMENT PK
• DESCRIPCION, VARCHAR(100)
• PUNTOS, INT
• COSTO, FLOAT

3.-Crearemos un procedimiento almacenado para agregar datos a


TIPO_FUNCIONES y agregaremos los siguientes registros:

001, Sala Tradicional, 20 puntos, $60 pesos


002, Sala Macro, 22 puntos, $70 pesos
003, Sala 3D, 28 puntos, $84 pesos
004, Sala 4dX, 38 puntos, $102 pesos

4.- Crearemos la tabla “USUARIOS”, la cual se añadirá todos los usuarios:

• ID_USUARIO, INT PK AUTO INCREMENT


• FECHA_INGRESO, DATE
• FECHA_CUMPLE, DATE
• NICKNAME VARCHAR(50)
• EMAIL, VARCHAR(100)
• PUNTOS, INT DEFAULT 0
• VISITAS, INT DEFAULT 0

5.-Crearemos un procedimiento almacenado para agregar a los usuarios, solo


pediremos como parámetros los datos de: FECHA _CUMPLE, NICKNAME y EMAIL.
Ya que puntos y visitas por default tendrán 0 y la fecha de ingreso la
colocaremos automáticamente con SYSDATE()

6.- Daremos de alta a 5 usuarios diferentes.

7.- Crearemos la tabla “COMPRA_BOLETO”, el cual será un historial de las


compras de los usuarios, el MODO_COMPRA consistirá si el usuario realizo el
pago de sus boletos con puntos o con efectivo.
2
BASE DE DATOS II
UNIDAD 4.- CINE

• ID_COMPRA, INT AUTO_INCREMENT PK


• ID_USER INT FK
• ID_TIPO_FUNCION INT FK
• NUMERO_BOLETOS, INT
• TOTAL_COMORA, FLOAT
• MODO_COMPRA CHAR(1) CONSTRAINT CHECK SOLO ACEPTE “E” O “P”
• FECHA_COMPRA DATE
• NOTA VARCHAR(100)

8.- Crearemos una función en donde recibiremos de parámetro el id del usuario


y nos devolverá si el usuario cumple años el dia(esto usando la fecha del sistema
con la función SYSDATE()) de hoy o no. Si cumple años dará el mensaje :
PROMOCIÓN CUMPLEAÑERO y si no es así mandara mensaje “SIN PROMOCIÓN”

9.- Crearemos un procedimiento almacenado (PROCEDURE) llamado “NUEVA


COMPRA” el cual va a insertar valores en la tabla “COMPRA_BOLETO”. En donde
solo recibiremos de parámetros: id_usuario, idfuncion, numero_boletos y
modo_compra.
Si el usuario pide la compra de sus boletos con puntos ‘P’ y no tiene la cantidad
suficiente deberá cancelarse la compra y mostrar mensaje “PUNTOS
INSUFICIENTES”
Además, si el usuario cumple años ese día de la compra se le apl icara un 10% de
descuento en su total de compra. Y se le agregara la nota “PROMOCI ÓN
CUMPLEAÑERO”. Si no cumple años ese día en nota se ira con “SIN PROMOCIÓN”.

10. Crearemos un disparador (TRIGGER) que se disparara en cada inserción que


hagamos en la tabla “COMPRA_BOLETOS” que se encargara de actualizar los
puntos y número de visitas de los usuarios en la tabla USUARIOS
Si el usuario realizo su compra con efectivo “E” entonces a su usuario se le
aumentara una visita y se le sumaran los puntos correspon dientes según la
cantidad de boletos que compró y el tipo de función.
En cambio, sí realizo su compra con puntos “P” al usuario se le aumentara una
visita, pero se le restara de sus puntos los puntos utilizados para la compra.

11. Se hará una función llamada NIVEL_USUARIO en donde se dará un estado


según el total de visitas que tengan los usuarios:
• Menor o igual a 6 visitas es un nivel: FAN
• Mayor a 6 visitas y menor a 9 es un nivel: FANATICO
• Mayor a 9 puntos es un nivel: SUPER FANATICO
3
BASE DE DATOS II
UNIDAD 4.- CINE

12. Hacer una vista llamada DETALLE_USUARIOS en donde veremos el nickname


del usuario, su correo, sus puntos, visitas y el nivel de usuario que tiene en ese
momento.

13. Hacer una vista llamada DETALLE_COMPRA en donde veremos la fecha de


compra, nickname y correo del usuario, la cantidad de boletos, detalle del tipo
de función, el total de compra y la nota de la compra.

Se debe de hacer un reporte de practica con capturas de la generación de tablas,


procedimientos, trigger, funciones y vistas.
Así como la demostración del correcto funcionamiento de trigger s,
procedimientos, funciones y vistas.

You might also like