Está en la página 1de 8

Actividad en clase 4

1. Información General

Nombre de la Asignatura: Base de Datos

Carrera: Tecnología Superior en Desarrollo de Software

Semestre: Tercero

Paralelo: A

Fecha: 06-01-2023

Nombre del estudiante: Kevin Paucay

Tema: Corrección de la Evaluación parcial

Docente: Ing. Juan Espín Mg.

2. Requerimiento

Implementar una base de datos para controlar el proceso de compras, la cual debe
tener actualizado el stock y el precio de ventas. (implementar las tablas que se
requieran para que sea funcional la base de datos), debe tener las siguientes
características:

1. Generar el código de la creación de la base de datos (3 puntos)


2. Capturar el esquema de la base de datos implementado (2 puntos)
3. Utilizar un trigger para la actualización del stock y valor de venta (2,5 puntos)
(Código y captura de pruebas)
4. Utilizar un trigger para tener un historial de compras realizadas con la fecha y
responsable (2,5puntos) (código y captura de pruebas)

Administración www.itstena.edu.ec
Km 1 1/2 vía Archidona Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
3. Desarrollo
Generar el código de la creación de la base de datos (3 puntos)
CREATE DATABASE IF NOT EXISTS correccion1;
USE correccion1;
CREATE TABLE IF NOT EXISTS usuarios (
usuario VARCHAR(45) NOT NULL,
contraseñas VARCHAR(45) NULL,
PRIMARY KEY (usuario));
insert into usuarios values
('Kevin','kevin29');

CREATE TABLE categoria (


idCategoria int(11) NOT NULL,
Nomcat varchar(45) NOT NULL,
descripcion varchar(45) NOT NULL,
foto varchar(45) NOT NULL,
PRIMARY KEY (idCategoria)
);
INSERT INTO categoria VALUES (1,'CONFITERIA','CHOCOLATES Y DULCES','FOTO');

CREATE TABLE proveedor (


idProveedor int(11) NOT NULL,
Nombre varchar(45) NOT NULL,
Direccion varchar(45) NOT NULL,
telefono varchar(45) NOT NULL,
correo varchar(45) NOT NULL,
PRIMARY KEY (idProveedor)
);
INSERT INTO proveedor VALUES (1,'MARCOS QUISPE','TENA','08765432','Marco@GMAIL.COM');

--
-- Table structure for table empleado
--

CREATE TABLE empleado (


CodEmp int(11) NOT NULL,

Administración www.itstena.edu.ec
Km 1 1/2 vía Archidona Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
NomEmp varchar(45) NOT NULL,
DirecEmp varchar(45) NOT NULL,
TelfEmp varchar(45) NOT NULL,
CorreoEmp varchar(45) NOT NULL,
PRIMARY KEY (CodEmp)
);

INSERT INTO empleado VALUES (1,'KEVIN PAUCAY','TENA','08765432','KEVIN@GMAIL.COM');

CREATE TABLE pedidos (


idPedido int(11) NOT NULL,
FechPed varchar(45) NOT NULL,
FechEnt varchar(45) NOT NULL,
Empleado_CodEmp int(11) NOT NULL,
Proveedor_idProveedor int(11) NOT NULL,
PRIMARY KEY (idPedido),
KEY fk_Pedidos_Empleado_idx (Empleado_CodEmp),
KEY fk_Pedidos_Proveedor1_idx (Proveedor_idProveedor),
CONSTRAINT fk_Pedidos_Empleado FOREIGN KEY (Empleado_CodEmp) REFERENCES empleado
(CodEmp) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_Pedidos_Proveedor1 FOREIGN KEY (Proveedor_idProveedor) REFERENCES proveedor
(idProveedor) ON DELETE CASCADE ON UPDATE CASCADE
);

INSERT INTO pedidos VALUES (1,'05-01-2023','09-01-2023',1,1);

CREATE TABLE IF NOT EXISTS Historial (


CodHis INT NOT NULL AUTO_INCREMENT,
Historial_Actual VARCHAR(200) NULL,
Fecha DATETIME NULL default CURRENT_TIMESTAMP,
PRIMARY KEY(CodHis));

delimiter $$
create trigger Historial_Pedidos after insert on pedidos
for each row
begin
insert into historial (Historial_Actual)
value (concat('Compra realizada, corresponde al siguiente nombre: ',
new.NombPed, ' con el código: ',new.idPedido, ' generado por el empleado con el id:

Administración www.itstena.edu.ec
Km 1 1/2 vía Archidona Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
',new.Empleado_CodEmp));
end$$
delimiter $$

CREATE TABLE productos (


idProducto int(11) NOT NULL,
Descprod varchar(45) DEFAULT NULL,
stock int(11) NOT NULL,
valor_compra int(11) DEFAULT NULL,
valor_venta double DEFAULT NULL,
unidadmedida int(11) DEFAULT NULL,
Categoria_idCategoria int(11) NOT NULL,
PRIMARY KEY (idProducto),
KEY fk_Productos_Categoria1_idx (Categoria_idCategoria),
CONSTRAINT fk_Productos_Categoria1 FOREIGN KEY (Categoria_idCategoria) REFERENCES categoria
(idCategoria) ON DELETE CASCADE ON UPDATE CASCADE
);

INSERT INTO productos VALUES (1,'CHOCOLATES',200,1,4.5,12,1);

CREATE TABLE detalle (


NoFactura int(11) NOT NULL,
Cantidad int(11) DEFAULT NULL,
descripcion varchar(45) DEFAULT NULL,
valor_unitario double DEFAULT NULL,
Pedidos_idPedido int(11) NOT NULL,
Productos_idProducto int(11) NOT NULL,
PRIMARY KEY (NoFactura),
KEY fk_Detalle_Pedidos1_idx (Pedidos_idPedido),
KEY fk_Detalle_Productos1_idx (Productos_idProducto),
CONSTRAINT fk_Detalle_Pedidos1 FOREIGN KEY (Pedidos_idPedido) REFERENCES pedidos (idPedido)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_Detalle_Productos1 FOREIGN KEY (Productos_idProducto) REFERENCES productos
(idProducto) ON DELETE CASCADE ON UPDATE CASCADE
);

DELIMITER $$

Administración www.itstena.edu.ec
Km 1 1/2 vía Archidona Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
CREATE trigger stock after insert on detalle
for each row
begin
declare idp int default 0;
declare unid int default 0;
declare valor int default 0;
set idp=new.productos_idProducto;
set unid=new.cantidad;
set valor=new.valor_unitario;
update productos set stock =stock - unid where idproducto=idp;
update productos set valor_venta=new.valor_unitario where idproducto=idp;
end $$
INSERT INTO detalle VALUES
(1,1,'CHOCOLATES',1,1,1),(2,1,'CHOCOLATES',1.5,1,1),(3,1,'CHOCOLATES',4.5,1,1);

Capturar el esquema de la base de datos implementado (2 puntos)

Administración www.itstena.edu.ec
Km 1 1/2 vía Archidona Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
1. Utilizar un trigger para la actualización del stock y valor de venta (2,5 puntos)
(Código y captura de pruebas)

Imagen trigger

Datos antes de insertar un valor

Datos después de insertar un valor

Administración www.itstena.edu.ec
Km 1 1/2 vía Archidona Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
2. Utilizar un trigger para tener un historial de compras realizadas con la fecha y
responsable (2,5puntos) (código y captura de pruebas)

IMAGEN DEL TRIGGER

DATOS ANTES DEL TRIGGER

Administración www.itstena.edu.ec
Km 1 1/2 vía Archidona Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
DATOS DEPUES DE EJECUTAR EL TRIGGER

Administración www.itstena.edu.ec
Km 1 1/2 vía Archidona Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador

También podría gustarte