UTILIZANDO O SCRIPT ABAIXO CRIE AS TRIGGERS A SEGUIR:
1.
A TABELA PESSOA_CRACHA NÃO POSSUI O NOME DO USUÁRIO QUE REALIZOU O CADASTRO DE INFORMAÇÕES.
CRIE A TRIGGER LOG_AUDITORIA QUE DEVERÁ TER TODAS AS INFORMAÇÕES DA TABELA PESSOA_CRACHA E TAMBÉM
O NOME DO USUÁRIO QUE REALIZARAM INCLUSÕES.
2.
CRIAR UMA TRIGGER QUE BLOQUEIE A LIBERAÇÃO DE NOVOS CRACHAS(PESSOA_CRACHA) RESPEITANDO AS
SEGUINTES REGRAS:
- O EXPEDIENTE DE TRABALHO É DAS 06:00 AS 23:30 HR DE SEGUNDA À SABADO;
- AOS DOMINGOS É PROIBIDA A LIBERAÇÃO DE CRACHAS;
3.
CRIE A TRIGGER LOG_ACESSO QUE CONTENHA INFORMAÇÕES DESCRITIVAS DAS ÁREAS ACESSADAS PELOS
FUNCIONÁRIOS INFORMANDO SE ELE ESTAVA ENTRANDO OU SAINDO.
4.
CRIE UMA TRIGGER QUE VALIDE SE UMA EMPRESA JÁ FOI CADASTRADA NA TABELA.
DROP TABLE PESSOA CASCADE CONSTRAINTS;
DROP TABLE EMPRESA CASCADE CONSTRAINTS;
DROP TABLE TIP_PES CASCADE CONSTRAINTS;
DROP TABLE CRACHA CASCADE CONSTRAINTS;
DROP TABLE PESSOA_CRACHA CASCADE CONSTRAINTS;
DROP TABLE PERM_ACESSO CASCADE CONSTRAINTS;
DROP TABLE PONTO_ACESSO CASCADE CONSTRAINTS;
DROP TABLE MARCACAO CASCADE CONSTRAINTS;
CREATE TABLE PESSOA(
COD_PESSOA NUMBER(7) NOT NULL,
NOME VARCHAR2(50),
TIPO CHAR (1)CONSTRAINT CK_TIPO CHECK (TIPO IN ('M','F')),
CPF NUMBER(11) NOT NULL,
COD_EMPRESA NUMBER(5) NOT NULL,
DAT_CADASTRO DATE
);
CREATE TABLE EMPRESA(
COD_EMPRESA NUMBER(5) NOT NULL,
NOME_EMPRESA VARCHAR(50)NOT NULL,
END_EMPRESA VARCHAR(50) NOT NULL,
CONTATO_EMPRESA VARCHAR(20) NOT NULL
);
CREATE TABLE TIP_PES(
COD_TIP NUMBER (5) NOT NULL,
DESC_TIP VARCHAR2 (50),
CONSTRAINT TIP_PK PRIMARY KEY (COD_TIP)
);
CREATE TABLE CRACHA(
COD_CRACHA NUMBER(7)NOT NULL,
TIP_CRACHA NUMBER(1)NOT NULL,
STATUS VARCHAR2(10)CONSTRAINT CK_STATUS CHECK (STATUS IN ('ATIVO','INATIVO'))
);
CREATE TABLE PESSOA_CRACHA(
COD_PESSOA NUMBER(7)NOT NULL,
COD_CRACHA NUMBER(7)NOT NULL,
DAT_ENTREGA DATE,
DAT_VAL DATE
);
CREATE TABLE PERM_ACESSO(
COD_PESSOA NUMBER(7)NOT NULL,
COD_PTOACESSO NUMBER (4)NOT NULL
);
CREATE TABLE PONTO_ACESSO(
COD_PTOACC NUMBER(4) PRIMARY KEY,
DESC_PTOACC VARCHAR2(25)
);
CREATE TABLE MARCACAO(
COD_MARC NUMBER(10)NOT NULL,
COD_CRACHA NUMBER(7)NOT NULL,
COD_PTOACC NUMBER(4)NOT NULL,
SENTIDO CHAR(1),
DAT_ACC DATE
);
-- ALTERAÇÃO NA TABELA PESSOA_CRACHA -ALTER TABLE PESSOA_CRACHA
ADD CONSTRAINT PERM_ACESSO_COD_PESSOA_PK PRIMARY KEY (COD_PESSOA,COD_CRACHA, DAT_ENTREGA);
-- ALTERAÇÃO NA TABELA MARCAÇÃO -ALTER TABLE MARCACAO
ADD CONSTRAINT MARCACAO_COD_MARC_PK PRIMARY KEY (COD_MARC);
ALTER TABLE MARCACAO
ADD CONSTRAINT COD_PTOACC_FK FOREIGN KEY (COD_PTOACC) REFERENCES PONTO_ACESSO (COD_PTOACC);
-- ALTERAÇÃO NA TABELA PESSOA -ALTER TABLE PESSOA
ADD CONSTRAINT PESSAO_COD_PESSOA_PK PRIMARY KEY (COD_PESSOA);
ALTER TABLE EMPRESA
ADD CONSTRAINT EMPRESA_PK PRIMARY KEY (COD_EMPRESA);
ALTER TABLE PESSOA
ADD CONSTRAINT PESSOA_EMPRESA_FK FOREIGN KEY (COD_EMPRESA) REFERENCES EMPRESA (COD_EMPRESA);
-- ALTERAÇÃO NA TABELA EMPRESA --
-- ALTERAÇÃO NA TABELA CRACHA -ALTER TABLE CRACHA
ADD CONSTRAINT PESSAO_CRACHA_PK PRIMARY KEY (COD_CRACHA);
INSERT INTO EMPRESA
VALUES (00001,'NOME EMPRESA','RUA TAL,9', 'JOSE 9876-7245');
INSERT INTO EMPRESA
VALUES (2,'XPTO CONSULTORIA','RUA DOS PATOS,29', 'ZINALDO 3343-5543');
INSERT INTO EMPRESA
VALUES (3,'EMBRAER','RUA DOS INCAS,32', 'ARLINDO 6656-4345');
INSERT INTO EMPRESA
VALUES (4,'NIKE','RUA DOS TENIS,334', 'FRANCISCA 8890-2222');
INSERT INTO EMPRESA
VALUES (5,'KALUNGA','RUA COMPUTADO,122', 'CACILDA 5415-1112');
INSERT INTO EMPRESA
VALUES (6,'GOOGLE','AV DAS PESQUISAS,66', 'WESLEY 7762-8900');
INSERT INTO EMPRESA
VALUES (7,'FACEBOOK','RUA AZUL,35', 'ARIOVALDO 3321-8777');
INSERT INTO EMPRESA
VALUES (8,'NASA','RUA DAS GALAXIAS,444', 'JACINTO 8876-5546');
INSERT INTO EMPRESA
VALUES (9,'FERRRARI','RUA DOS CARROS,99', 'TONY STARK 4453-5432');
INSERT INTO EMPRESA
VALUES (10,'MERCEDES','RUA DOS CARROS,29', 'CASTILO 4456-3334');
-- INSERT INTO TABELA PESSOA -INSERT INTO PESSOA
VALUES (1,'Jose Bonifacio','M',12345678901,1,TO_DATE ('20120530','YYYYMMDD'));
INSERT INTO PESSOA
VALUES (2,'MARIA DAS GRAÇAS','F',33454345677,2,SYSDATE);
INSERT INTO PESSOA
VALUES (3,'MARIA DAS GRAÇAS','F',77678761912,3,SYSDATE);
INSERT INTO PESSOA
VALUES (4,'MARIA DAS GRAÇAS','F',38176372673,4,SYSDATE);
INSERT INTO PESSOA
VALUES (5,'MARIA DAS GRAÇAS','F',39183781273,5,SYSDATE);
INSERT INTO PESSOA
VALUES (6,'MARIA DAS GRAÇAS','F',31289378738,6,SYSDATE);
INSERT INTO PESSOA
VALUES (7,'MARIA DAS GRAÇAS','F',32019839218,7,SYSDATE);
INSERT INTO PESSOA
VALUES (8,'MARIA DAS GRAÇAS','F',83719373799,8,SYSDATE);
INSERT INTO PESSOA
VALUES (9,'MARIA DAS GRAÇAS','F',74628376466,9,SYSDATE);
INSERT INTO PESSOA
VALUES (10,'MARIA DAS GRAÇAS','F',73289173827,10,SYSDATE);
-- INSERT INTO TABELA TIP_PES -INSERT INTO TIP_PES
VALUES (1,'VISITANTE');
INSERT INTO TIP_PES
VALUES (2,'FUNCIONARIO');
-- INSERT INTO TABELA CRACHA -INSERT INTO CRACHA
VALUES (1,1,'ATIVO');
INSERT INTO CRACHA
VALUES (2,2,'INATIVO');
-- INSERT INTO TABELA PESSOA_CRACHA -INSERT INTO PESSOA_CRACHA
VALUES(1,1,SYSDATE,SYSDATE);
INSERT INTO PESSOA_CRACHA
VALUES(2,2,SYSDATE,SYSDATE);
INSERT INTO PESSOA_CRACHA
VALUES(3,3,SYSDATE,SYSDATE);
INSERT INTO PESSOA_CRACHA
VALUES(4,4,SYSDATE,SYSDATE);
INSERT INTO PESSOA_CRACHA
VALUES(5,5,SYSDATE,SYSDATE);
INSERT INTO PESSOA_CRACHA
VALUES(6,6,SYSDATE,SYSDATE);
INSERT INTO PESSOA_CRACHA
VALUES(7,7,SYSDATE,SYSDATE);
INSERT INTO PESSOA_CRACHA
VALUES(8,8,SYSDATE,SYSDATE);
INSERT INTO PESSOA_CRACHA
VALUES(9,9,SYSDATE,SYSDATE);
INSERT INTO PESSOA_CRACHA
VALUES(10,10,SYSDATE,SYSDATE);
-- INSERT INTO TABELA PERM_ACESSO -INSERT INTO PERM_ACESSO
VALUES(1,1);
INSERT INTO PERM_ACESSO
VALUES(2,2);
INSERT INTO PERM_ACESSO
VALUES(3,3);
INSERT INTO PERM_ACESSO
VALUES(4,1);
INSERT INTO PERM_ACESSO
VALUES(5,3);
INSERT INTO PERM_ACESSO
VALUES(6,2);
INSERT INTO PERM_ACESSO
VALUES(7,1);
INSERT INTO PERM_ACESSO
VALUES(8,1);
INSERT INTO PERM_ACESSO
VALUES(9,1);
INSERT INTO PERM_ACESSO
VALUES(10,1);
-- INSERT INTO TABELA PONTO_ACESSO -INSERT INTO PONTO_ACESSO
VALUES(1,'PORTARIA');
INSERT INTO PONTO_ACESSO
VALUES(2,'CATRACA');
INSERT INTO PONTO_ACESSO
VALUES(3,'RECEPÇÃO');
INSERT INTO MARCACAO
VALUES (1,1,1,'E',SYSDATE);
INSERT INTO MARCACAO
VALUES (2,2,2,'S',SYSDATE);
INSERT INTO MARCACAO
VALUES (3,3,1,'E',SYSDATE);
INSERT INTO MARCACAO
VALUES (4,4,1,'S',SYSDATE);
INSERT INTO MARCACAO
VALUES (5,5,2,'E',SYSDATE);
INSERT INTO MARCACAO
VALUES (6,6,1,'E',SYSDATE);
INSERT INTO MARCACAO
VALUES (7,7,2,'E',SYSDATE);
INSERT INTO MARCACAO
VALUES (8,8,1,'S',SYSDATE);
INSERT INTO MARCACAO
VALUES (9,9,2,'E',SYSDATE);
INSERT INTO MARCACAO
VALUES (10,10,1,'E',SYSDATE);
Download

utilizando o script abaixo crie as triggers a seguir