Está en la página 1de 17

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: 04-01-2023

Nombre del estudiante: Kevin Paucay

Tema: 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)

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
3. Desarrollo
1. Generar el código de la creación de la base de datos (3 puntos)

CREATE DATABASE PARCIAL_1 ;

USE PARCIAL_1;

-- -----------------------------------------------------

-- Table mydb.proveedor

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS proveedor (

idproveedor INT NOT NULL,

nombre VARCHAR(45) ,

telefono VARCHAR(45) ,

productos VARCHAR(45) ,

PRIMARY KEY (idproveedor));

INSERT INTO proveedor VALUES

(1,'NESTLE','098765432','GOLOSINAS Y CONFITERIA'),

(2,'MAGGI','0298765432','VIVERES'),

(3,'MI RANCHITO','098765432','LEGUMBRES Y VERDURAS'),

(4,'FAMILIA','098765432','ASEO Y LIMPIEZA');

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
-- -----------------------------------------------------

-- Table mydb.tienda

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS tienda (

nombre VARCHAR(45) NOT NULL,

direccion VARCHAR(45) ,

PRIMARY KEY (nombre));

INSERT INTO tienda VALUES

('COMERCIAL DANIELITO','AV. 15 DE NOVIEMBRE');

-- -----------------------------------------------------

-- Table mydb.factura

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS factura (

idfactura INT NOT NULL,

proveedor_idproveedor INT NOT NULL,

tienda_nombre VARCHAR(45) NOT NULL,

producto VARCHAR(45) ,

cantidad VARCHAR(45) ,

PRIMARY KEY (idfactura,proveedor_idproveedor, tienda_nombre),

INDEX fk_proveedor_has_tienda_tienda1_idx (tienda_nombre ASC) ,

INDEX fk_proveedor_has_tienda_proveedor_idx (proveedor_idproveedor ASC) ,

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
CONSTRAINT fk_proveedor_has_tienda_proveedor

FOREIGN KEY (proveedor_idproveedor)

REFERENCES proveedor (idproveedor)

ON DELETE NO ACTION

ON UPDATE NO ACTION,

CONSTRAINT fk_proveedor_has_tienda_tienda1

FOREIGN KEY (tienda_nombre)

REFERENCES tienda (nombre)

ON DELETE NO ACTION

ON UPDATE NO ACTION) ;

INSERT INTO factura VALUES

(1,1,'COMERCIAL DANIELITO','GOLOSINAS Y CONFITERIA','10'),

(2,2,'COMERCIAL DANIELITO','VIVERES','40'),

(3,3,'COMERCIAL DANIELITO','LEGUMBRES Y VERDURAS','100'),

(4,4,'COMERCIAL DANIELITO','ASEO Y LIMPIEZA','25');

CREATE TABLE IF NOT EXISTS compras (

Idcompra VARCHAR(50) ,

IDproveedor VARCHAR(50),

tienda VARCHAR(50) ,

producto VARCHAR(50) ,

cantidad INT(40) ,

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
usuario VARCHAR(40) ,

fecha_compra DATETIME );

create trigger compras

after insert on factura

for each row

insert into compras


(Idcompra,IDproveedor,tienda,producto,cantidad,usuario,fecha_compra)

values
(new.idfactura,new.proveedor_idproveedor,new.tienda_nombre,new.producto,new.canti
dad,current_user, now());

-- -----------------------------------------------------

-- Table categoria

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS categoria (

cod_cat VARCHAR(10) NOT NULL,

nom_cat VARCHAR(20) NOT NULL,

PRIMARY KEY (cod_cat));

insert into categoria (cod_cat,nom_cat)

values

('CA1','DULCES'),

('CA2','FRUTAS'),

('CA3','VERDURAS');

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
-- -----------------------------------------------------

-- Table parcial1.clientes

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS clientes (

cod_cli VARCHAR(10) NOT NULL,

ci_cli VARCHAR(10) NOT NULL,

nom_cli VARCHAR(40) NOT NULL,

ape_cli VARCHAR(40) NOT NULL,

tel_cli VARCHAR(10) NOT NULL,

dir_cli VARCHAR(50) NOT NULL,

e_mail VARCHAR(70) NOT NULL,

tienda_nombre VARCHAR(45),

PRIMARY KEY (cod_cli),

INDEX fk_clientes_tienda1_idx (tienda_nombre ASC) ,

CONSTRAINT fk_clientes_tienda1

FOREIGN KEY (tienda_nombre)

REFERENCES tienda (nombre)

ON DELETE NO ACTION

ON UPDATE NO ACTION);

insert into clientes (cod_cli,ci_cli,nom_cli,ape_cli,tel_cli,dir_cli,e_mail)

values

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
('C1','1501021053','LUCHO','LOPEZ','0934548693','Av 15 de
noviembre','pedro@hotmail.com'),

('C2','1501011043','JAVIER','ANDY','0987656432','Av 15 de
noviembre','pedro@hotmail.com'),

('C3','1501041523','PEPE','PEREZ','0942436424','Av 15 de
noviembre','pedro@hotmail.com'),

('C4','1501041522','MICHAEL','AVILES','0978543421','Av 15 de
noviembre','pedro@hotmail.com'),

('C5','1508741525','XAVIER','ORDONEZ','0989967547','Av 15 de
noviembre','pedro@hotmail.com'),

('C6','1501531053','EREN','SHIHUANGO','0989989549','Av 15 de
noviembre','pedro@hotmail.com'),

('C7','1501051521','REINER','BUNNY','9087654328','Av 15 de
noviembre','pedro@hotmail.com'),

('C8','1501021035','ARMIN','TORRES','0967456576','Av 15 de
noviembre','pedro@hotmail.com');

-- -----------------------------------------------------

-- Table parcial1.modificaciones_productos

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS modificaciones_productos (

nombre VARCHAR(50) ,

anterior_stock VARCHAR(50) ,

nuevo_stock VARCHAR(50) ,

anterior_precio INT(40) ,

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
nuevo_precio INT(40) ,

usuario VARCHAR(40) ,

fecha_alter_producto DATETIME );

create trigger cambio_productos

before update on productos

for each row

insert into modificaciones_productos


(nombre,anterior_stock,nuevo_stock,anterior_precio,nuevo_precio

,usuario,fecha_alter_producto) values
(old.nom_pro,old.stock ,new.stock,old.precio_venta,new.precio_venta,current_user,
now());

-- -----------------------------------------------------

-- Table parcial1.pagos

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS pagos (

cod_pago VARCHAR(10) NOT NULL,

monto INT(11) NOT NULL,

fecha_pago DATETIME ,

PRIMARY KEY (cod_pago));

insert into pagos (cod_pago,monto,fecha_pago)

values

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
('PA1','2','2022-02-01'),

('PA2','3','2022-07-02'),

('PA3','90','2022-07-03'),

('PA4','23','2022-02-01'),

('PA5','35','2022-07-02'),

('PA6','150','2022-07-03');

-- -----------------------------------------------------

-- Table parcial1.pedidos

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS pedidos (

cod_ped VARCHAR(10) NOT NULL,

fecha_ped DATETIME ,

cantidad VARCHAR(10),

cod_cli VARCHAR(10) NOT NULL,

cod_pago VARCHAR(10) NOT NULL,

PRIMARY KEY (cod_ped),

INDEX fk_cod_cli (cod_cli ASC) ,

INDEX fk_cod_pago (cod_pago ASC) ,

CONSTRAINT fk_cod_cli

FOREIGN KEY (cod_cli)

REFERENCES clientes (cod_cli)

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
ON DELETE CASCADE

ON UPDATE CASCADE,

CONSTRAINT fk_cod_pago

FOREIGN KEY (cod_pago)

REFERENCES pagos (cod_pago)

ON DELETE CASCADE

ON UPDATE CASCADE);

insert into pedidos (cod_ped,fecha_ped,cod_pago,cod_cli)

values

('PE1','2022-07-03 12:30:12','PA1','C1'),

('PE2','2022-07-03 12:30:12','PA2','C2'),

('PE3','2022-07-03 12:30:12','PA3','C3');

-- -----------------------------------------------------

-- Table parcial1.productos

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS productos (

cod_prod VARCHAR(10) NOT NULL,

nom_pro VARCHAR(40) NOT NULL,

precio_compra INT(11) NOT NULL,

precio_venta INT(11) NOT NULL,

stock VARCHAR(40) NOT NULL,

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
cod_cat VARCHAR(10) NOT NULL,

cod_ped VARCHAR(10) NOT NULL,

PRIMARY KEY (cod_prod),

INDEX fkcod_cat (cod_cat ASC) ,

INDEX fkcod_ped (cod_ped ASC) ,

CONSTRAINT fkcod_cat

FOREIGN KEY (cod_cat)

REFERENCES categoria (cod_cat)

ON DELETE CASCADE

ON UPDATE CASCADE,

CONSTRAINT fkcod_ped

FOREIGN KEY (cod_ped)

REFERENCES pedidos (cod_ped)

ON DELETE CASCADE

ON UPDATE CASCADE);

insert into productos

values

('P1','CHUPETES PLOP','50','100','50','CA1','PE1'),

('P2','PERAS','50','120','50','CA2','PE2'),

('P3','CEBOLLINES','30','90','50','CA3','PE3'),

('P4','PLATANOS','30','60','50','CA2','PE3'),

('P5','CHOCOLATES','50','105','50','CA1','PE1');

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
update productos set stock='100',precio_venta='150'where cod_prod='P1';

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)

CREATE TABLE IF NOT EXISTS modificaciones_productos (

nombre VARCHAR(50) ,

anterior_stock VARCHAR(50) ,

nuevo_stock VARCHAR(50) ,

anterior_precio INT(40) ,

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
nuevo_precio INT(40) ,

usuario VARCHAR(40) ,

fecha_alter_producto DATETIME );

create trigger cambio_productos

before update on productos

for each row

insert into modificaciones_productos


(nombre,anterior_stock,nuevo_stock,anterior_precio,nuevo_precio

,usuario,fecha_alter_producto) values
(old.nom_pro,old.stock ,new.stock,old.precio_venta,new.precio_venta,current_user,
now());

CREATE TABLE IF NOT EXISTS productos (

cod_prod VARCHAR(10) NOT NULL,

nom_pro VARCHAR(40) NOT NULL,

precio_compra INT(11) NOT NULL,

precio_venta INT(11) NOT NULL,

stock VARCHAR(40) NOT NULL,

cod_cat VARCHAR(10) NOT NULL,

cod_ped VARCHAR(10) NOT NULL,

PRIMARY KEY (cod_prod),

INDEX fkcod_cat (cod_cat ASC) ,

INDEX fkcod_ped (cod_ped ASC) ,

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
CONSTRAINT fkcod_cat

FOREIGN KEY (cod_cat)

REFERENCES categoria (cod_cat)

ON DELETE CASCADE

ON UPDATE CASCADE,

CONSTRAINT fkcod_ped

FOREIGN KEY (cod_ped)

REFERENCES pedidos (cod_ped)

ON DELETE CASCADE

ON UPDATE CASCADE);

insert into productos

values

('P1','CHUPETES PLOP','50','100','50','CA1','PE1'),

('P2','PERAS','50','120','50','CA2','PE2'),

('P3','CEBOLLINES','30','90','50','CA3','PE3'),

('P4','PLATANOS','30','60','50','CA2','PE3'),

('P5','CHOCOLATES','50','105','50','CA1','PE1');

update productos set stock='200',precio_venta='5000'where cod_prod='P1';

Km 1 1/2 vía Archidona


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

CREATE TABLE IF NOT EXISTS factura (

idfactura INT NOT NULL,

proveedor_idproveedor INT NOT NULL,

tienda_nombre VARCHAR(45) NOT NULL,

producto VARCHAR(45) ,

cantidad VARCHAR(45) ,

PRIMARY KEY (idfactura,proveedor_idproveedor, tienda_nombre),

INDEX fk_proveedor_has_tienda_tienda1_idx (tienda_nombre ASC) ,

INDEX fk_proveedor_has_tienda_proveedor_idx (proveedor_idproveedor ASC) ,

CONSTRAINT fk_proveedor_has_tienda_proveedor

FOREIGN KEY (proveedor_idproveedor)

REFERENCES proveedor (idproveedor)

ON DELETE NO ACTION

ON UPDATE NO ACTION,

CONSTRAINT fk_proveedor_has_tienda_tienda1

FOREIGN KEY (tienda_nombre)

REFERENCES tienda (nombre)

ON DELETE NO ACTION

ON UPDATE NO ACTION) ;

INSERT INTO factura VALUES

(1,1,'COMERCIAL DANIELITO','GOLOSINAS Y CONFITERIA','10'),

(2,2,'COMERCIAL DANIELITO','VIVERES','40'),

(3,3,'COMERCIAL DANIELITO','LEGUMBRES Y VERDURAS','100'),

(4,4,'COMERCIAL DANIELITO','ASEO Y LIMPIEZA','25');

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador
CREATE TABLE IF NOT EXISTS compras (

Idcompra VARCHAR(50) ,

IDproveedor VARCHAR(50),

tienda VARCHAR(50) ,

producto VARCHAR(50) ,

cantidad INT(40) ,

usuario VARCHAR(40) ,

fecha_compra DATETIME );

create trigger compras

after insert on factura

for each row

insert into compras (Idcompra,IDproveedor,tienda,producto,cantidad,usuario,fecha_compra)

values
(new.idfactura,new.proveedor_idproveedor,new.tienda_nombre,new.producto,new.cantidad,curr
ent_user, now());

Km 1 1/2 vía Archidona


Administración www.itstena.edu.ec
Desarrollo de Software
secretaria.general@itstena.edu.ec
Gestión de Operaciones Turísticas 0987664845
Napo - Ecuador

También podría gustarte