Tp Final de Auditoría

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

Tp final de auditoría

Integrantes: Gonzalo Rodríguez, Axel Narváez, Isaac Laura, Nina Denis,

Brian Loayza.

Profe: Lautaro fino Schneider

Materia: administración y gestión de base de datos

Año y división: 5°3


–el guion de las tablas y base de datos

CREATE DATABASE `pvz` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE


utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;

CREATE TABLE `cliente` (


`idCliente` int NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) NOT NULL,
`apellido` varchar(45) NOT NULL,
`fechanacimiento` int NOT NULL,
`dni` varchar(8) NOT NULL,
`niveldefensa` varchar(45) NOT NULL,
`experienciaBotanicaprevia` int NOT NULL,
`Domicilio` varchar(100) DEFAULT NULL,
`DomicilioNumero` varchar(100) DEFAULT NULL,
`domiciliocalle` varchar(100) DEFAULT NULL,
`Antecedentes_eticas` varchar(150) DEFAULT NULL,
`soledad?` bit(1) DEFAULT NULL,
`telefono` varchar(10) DEFAULT NULL,
PRIMARY KEY (`idCliente`),
UNIQUE KEY `telefono_UNIQUE` (`telefono`),
CONSTRAINT `idCliente` FOREIGN KEY (`idCliente`) REFERENCES `orden` (`idcliente`)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `empleado` (


`idempleado` int NOT NULL,
`nombre` varchar(45) NOT NULL,
`apellido` varchar(45) NOT NULL,
`fecha_de_nacimiento` int NOT NULL,
`id_telefono` int NOT NULL,
PRIMARY KEY (`idempleado`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `orden` (


`idcliente` int NOT NULL,
`idproducto` int NOT NULL,
`costo` int NOT NULL,
`cantidad` int NOT NULL,
PRIMARY KEY (`idcliente`,`idproducto`),
KEY `idproducto_idx` (`idproducto`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `plantas` (


`idplantas` int NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) NOT NULL,
`costo` int NOT NULL,
`stock` int NOT NULL,
`tipo_de_planta` varchar(45) NOT NULL,
`dificultad_de_mantencion` varchar(45) NOT NULL,
PRIMARY KEY (`idplantas`),
CONSTRAINT `idplanta` FOREIGN KEY (`idplantas`) REFERENCES `producto`
(`idplanta`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `producto` (


`idproducto` int NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) NOT NULL,
`costo` int NOT NULL,
`stock` int NOT NULL,
`dificultad_de_uso` int NOT NULL,
`tipo_de_producto` varchar(100) NOT NULL,
`FechaDeVencimiento` date NOT NULL,
`idsemilla` int NOT NULL,
`idplanta` int NOT NULL,
`idempleado` int NOT NULL,
PRIMARY KEY (`idproducto`),
KEY `idplanta_idx` (`idsemilla`),
KEY `idplanta_idx1` (`idplanta`),
KEY `ForaneaEmplado_idx` (`idempleado`),
CONSTRAINT `ForaneaEmplado` FOREIGN KEY (`idempleado`) REFERENCES
`empleado` (`idempleado`) ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT `ForaneaPlantas` FOREIGN KEY (`idplanta`) REFERENCES `plantas`
(`idplantas`) ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT `ForaneaSemillas` FOREIGN KEY (`idsemilla`) REFERENCES `semillas`
(`idsemillas`) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

CREATE TABLE `semillas` (


`idsemillas` int NOT NULL,
`costo` int NOT NULL,
`stock` varchar(100) NOT NULL,
`dificultad_de_plantacion` int NOT NULL,
`dificultad_de_enseñansa` varchar(45) NOT NULL,
`crecimiento_esperado` varchar(45) NOT NULL,
`dificultad_de_crianza` varchar(45) NOT NULL,
PRIMARY KEY (`idsemillas`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

–los triggers

DELIMITER //
CREATE TRIGGER cliente_BEFORE_INSERT_2
BEFORE update ON `cliente` FOR EACH ROW
BEGIN
delete from cliente where NEW.idCliente = (Select idCliente FROM cliente WHERE
ExperienciaBotanicaprevia < (Select dificultad_de_uso FROM producto));
set MESSAGE_text="error, no puedes comprar algo que no puedas usar.";
END //
DELIMITER ;

DELIMITER //
CREATE TRIGGER cliente_BEFORE_INSERT_2
BEFORE update ON `cliente` FOR EACH ROW
BEGIN
delete from cliente where NEW.idCliente = (Select idCliente FROM cliente WHERE
ExperienciaBotanicaprevia < (Select dificultad_de_plantacion FROM semillas));
set MESSAGE_text="error, no puedes comprar algo que no puedas usar.";
END //
DELIMITER ;
DELIMITER //

CREATE TRIGGER verificar_fecha_vencimiento


BEFORE INSERT ON productos
FOR EACH ROW
BEGIN
-- Verificamos que la fecha de vencimiento no sea anterior a la fecha actual
IF NEW.fecha_vencimiento < CURDATE() THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Error: No se puede agregar un producto vencido.';
END IF;
END;

//

DELIMITER ;

–el guión de los perfiles

create user
'usuarioempleado'@'localhost'
identified by 'admin';
create user
'usuariocliente'@'localhost'
identified by 'admin';

grant select (idcliente) ON pvz.orden to 'usuariocliente'@'localhost';

grant all on pvz.empleado to 'usuarioempleado'@'localhost';


grant all on pvz.cliente to 'usuarioempleado'@'localhost';
grant all on pvz.orden to 'usuarioempleado'@'localhost';
grant all on pvz.plantas to 'usuarioempleado'@'localhost';
grant all on pvz.producto to 'usuarioempleado'@'localhost';
grant all on pvz.semillas to 'usuarioempleado'@'localhost';
grant select,update,alter on pvz.empleado to 'usuarioempleado'@'localhost';
grant select,update,alter on pvz.cliente to 'usuarioempleado'@'localhost';
grant select,update,alter on pvz.orden to 'usuarioempleado'@'localhost';
grant select,update,alter on pvz.plantas to 'usuarioempleado'@'localhost';
grant select,update,alter on pvz.producto to 'usuarioempleado'@'localhost';
grant select,update,alter on pvz.semillas to 'usuarioempleado'@'localhost';

diagrama entidad relación

También podría gustarte