Proyecto Final

FINAL BASE DE DATOS II

  1. 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.

  1. Crear la BD y las tablas respectivas en mysql (guardar evidencias del código mysql con el que resuelva dicha actividad) (Entrega 2)
  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)
  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.