Proyecto Final
FINAL BASE DE DATOS II
- Definir el enunciado del problema a sistematizar según las necesidades detectadas. (Debe ser Claro y tener mínimo 8 tablas) (Entrega 1)
2 REALIZAR LO SIGUIENTE:
2.1. Darle un nombre a la base de datos.
2.2. Listado de tablas que llevara la BD. (Cuales son referenciales y cuales son de movimiento)
2.3. Diseñar el diccionario de datos de cada tabla (campo, nombre el campo, tipo, tamaño y descripción).
2.4. Montar o diseñar el modelo entidad relación.
2.5. Dibujar el Diagrama relacional.
- Crear la BD y las tablas respectivas en mysql (guardar evidencias del código mysql con el que resuelva dicha actividad) (Entrega 2)
- Diseñar ejercicios en los que se apliquen los diferentes comandos que se utilizaron durante el semestre con su respectivo análisis y resultados. (Entrega 3)
- Sustentación
GESTION DE PRODUCCION
Empresa Marca de Alimentos, empaca en su planta la mayoría de sus productos estrellas, esta requiere un sistema de Trazabilidad y gestión de empaquetado de estos productos,
se necesita tener los datos de compras, producción, maquina en las cuales hay 3 operando, obtener la cantidad y costo de producto empaquetado para esto debemos identificar:
Productos de entrada, Productos de salida, cantidad, Maquina, Operario, Turno y todo esto se convierte en ARMADA con la cual podemos modelar la mayoría de datos necesarios.

CONTENIDO DEL SIGUIENTE ARCHIVO:
- Nombre de la Base de datos y sus Tablas
- Modelo Entidad Relación
- Diagrama Relacional
- Diccionario de Datos
- Datos y Relación.
Aplicación de comandos.
PROCEDIMIENTO ALMACENADO
Creamos un procedimiento almacenado para ingresar las compras.
ANÁLISIS:>
Creamos un procedimiento almacenado para INSERTAR los movimientos de las compras.
Sintaxis>>>
delimiter //
create procedure ingresaCompra(in compra int(11),in codigo_mp varchar(10),in cantidad int(11),in costo int(11), in fecha Date)
begin
insert into compra values(0,codigo_mp,cantidad,costo,fecha);
end
//
>>> show procedure status;
>>> call nombredelprocedimiento(campos en su orden separados por ,)

FECHAS
Necesitamos saber cuales operarios tienen mas de 35 años y mostrar su informacion completa.
ANÁLISIS>>>
1. cual es el nombre de la tabla:
Operario
2. Campos contiene la información solicitada)y de que tabla Campo:
Fecha_nac
3. Condicion(es): adicionales si las hay
MAyor a 35 años
4. Comando(s):
select - where
Sintaxis>>>
Select * from operario where year(current_date()) - year(fecha_nac) > 35;
TRIGGER BEFORE
Necesitamos saber el total de la compra segun la cantidad y el costo.
ANÁLISIS>>>
1. cual es el nombre de la tabla:
Compra
2. Campos contiene la información solicitada)y de que tabla Campo:
Creamos campo total - Cantidad, Costo
3. Condicion(es): adicionales si las hay
N/A
4. Que tablas estan involucradas en la consulta y como se relacionan:
N/A
5. Comando(s):
Trigger, create, before, insert, set
Sintaxis>>> Creamos el campo en la tabla compra*.
>>> Alter table compra add total int not null;
>>> delimiter//
create trigger caltotal before insert on compra
for each row
begin
set new.total=new.costo*new.cantidad;
end
//
>>> delimiter ;

TRIGGER AFTER
Necesitamos que sume el stock en la materia prima cuando se realiza una compra.
ANÁLISIS>>>
1. cual es el nombre de la tabla:
Compra - Materiaprima
2. Campos contiene la información solicitada)y de que tabla Campo:
Campo:Cantidad - Tabla:Compra
3. Condicion(es): adicionales si las hay
materiaprima.codigo_mp=compra.codigo_mp
4. Que tablas estan involucradas en la consulta y como se relacionan:
Compra - Materiaprima
5. Comando(s):
Trigger, create, After, insert, on, set
Sintaxis>>>
delimiter//
create trigger actStockProd after insert on compra
for each row
begin
update materiaprima set stock=(select sum(cantidad) from compra where materiaprima.codigo_mp=compra.codigo_mp);
end
//
>>> delimiter ;
CADENA
Necesitamos ver las armadas que su código termina en 250 o empacado x 250.
ANÁLISIS>>>
1. cual es el nombre de la tabla:
Armada
2. Campos contiene la información solicitada)y de que tabla Campo:
codigo
3. Condicion(es): adicionales si las hay
substr(codigo,6,3) in ('250')
4. Comando(s):
select, where, substr, in
Sintaxis>>>
select aramada,codigo,cantidad,observacion from armada substr(codigo,6,3) in ('250');
ENUM
Debemos mostrar las armadas que tienen producto con obeservacion que fueron 'Fumigado' y/o tenian 'gorgojo'.
ANÁLISIS>>>
1. cual es el nombre de la tabla:
Armada
2. Campos contiene la información solicitada)y de que tabla Campo:
Armada.Observacion
3. Condicion(es): adicionales si las hay
Observacion='fumigado' or observacion=2;
4. Comando(s):
Select, where
Sintaxis>>>
Select * from armada where Observacion='fumigado' or observacion=2;
INSERTAR DATOS DE OTRAS TABLAS
En la tabla Armada tenemos el código, necesitamos traer la descripción de la tabla productos.
ANÁLISIS>>>
1. cual es el nombre de la tabla:
Armada
2. Campos contiene la información solicitada)y de que tabla Campo:
producto.Nombre
3. Condicion(es): adicionales si las hay
Where Armada.codigo=Producto.codigo
4. Que tablas estan involucradas en la consulta y como se relacionan:
Tablas: Armada - Producto
Relacion: Tiene el codigo del producto
5. Comando(s):
Update, Join, on, set.
Sintaxis>>> Primero creamos el campo donde vamos alojar los datos
>>> alter table armada add producto varchar(20);
>>>update armada
join producto
on armada.codigo=producto.codigo
Set armada.producto=producto.descripcion;
CREAR TABLAS A PARTIR DE OTRAS
Necesitamos saber la participacion de las maquiinas, por lo cual debemos crear una Tabla de cuantas Armadas han realizado cada una.
ANÁLISIS>>>
1. cual es el nombre de las tablas de los datos:
Maquina , Armada
2. Campos contiene la información solicitada)y de que tabla Campo:
Maquina.Descripcion
3. Condicion(es): adicionales si las hay
maquina.maquina=armada.maquina
4. Que tablas estan involucradas en la consulta y como se relacionan:
Tablas: Maquina , Armada
Relacion: Maquina.maquina=Armada.maquina
5. Comando(s):
Select, join, on , group by
Sintaxis>>> Create table armadaxmaquina
select m.descripcion,count(*)
from maquina as m
join armada as a
on m.maquina=a.maquina
goup by m.descripcion;
Evidencia tee
Copia de la Base de datos.