BASE DE DATOS PIZZERIA
DOCUMENTACIÓN TÉCNICA
AUTOR: CÉSAR ARACENA
Documentación del Desarrollo de la base de datos
“pizzeria” creada como ejemplo para la clase de SQL
De Coderhouse.
REVISIÓN 3 | 30 DE ABRIL DE 2023
RESÚMEN
En este documento se detalla el modelo de negocio, situación problemática, el objetivo de
este trabajo, así como también referente a la parte técnica, los Diagramas de Entidad-
Relación, estructura de tablas, funciones, procedimientos, vistas y triggers creados/utilizados
para solucionar los problemas listados.
INTRODUCCIÓN
En el mundo existen innumerables modelos de negocios que cada día generan y obtienen
infinidad de datos que, almacenados de manera ordenada, permiten realizar análisis y tomar
decisiones basadas en datos para permitir operar cada vez mejor.
El siguiente documento detalla técnicamente el proceso de creación de una base de datos
para una pizzería imaginaria que le permitiría a su dueño tomar mejores decisiones a la hora de
realizar nuevas inversiones o simplemente llevar mejor su negocio día a día.
OBJETIVO
Intentar demostrar una manera ordenada, relacional y digital de almacenar los datos
generados u obtenidos día a día para lograr obtener mejores indicadores de rendimiento clave
(KPIs por sus siglas en inglés).
Una vez creado el sistema empleando un sistema de bases de datos popular y gratuito como
es MySQL, se podrán obtener resúmenes objetivos de las métricas que sean útiles para la toma
de decisiones.
SITUACIÓN PROBLEMÁTICA
Basándome en la manera tradicional de llevar un pequeño comercio como lo puede ser una
pizzería, pude listar los siguientes problemas:
- Sobreabastecimiento
- Subabastecimiento
- Falta de ofertas correctas según ganancia o abastecimiento
Página 2
- Falta de seguimiento de pagos impositivos
- Ofertas de productos sin stock
MODELO DE NEGOCIO
Como se mencionó previamente, el modelo de negocio elegido para este trabajo es una
pizzería tradicional que consta de la siguiente estructura:
- Un (1) propietario único
- Cuatro (1) empleados en local
- Capacidad de entrega en sitio
- Capacidad de delivery
En este ejemplo nuestra pizzería trabaja 6 días a la semana (de martes a domingo) y solo por las
noches (de 19hr a 24hr).
Página 3
DIAGRAMA ENTIDAD-RELACIÓN (CONECPTUAL)
Se adjunta el DER conceptual para entender/visualizar rápidamente las entidades y sus
relaciones:
Página 4
DIAGRAMA ENTIDAD-RELACIÓN (ESQUEMÁTICO)
Se adjunta DER esquemático (de ingeniería) con las relaciones entre tablas. El mismo está
dividido en tres partes para facilitar su lectura:
Ilustración 1 - Tablas de auditoría
Página 5
Ilustración 2 - Tablas principales
Página 6
Ilustración 3 - Tablas de asistencia (temporales)
Página 7
LISTADO DE TABLAS
A continuación, se incluye el listado de las tablas creadas con sus atributos:
Página 8
Página 9
Página 10
FUNCIONALIDAD
A continuación, se describen los elementos creados a partir de la estructura de la base de
datos para asistir en el trabajo con la misma:
VISTAS
Se crearon las siguientes vistas:
- facturación_mensual: Genera un simple output que muestra el total facturado durante
el mes en curso
- facturación_trimestral: Muestra 3 campos donde se encuentra la facturación del mes en
curso, más la facturación total de los dos meses anteriores
- menu: Genera una vista simplificada donde solo muestra los productos que se pueden
fabricar según el stock de los componentes necesarios para cada uno
- productos_a_pedir: Genera un listado de los productos cuyo stock es menor al mínimo
deseado
- productos_mas_vendidos: Muestra un listado en orden de los productos más vendidos
históricamente
STORED PROCEDURES
Los siguientes son procedimientos almacenados que se crearon para simular la operación
diaria con la base de datos, ya que no cuenta con un programa externo que realice las
consultas necesarias:
- sp_generar_venta: Simula la creación de una venta a un cliente aleatorio, donde la
cantidad de productos y número de cada producto vendido son aleatorios
- sp_venta_completo: Realiza los movimientos en la base de datos, dictados por el
procedimiento anterior
- sp_venta_extra: Es un procedimiento auxiliar que realiza tareas de mantenimiento en la
base de datos
Nota: Para simular una venta, solo debe ejecutar/llamar al procedimiento
“sp_generar_venta” y, siempre y cuando esté disponible un repartidor o,
aleatoriamente se realice una venta en el local, se generará una nueva
venta
FUNCIONES
Las siguientes funciones ayudan con cálculos preestablecidos y de uso frecuente:
- calcular_provision: Devuelve la cantidad a pedir de un producto o ingrediente,
basándose en el 110% de la diferencia entre la cantidad ideal y la cantidad actual
Página 11
- f_generar_cliente: Genera un cliente aleatorio tomando un nombre y un apellido de
una tabla auxiliar
- f_rand_entrega: Genera un valor aleatorio entre 1 y 2 para determinar si un pedido es
para retirar en el local o para ser enviado
- f_random: Genera un número aleatorio entre 100 y 999999 para utilizar como valor
provisional de venta en cada transacción
- fventas: Calcula el total a facturar de una venta
- iva: Calcula el impuesto al valor agregado de cada venta
TRIGGERS
Los siguientes triggers fueron creados para llevar una auditoría de algunos eventos:
Trigger Tabla que Acción que Tabla donde Descripción
monitorea monitores registra
Registra la creación
clientes_AFTER_INSERT clientes AFTER INSERT logs de cada cliente
nuevo
Registra cada
tr_logs facturas AFTER INSERT logs
factura generada
Registra el alta de
tr_clientes_alta clientes AFTER INSERT log_clientes
cada cliente
Registra cuando un
tr_clientes_eliminacion clientes AFTER DELETE log_clientes
cliente es eliminado
Registra cada venta
tr_nueva_venta ventas AFTER INSERT log_ventas
nueva
Registra cada
tr_agregar_producto productos AFTER INSERT log_productos producto que se
añade al menú
Registra la
modificación o
tr_modificar_producto productos AFTER UPDATE log_productos
edición de cada
producto
Registra la
tr_eliminar_producto productos AFTER DELETE log_productos eliminación de un
producto
Página 12
BUSINESS ANALYSIS
Con las vistas creadas es simple obtener los siguientes resúmenes para su posterior análisis:
PRODUCTOS MÁS VENDIDOS
Nos permite saber cuales son los productos más vendidos para así poder coordinar ofertas en
días y horarios calculados:
Página 13
PRODUCTOS PARA PEDIR
Esta otra vista nos permite saber rápidamente que productos están bajo el mínimo de stock y
nos provee datos sobre donde pedir cada uno:
Página 14
TECNOLOGÍAS UTILIZADAS
Para la creación y desarrollo de esta base de datos se utilizaron las siguientes herramientas:
Herramienta Versión Utilidad
Servidor para ejecutar y desarrollar el
Servidor Windows 11 64-bit
motor de la base de datos
Base de Datos MySQL CE 8.0.33 Sistema de DB de uso gratuito
Draw.io 21.1.2 Diagramación de DERs
MS Excel Excel for Microsoft 365 Estructura de tablas y Data Analysis
MySQL Workbench CE 8.0.33 Interacción con DB
Página 15