Exercícios

Use os comandos DDL para criar o projeto físico do seguinte modelo relacional:

Resolução

--CREATE TABLE CANDIDATO_FUNCIONARIO

CREATE TABLE CANDIDATO_FUNCIONARIO(
    cod_indicacao       NUMBER(5),
    matricula           NUMBER(5),
    cod_candidato       NUMBER(5),
    dt_indicacao        DATE
);

--ADICIONANDO AS CONSTRAINTS

ALTER TABLE CANDIDATO_FUNCIONARIO ADD CONSTRAINT cod_indicacao_pk PRIMARY KEY (cod_indicacao);
ALTER TABLE CANDIDATO_FUNCIONARIO ADD CONSTRAINT matricula_fk FOREIGN KEY (matricula) REFERENCES FUNCIONARIO(matricula);
ALTER TABLE CANDIDATO_FUNCIONARIO ADD CONSTRAINT cod_candidato_fk FOREIGN KEY (cod_candidato) REFERENCES CANDIDATO(cod_candidato);
ALTER TABLE CANDIDATO_FUNCIONARIO MODIFY dt_indicacao NOT NULL;

--CREATE TABLE CANDIDATO

CREATE TABLE CANDIDATO (
    cod_candidato       NUMBER(5),
    nome                VARCHAR2(60),
    cpf                 NUMBER(11)
);

--ADICIONANDO AS CONSTRAINTS

ALTER TABLE CANDIDATO ADD CONSTRAINT cod_candidato_pk PRIMARY KEY(cod_candidato);
ALTER TABLE CANDIDATO MODIFY nome NOT NULL;
ALTER TABLE CANDIDATO MODIFY cpf NOT NULL;

--CREATE TABLE INSCRICAO

CREATE TABLE INSCRICAO (
    nr_inscricao        NUMBER(5),
    cod_candidato       NUMBER(5),
    cod_cargo           NUMBER(4),
    dt_inscricao        DATE
);

--ADICIONANDO AS CONSTRAINTS

ALTER TABLE INSCRICAO ADD CONSTRAINT nr_inscricao_pk PRIMARY KEY (nr_inscricao);
ALTER TABLE INSCRICAO ADD CONSTRAINT INSC_cod_candidato_fk FOREIGN KEY (cod_candidato) REFERENCES CANDIDATO(cod_candidato);
ALTER TABLE INSCRICAO ADD CONSTRAINT INSC_cod_cargo_fk FOREIGN KEY (cod_cargo) REFERENCES CARGO(cod_cargo);
ALTER TABLE INSCRICAO MODIFY dt_inscricao NOT NULL;

--CREATE TABLE TESTE

CREATE TABLE TESTE (
    cod_teste           NUMBER(6),
    cod_processo        NUMBER(6),
    cod_cargo           NUMBER(4),
    nr_inscricao        NUMBER(5),
    dt_teste            DATE,
    nota                NUMBER(4,2)
);

--ADICIONANDO AS CONSTRAINTS 

ALTER TABLE TESTE ADD CONSTRAINT TESTE_cod_teste_pk PRIMARY KEY (cod_teste);
ALTER TABLE TESTE ADD CONSTRAINT TESTE_cod_processo_fk FOREIGN KEY (cod_processo) REFERENCES PROCESSO_SELETIVO(cod_processo);
ALTER TABLE TESTE ADD CONSTRAINT TESTE_cod_cargo_fk FOREIGN KEY (cod_cargo) REFERENCES CARGO(cod_cargo);
ALTER TABLE TESTE ADD CONSTRAINT TESTE_nr_inscricao_fk FOREIGN KEY (nr_inscricao) REFERENCES INSCRICAO(nr_inscricao);
ALTER TABLE TESTE MODIFY dt_teste NOT NULL;

--CREATE TABLE CARGO

CREATE TABLE CARGO (
    cod_cargo           NUMBER(4),
    desc_cargo          VARCHAR2(30)
);

--ADICIONANDO AS CONSTRAINTS

ALTER TABLE CARGO ADD CONSTRAINT CARGO_cod_cargo_pk PRIMARY KEY (cod_cargo);
ALTER TABLE CARGO MODIFY desc_cargo NOT NULL;

--CREATE TABLE FUNCIONARIO

CREATE TABLE FUNCIONARIO (
    matricula           NUMBER(5),
    cod_depto           NUMBER(4),
    cod_cargo           NUMBER(4),
    Gerente             NUMBER(5),
    nome                VARCHAR2(60),
    cpf                 NUMBER(11),
    rg                  CHAR(15)
);

--ADICIONANDO AS CONSTRAINTS 

ALTER TABLE FUNCIONARIO ADD CONSTRAINT FUNC_matricula_pk PRIMARY KEY (matricula);
ALTER TABLE FUNCIONARIO ADD CONSTRAINT FUNC_cod_depto_fk FOREIGN KEY (cod_depto) REFERENCES DEPARTAMENTO(cod_depto);
ALTER TABLE FUNCIONARIO ADD CONSTRAINT FUNC_cod_cargo_fk FOREIGN KEY (cod_cargo) REFERENCES CARGO(cod_cargo);
ALTER TABLE FUNCIONARIO ADD CONSTRAINT FUNC_Gerente_fk FOREIGN KEY (Gerente) REFERENCES FUNCIONARIO(matricula);
ALTER TABLE FUNCIONARIO MODIFY nome NOT NULL;
ALTER TABLE FUNCIONARIO MODIFY cpf NOT NULL;
ALTER TABLE FUNCIONARIO MODIFY rg NOT NULL;

--CREATE TABLE DEPARTAMENTO

CREATE TABLE DEPARTAMENTO (
    cod_depto           NUMBER(4),
    desc_depto          VARCHAR2(30)
);

--ADICIONANDO AS CONSTRAINTS 

ALTER TABLE DEPARTAMENTO ADD CONSTRAINT DEPT_cod_depto_pk PRIMARY KEY (cod_depto);
ALTER TABLE DEPARTAMENTO MODIFY desc_depto NOT NULL;

--CREATE TABLE PROCESSO_SELETIVO

CREATE TABLE PROCESSO_SELETIVO (
    cod_processo           NUMBER(6),
    desc_processo          VARCHAR2(80)
);

--ADICIONANDO AS CONSTRAINTS

ALTER TABLE PROCESSO_SELETIVO ADD CONSTRAINT PS_cod_processo_pk PRIMARY KEY (cod_processo);
ALTER TABLE PROCESSO_SELETIVO MODIFY desc_processo NOT NULL;
  1. Criar um índice para a coluna nome data tabela funcionário
CREATE INDEX IX_NOME_FUNC ON FUNCIONARIO(nome);
  1. Criar um índice para a coluna NOTA e DT_TESTE da tabela pessoa TESTE
CREATE INDEX IX_NOME_DT_TESTE_FUNC ON TESTE(NOTA, DT_TESTE);
  1. Criar um índice único para a coluna CPF da tabela CANDIDADTO
CREATE UNIQUE INDEX IX_CPF_CANDIDATO ON CANDIDATO(CPF);

Exclusão das tabelas:

results matching ""

    No results matching ""