← Volver

Normalización — Manufactura / Producción

Objetivo

Normalizar un sistema de producción industrial avanzado: BOM con versiones, Rutas (routing), MPS/MRP, centros de trabajo, control de calidad, trazabilidad por lote, scrap, movimientos y costos.

Qué verás

  • Ejemplo de tabla caos (sin normalizar)
  • Transformación 1FN → 2FN → 3FN
  • Modelo final con tablas maestras y transaccionales
  • Consultas SQL y KPIs típicos
  • Procesos MPS → MRP → OP → ejecución → cierre

Tabla original (sin normalizar)

Export típico desde hojas de cálculo con campos que contienen listas y mezclan maestros con transacciones.

OPProductoCantPlanCantRealBOM_ItemsCantidadesLotesCentroTrabajoOperacionesTiemposOperariosCalidadScrapCostoHoraFechaIniFechaFinEstado
OP-20241101PROD-A10095MP1,MP2,ENS150kg,20kg,1uL001,L008,L010CT-MECCorte,Armado,Test2h,3h,1.5hJuan,PabloAprobado51500,20002024-11-032024-11-05Finalizado
OP-20241102PROD-A200198MP1,MP2,ENS190kg,40kg,2uL005,L002,L009CT-MECCorte,Armado,Test4h,6h,2hPedro,MarcosAprobado21500,20002024-11-102024-11-13Finalizado
OP-20241103ENS18080MP3,MP440kg,12kgL103,L109CT-ENSEnsamble4hLuisAprobado017002024-11-152024-11-15Finalizado

Problemas detectados

  • Listas embebidas (BOM, operaciones, lotes)
  • Operaciones, tiempos y operarios mezclados
  • No hay versión de BOM ni trazabilidad por lote
  • Costos y resultados de calidad embebidos

1FN — Datos atómicos

Se descomponen las listas en filas atómicas: una fila por OP × componente × operación × lote.

OPProductoBOM_ItemCantItemLoteOperacionCentroTrabajoTiempoRealOperarioCalidadScrap
OP-20241101PROD-AMP150kgL001CorteCT-MEC2hJuanOK0
OP-20241101PROD-AMP220kgL008ArmadoCT-MEC3hJuanOK2
OP-20241101PROD-AENS11uL010TestCT-MEC1.5hPabloOK3

Observaciones

  • Se puede calcular consumo total por materia prima fácilmente.
  • Permite auditar lote por lote y operación por operación.

2FN — Separación de entidades

Se crean tablas maestras y transaccionales separadas.

Maestros

  • Productos (ProductID, Nombre, Tipo: Final/Ensamble/MP)
  • BOM (BOMID, ProductID, Version, VigenteDesde, VigenteHasta)
  • BOM_Detalle (BOMItemID, BOMID, ComponenteID, Cantidad)
  • CentrosTrabajo (CentroID, Nombre, CostoHora)
  • Rutas (RouteID, ProductID, Version)
  • Rutas_Operaciones (OperacionID, RouteID, CentroID, NombreOperacion, TiempoStd)

Transaccionales

  • OrdenProduccion (OPID, ProductID, CantPlan, FechaInicioProg, FechaFinProg, Estado, BOMID, RouteID)
  • OP_Operaciones (OperacionRealID, OPID, OperacionID, TiempoReal, OperarioID, EstadoOp)
  • OP_BOM_Consumo (ConsumoID, OPID, ComponenteID, CantReal, Lote, Fecha)
  • MovimientosInventario (MovID, TipoMov, ComponenteID, Cantidad, Lote, OPID, Fecha)

3FN — Eliminación de dependencias transitivas

Tablas añadidas para 3FN

  • Operarios (OperarioID, Nombre, Categoria, CostoHora)
  • Lotes (LoteID, ComponenteID, FechaIngreso, Proveedor, FechaVencimiento)
  • Scrap (ScrapID, OPID, OperacionRealID, Cantidad, Tipo, Motivo)
  • Calidad (QCID, OPID, OperacionRealID, Resultado, Observaciones)
  • CostosEstandar (ProductoID, CostoMP, CostoMOD, CostoIndirecto, CostoTotal)
  • MRP (MRPID, ProductoID, Fecha, Demanda, StockDisponible, PedidoSugerido)
  • MPS (MPSID, ProductoID, FechaPlan, Cantidad)
  • Trazabilidad (TraceID, LoteID, OPID, ProductoFinalID, CantidadFinal)

Beneficios

  • Separación clara entre reglas (BOM, rutas) y ejecución (OP, consumos).
  • Trazabilidad completa por lote y OP.
  • Facilita cálculos de costo real vs estándar y auditoría.

Modelo final (resumen)

Tablas principales

  • Products, Components, BOM, BOM_Detail
  • Routes, Route_Operations
  • WorkCenters (CentrosTrabajo)
  • Operations (OP_Operaciones), OP_BOM_Consumo
  • StockMovements, Lots
  • Quality, Scrap, Traceability
  • MRP, MPS
  • Costing (CostosEstandar) y ActualCosts por OP

Relaciones clave

  • Product 1:N BOM (multiple versions)
  • BOM 1:N BOM_Detail
  • Route 1:N Route_Operations
  • OP 1:N OP_Operaciones and OP_BOM_Consumo
  • Movimientos de inventario ligados a OP o a ajustes

SQL — consultas útiles

Consumo real por OP

SELECT c.OPID, p.Nombre AS Componente, SUM(c.CantReal) AS TotalConsumido FROM OP_BOM_Consumo c JOIN Products p ON c.ComponenteID = p.ProductID WHERE c.OPID = 'OP-20241101' GROUP BY c.OPID, p.Nombre;

Cálculo costo real de OP (MP + MOD)

SELECT op.OPID, SUM(cons.CantReal * ce.CostoMP) AS CostoMP, SUM(ops.TiempoReal * o.CostoHora) AS CostoMOD FROM OrdenProduccion op JOIN OP_BOM_Consumo cons ON cons.OPID = op.OPID JOIN CostosEstandar ce ON ce.ProductoID = cons.ComponenteID JOIN OP_Operaciones ops ON ops.OPID = op.OPID JOIN Operarios o ON o.OperarioID = ops.OperarioID WHERE op.OPID = 'OP-20241101' GROUP BY op.OPID;

Tiempos reales vs estándar por operación

SELECT op.OPID, ro.NombreOperacion, ro.TiempoStd, oop.TiempoReal, (oop.TiempoReal - ro.TiempoStd) AS Desvio FROM OP_Operaciones oop JOIN Rutas_Operaciones ro ON oop.OperacionID = ro.OperacionID WHERE oop.OPID = 'OP-20241101';

Scrap total por OP

SELECT OPID, SUM(Cantidad) AS ScrapTotal FROM Scrap WHERE OPID = 'OP-20241101' GROUP BY OPID;

KPIs importantes en Manufactura

KPI's y cómo calcularlos

  • OEE: Disponibilidad × Rendimiento × Calidad.
  • Scrap%: Scrap / ProducciónBruta.
  • Cumplimiento de entrega: OP entregadas a tiempo / total programadas.
  • Variación de costo: (CostoReal - CostoEstandar) / CostoEstandar.
  • Lead time OP: FechaFinReal - FechaInicioReal.

Procesos reales modelados

Flujo MPS → MRP → OP → Ejecución → Cierre

  1. MPS: plan maestro de demanda por horizonte.
  2. MRP: calcula necesidades netas, lead times y sugiere órdenes.
  3. Generación de OP: seleccionar BOM version y ruta.
  4. Ejecución: registrar consumos por lote, tiempos reales, scrap, resultados QC.
  5. Cierre: registrar costos reales, emitir movimientos de inventario, registrar trazabilidad.

Buenas prácticas

  • Versionar BOM y rutas para auditoría y cambios.
  • Registrar lotes en cada consumo para trazabilidad completa.
  • Usar transacciones en DB para consumos/ajustes.
  • Implementar alarmas en QC para detener OP si hay fallas críticas.
whatsapp