Universidad de La-Guajira
Facultad de ingeniería
Ingeniería de sistemas
Asignatura
Base de Datos I
Proyecto final
Gestión de Inventario y Facturación para Salsamentaria Mayorista Los Hermanos
Estudiante
Dairo Alfonso Arcia Macea
0182110072
Docente
Gustavo Javier Redondo Cujia
Fecha de entrega
06/06/2024
1. Descripción de la problemática
Nombre de la Empresa: Salsamentaria Mayorista Los Hermanos
Ubicación: Carrera 12ª #33-41 , Barrio Los Nogales, Riohacha La-Guajira
Misión: Ofrecer productos de insumos para comidas rápidas de alta calidad a
precios accesibles, garantizando la frescura y el sabor auténtico que nuestros
clientes buscan, mientras promovemos prácticas comerciales éticas y sostenibles.
Visión: Ser la salsamentaria mayorista líder en el mercado, reconocida por
nuestra calidad excepcional, servicio al cliente insuperable y compromiso con la
sostenibilidad.
Número de Empleados: 4 empleados.
Líder o Representante Legal: Nelson Christoffel López.
Funcionamiento de la Empresa
Salsamentaria Mayorista Los Hermanos se dedica a la venta de insumos de
comidas rápidas. La empresa opera en un mercado mayorista donde provee a
restaurantes, negocios de comidas rapidas y tiendas minoristas.
Problemática
Problema Actual.
Actualmente, Salsamentaria Mayorista Los Hermanos enfrenta varios desafíos
importantes debido a la ausencia de un sistema integrado de gestión de
inventarios y facturación. Los principales problemas incluyen:
Gestión Ineficiente del Inventario: La falta de un sistema para llevar el inventario
provoca desorganización y dificultades para controlar las existencias, lo que lleva
a problemas como la falta de productos o el exceso de stock.
Errores en Facturación: La facturación manual es propensa a errores, lo que
puede generar discrepancias, insatisfacción del cliente y problemas financieros.
Falta de Datos en Tiempo Real: La incapacidad para obtener información
actualizada y precisa sobre las existencias y las ventas impide una toma de
decisiones informada y oportuna.
Dificultades en el Seguimiento de Productos: Sin un sistema adecuado, es
difícil rastrear la entrada y salida de productos, lo que puede llevar a pérdidas y
dificultades para identificar productos de alta o baja rotación.
Problemas Administrativos: La gestión manual del inventario y la facturación
consume mucho tiempo y recursos, afectando la eficiencia general de la empresa.
Necesidad de una Base de Datos.
Para resolver estos problemas, es crucial implementar una base de datos
centralizada que permita:
Control de Inventario: Gestionar las existencias de manera eficiente, permitiendo
un seguimiento preciso de los productos, evitando tanto la falta de stock como el
exceso.
Facturación Electrónica: Automatizar el proceso de facturación para reducir
errores, mejorar la precisión y acelerar el proceso de ventas.
Información en Tiempo Real: Proveer datos actualizados sobre inventarios y
ventas, facilitando una toma de decisiones rápida y basada en información
confiable.
Seguimiento de Productos: Rastrear la entrada y salida de productos de manera
efectiva, identificando tendencias y optimizando la gestión del inventario.
Eficiencia Administrativa: Liberar tiempo y recursos mediante la automatización
de procesos administrativos, permitiendo que el personal se concentre en tareas
estratégicas.
Implementar esta base de datos no solo resolverá los problemas actuales, sino
que también proporcionará una plataforma sólida para el crecimiento y la eficiencia
futuros de Salsamentaria Mayorista Los Hermanos.
2. Objetivos
2.1. Objetivo general
Desarrollar e implementar una base de datos centralizada para
Salsamentaria Mayorista Los Hermanos con el fin de optimizar la
gestión del inventario y el proceso de facturación, mejorando así la
eficiencia operativa y reduciendo los errores administrativos.
2.2. Objetivos específicos
Diseñar un sistema de gestión de inventarios:
1. Crear un esquema de base de datos que permita registrar y
monitorear el estado de las existencias en tiempo real.
2. Implementar funcionalidades para actualizar automáticamente las
cantidades de productos al realizar entradas y salidas de inventario.
Automatizar el proceso de facturación:
1. Desarrollar un módulo de facturación dentro de la base de datos que
permita generar facturas electrónicas de manera rápida y precisa.
2. Asegurar que el sistema de facturación cumpla con las normativas
fiscales y comerciales vigentes.
Mejorar la precisión y disponibilidad de los datos:
1. Implementar herramientas de consulta y reportes que faciliten el
acceso a información actualizada sobre inventarios y ventas.
2. Proveer alertas y notificaciones sobre niveles críticos de inventario
para evitar desabastecimientos o exceso de stock.
Facilitar el análisis de datos y la toma de decisiones:
1. Integrar funcionalidades de análisis de datos que permitan identificar
tendencias de ventas y consumo.
2. Generar informes periódicos que apoyen la toma de decisiones
estratégicas, como pronósticos de demanda y planificación de
compras.
Garantizar la seguridad y la integridad de los datos:
1. Implementar medidas de seguridad en la base de datos para
proteger la información sensible y controlar el acceso a los datos.
2. Realizar copias de seguridad periódicas para asegurar la
recuperación de la información en caso de fallos técnicos.
Capacitar al personal en el uso del nuevo sistema:
1. Diseñar un programa de capacitación para los empleados de
Salsamentaria Mayorista Los Hermanos sobre el uso eficiente del
sistema de gestión de inventarios y facturación.
2. Proveer manuales y guías de usuario detalladas para asegurar una
adopción exitosa del nuevo sistema.
3. Solución
Se propone utilizar una base de datos relacional (RDBMS), específicamente
MySQL. Es una de las bases de datos relacionales más populares y ampliamente
utilizadas en el mundo. Es conocida por su eficiencia, fiabilidad y robustez, lo que
es crucial para la gestión de datos empresariales.
4. Descripción de la base de datos
Tabla Clientes:
Descripción: Almacena información sobre los clientes de la salsamentaria.
Atributos:
cliente_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador único
para cada cliente.
nombre (VARCHAR (100)): Nombre del cliente.
direccion (VARCHAR (200)): Dirección del cliente.
teléfono (VARCHAR (15)): Teléfono del cliente.
email (VARCHAR (100)): Correo electrónico del cliente.
Tabla Categorías
Descripción: Almacena las categorías de los productos para una mejor
organización.
Atributos:
categoria_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador
único para cada categoría.
nombre (VARCHAR (50)): Nombre de la categoría.
descripcion (TEXT): Descripción de la categoría.
Tabla Productos
Descripción: Almacena información sobre los productos cárnicos y embutidos
disponibles en la salsamentaria.
Atributos:
producto_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador único
para cada producto.
nombre (VARCHAR (100)): Nombre del producto.
categoria_id (INT, FOREIGN KEY): Referencia a la categoría del producto.
descripcion (TEXT): Descripción del producto.
precio (DECIMAL (10, 2)): Precio del producto.
stock_actual (INT): Cantidad actual en inventario.
stock_minimo (INT): Cantidad mínima requerida para mantener en
inventario.
fecha_creacion (TIMESTAMP): Fecha y hora de creación del registro.
fecha_actualizacion (TIMESTAMP): Fecha y hora de la última actualización
del registro.
Tabla Inventarios
Descripción: Registra las entradas y salidas de productos en el inventario.
Atributos:
inventario_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador
único para cada movimiento de inventario.
producto_id (INT, FOREIGN KEY): Referencia al producto.
tipo_movimiento (VARCHAR (10)): Tipo de movimiento (entrada o salida).
cantidad (INT): Cantidad de productos movidos.
fecha_movimiento (TIMESTAMP): Fecha y hora del movimiento.
observaciones (TEXT): Observaciones adicionales sobre el movimiento.
Tabla Facturas
Descripción: Registra las facturas generadas por las ventas.
Atributos:
factura_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador único
para cada factura.
cliente_id (INT, FOREIGN KEY): Referencia al cliente.
fecha_factura (TIMESTAMP): Fecha y hora de la generación de la factura.
total (DECIMAL (10, 2)): Monto total de la factura.
Tabla Detalle_Factura
Descripción: Almacena los detalles de cada factura, incluyendo los productos
vendidos.
Atributos:
detalle_id (INT, PRIMARY KEY, AUTO_INCREMENT): Identificador único
para cada detalle de factura.
factura_id (INT, FOREIGN KEY): Referencia a la factura.
producto_id (INT, FOREIGN KEY): Referencia al producto vendido.
cantidad (INT): Cantidad de producto vendido.
precio_unitario (DECIMAL (10, 2)): Precio unitario del producto.
subtotal (DECIMAL (10, 2)): Subtotal del detalle (cantidad * precio_unitario).
4.1. Diagrama de la base de datos
Diagrama ER de la base de datos.
4.2. Código de la base de datos
Código SQL
CREATE DATABASE SALSAMENTARIA;
USE SALSAMENTARIA;
CREATE TABLE Categorias (
categoria_id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR (50) NOT NULL,
descripcion TEXT
);
CREATE TABLE Productos (
producto_id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR (100) NOT NULL,
categoria_id INT,
descripcion TEXT,
precio DECIMAL(10, 2) NOT NULL,
stock_actual INT NOT NULL,
stock_minimo INT NOT NULL,
fecha_creacion TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
fecha_actualizacion TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (categoria_id) REFERENCES Categorias(categoria_id)
);
CREATE TABLE Inventarios (
inventario_id INT AUTO_INCREMENT PRIMARY KEY,
producto_id INT,
tipo_movimiento VARCHAR(10) NOT NULL,
cantidad INT NOT NULL,
fecha_movimiento TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
observaciones TEXT,
FOREIGN KEY (producto_id) REFERENCES Productos(producto_id)
);
CREATE TABLE Clientes (
cliente_id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
direccion VARCHAR(200),
telefono VARCHAR(15),
email VARCHAR(100)
);
CREATE TABLE Facturas (
factura_id INT AUTO_INCREMENT PRIMARY KEY,
cliente_id INT,
fecha_factura TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
total DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (cliente_id) REFERENCES Clientes(cliente_id)
);
CREATE TABLE Detalle_Factura (
detalle_id INT AUTO_INCREMENT PRIMARY KEY,
factura_id INT,
producto_id INT,
cantidad INT NOT NULL,
precio_unitario DECIMAL(10, 2) NOT NULL,
subtotal DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (factura_id) REFERENCES Facturas(factura_id),
FOREIGN KEY (producto_id) REFERENCES Productos(producto_id)
);
4.3. Consultas de la base de datos
Consulta Producto más vendido: Esta consulta identifica los productos que
tienen la mayor rotación, es decir, los productos que se han vendido en mayor
cantidad.
SELECT
p.nombre AS Nombre_Producto,
SUM(df.cantidad) AS Total_Vendido
FROM
Detalle_Factura df
JOIN
Productos p ON df.producto_id = p.producto_id
GROUP BY
p.producto_id, p.nombre
ORDER BY
Total_Vendido DESC
LIMIT 10;
Consulta de factura por clientes: Esta consulta obtiene un historial de compras
de un cliente específico, listando todas las facturas generadas para dicho cliente.
SELECT
f.factura_id,
f.fecha_factura,
f.total
FROM
Facturas f
JOIN
Clientes c ON f.cliente_id = c.cliente_id
WHERE
c.nombre = 'Nombre del Cliente'
ORDER BY
f.fecha_factura DESC;
Consulta de inventario por categoría: Esta consulta muestra el inventario
agrupado por categorías de productos, proporcionando una visión general de las
existencias actuales por categoría.
SELECT
c.nombre AS Categoria,
SUM(p.stock_actual) AS Total_Stock
FROM
Productos p
JOIN
Categorias c ON p.categoria_id = c.categoria_id
GROUP BY
c.categoria_id, c.nombre
ORDER BY
c.nombre;
5. Conclusiones y recomendaciones
Conclusiones
Mejora en la Gestión del Inventario: La implementación de la base de
datos optimizara el control del inventario, reduciendo problemas de
desabastecimiento y exceso de stock.
Automatización de la Facturación: El nuevo sistema de facturación
electrónica disminuirá errores administrativos y agilizará el proceso de
venta, mejorando la eficiencia operativa y la satisfacción del cliente.
Acceso a Información en Tiempo Real: La disponibilidad de datos
actualizados permitirá una toma de decisiones más informada y oportuna.
Seguridad y Confiabilidad de los Datos: La base de datos relacional
garantiza la integridad y seguridad de la información, protegiendo datos
sensibles y cumpliendo con normativas legales.
Mejora en la Toma de Decisiones: Los informes y análisis generados
facilitaran la identificación de tendencias y el ajuste de estrategias
comerciales.
Recomendaciones
Capacitación Continua del Personal: Establecer un programa de
capacitación regular para el personal sobre el uso del sistema.
Monitoreo y Mantenimiento Regular: Realizar mantenimientos periódicos
de la base de datos, incluyendo copias de seguridad y actualizaciones.
Expansión de Funcionalidades: Considerar la integración de módulos
adicionales para gestionar proveedores y análisis avanzado de datos.
Evaluación Periódica del Sistema: Realizar evaluaciones regulares del
sistema para identificar áreas de mejora y adaptarse a las necesidades
cambiantes.
Seguridad y Cumplimiento: Mantenerse actualizado con las normativas
legales y de seguridad, implementando medidas adicionales como
autenticación de dos factores y auditorías de seguridad periódicas.
6. Bibliografía
Dairo Arcia (2024). Entrevista personal con el líder y representante legal de
Salsamentaria Mayorista Los Hermanos. Información obtenida sobre la
estructura organizacional, misión, visión y necesidades específicas de la
empresa, información sobre los procesos actuales de facturación y los retos
asociados.
Oracle Corporation. MySQL Workbench Manual. Recuperado de:
https://dev.mysql.com/doc/workbench/en/
ChatGPT, desarrollado por OpenAI (2024). Asistencia proporcionada en la
estructuración y redacción del proyecto, así como en la verificación y
corrección de consultas SQL y recomendaciones para la implementación
del sistema de gestión de bases de datos.