Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Dale. Vai salvar é? */
- /* Drop tables */
- DROP TABLE funcionarios CASCADE CONSTRAINTS;
- DROP TABLE telefones_funcionarios CASCADE CONSTRAINTS;
- DROP TABLE enderecos_funcionarios CASCADE CONSTRAINTS;
- DROP TABLE clientes CASCADE CONSTRAINTS;
- DROP TABLE representantes CASCADE CONSTRAINTS;
- DROP TABLE telefones_clientes CASCADE CONSTRAINTS;
- DROP TABLE enderecos_clientes CASCADE CONSTRAINTS;
- DROP TABLE embarcacoes CASCADE CONSTRAINTS;
- DROP TABLE especificacoes CASCADE CONSTRAINTS;
- DROP TABLE responsaveis_setores CASCADE CONSTRAINTS;
- DROP TABLE setores CASCADE CONSTRAINTS;
- /* DROP TABLE projetos FORCE; tirei, visto que deixou de existir. Agora inserimos direto nas tabelas de especializações usando somente o tipo_projetos */
- DROP TABLE projetos_criacoes CASCADE CONSTRAINTS;
- DROP TABLE projetos_restauracoes CASCADE CONSTRAINTS;
- DROP TABLE execucoes_projetos CASCADE CONSTRAINTS;
- DROP TABLE solicitacoes_projetos CASCADE CONSTRAINTS;
- DROP TABLE equipamentos CASCADE CONSTRAINTS;
- DROP TABLE compras_equipamentos CASCADE CONSTRAINTS;
- DROP TABLE manutencoes_equipamentos CASCADE CONSTRAINTS;
- DROP TABLE lista_telefones_clientes CASCADE CONSTRAINTS;
- /* Drop types */
- DROP TYPE tipo_funcionarios FORCE;
- DROP TYPE tipo_telefone FORCE;
- DROP TYPE tipo_enderecos_funcionarios FORCE;
- DROP TYPE tipo_clientes FORCE;
- DROP TYPE tipo_representantes FORCE;
- DROP TYPE tipo_telefones_funcionarios FORCE;
- DROP TYPE tipo_nt_telefones_clientes FORCE;
- DROP TYPE tipo_enderecos_clientes FORCE;
- DROP TYPE tipo_embarcacoes FORCE;
- DROP TYPE tipo_especificacoes FORCE;
- DROP TYPE tipo_responsaveis_setores FORCE;
- DROP TYPE tipo_setores FORCE;
- DROP TYPE tipo_projetos_criacoes FORCE;
- DROP TYPE tipo_projetos_restauracoes FORCE;
- DROP TYPE tipo_execucoes_projetos FORCE;
- DROP TYPE tipo_solicitacoes_projetos FORCE;
- DROP TYPE tipo_equipamentos FORCE;
- DROP TYPE tipo_compras_equipamentos FORCE;
- DROP TYPE tipo_manutencoes_equipamentos FORCE;
- /* Create types*/
- CREATE OR REPLACE TYPE tipo_funcionarios AS object (
- cpf VARCHAR2(11),
- nome VARCHAR2(50),
- data_admissao DATE,
- data_nascimento DATE,
- cpf_super REF tipo_funcionarios
- );
- /
- CREATE OR REPLACE TYPE tipo_telefone AS object(
- numero VARCHAR(15)
- );
- /
- CREATE OR REPLACE TYPE tipo_telefones_funcionarios AS VARRAY(5) OF tipo_telefone;
- /
- CREATE OR REPLACE TYPE tipo_enderecos_funcionarios AS object(
- funcionario_cpf REF tipo_funcionarios,
- cep VARCHAR2(8),
- descricao VARCHAR2(50)
- );
- /
- CREATE OR REPLACE TYPE tipo_clientes AS object (
- cnpj VARCHAR2(15),
- nome_empresa VARCHAR2(50),
- email VARCHAR2(50),
- site VARCHAR2(50)
- );
- /
- CREATE OR REPLACE TYPE tipo_representantes AS object (
- cpf_representante VARCHAR2(15),
- empresa_cnpj REF tipo_clientes,
- nome VARCHAR2(50)
- );
- /
- CREATE TYPE tipo_nt_telefones_clientes AS TABLE OF tipo_telefone;
- /
- CREATE OR REPLACE TYPE tipo_enderecos_clientes AS object (
- cliente_cnpj REF tipo_clientes,
- cep VARCHAR2(8),
- descricao VARCHAR2(50)
- );
- /
- CREATE OR REPLACE TYPE tipo_embarcacoes AS object(
- certificado VARCHAR2(50),
- tipo VARCHAR2(50),
- data_fabricacao DATE
- --CONSTRAINT embarcacao_tipo_ck CHECK (tipo IN ('CONTEINEIRO', 'GASEIRO', 'VLCC', 'PETROLEIRO'))
- );
- /
- CREATE OR REPLACE TYPE tipo_especificacoes AS object(
- versao DECIMAL(5, 2),
- peso DECIMAL(6, 3),
- comprimento DECIMAL(5, 3),
- altura DECIMAL(5, 3),
- capacidade_ocupantes INTEGER,
- capacidade_carga DECIMAL(5, 3),
- certificado_embarcacao REF tipo_embarcacoes
- );
- /
- CREATE OR REPLACE TYPE tipo_setores AS object (
- id INTEGER,
- nome_setor VARCHAR2(50),
- descricao VARCHAR2(50)
- );
- /
- CREATE OR REPLACE TYPE tipo_projetos AS object (
- id INTEGER,
- nome VARCHAR2(50),
- descricao VARCHAR2(200),
- orcamento DECIMAL(5, 2),
- data_inicio DATE,
- data_previsao_termino DATE,
- data_termino DATE
- ) NOT FINAL NOT INSTANTIABLE;
- /
- CREATE OR REPLACE TYPE tipo_projetos_criacoes UNDER tipo_projetos (
- modelagem VARCHAR2(50)
- );
- /
- CREATE OR REPLACE TYPE tipo_projetos_restauracoes UNDER tipo_projetos(
- partes_reutilizadas INTEGER,
- partes_descartadas INTEGER
- );
- /
- CREATE OR REPLACE TYPE tipo_responsaveis_setores AS object (
- funcionario_cpf REF tipo_funcionarios,
- setor_id REF tipo_setores
- );
- /
- CREATE OR REPLACE TYPE tipo_execucoes_projetos AS object (
- setor_id REF tipo_setores,
- projeto_id REF tipo_projetos
- );
- /
- CREATE OR REPLACE TYPE tipo_solicitacoes_projetos AS object (
- projeto_id REF tipo_projetos,
- embarcacao_certificado REF tipo_embarcacoes,
- cliente_cnpj REF tipo_clientes,
- DATA DATE
- );
- /
- CREATE OR REPLACE TYPE tipo_equipamentos AS object (
- id INTEGER,
- nome_equipamento VARCHAR2(50),
- tipo VARCHAR2(50),
- data_uso_inicio DATE,
- data_uso_termino DATE
- );
- /
- CREATE OR REPLACE TYPE tipo_compras_equipamentos AS object (
- equipamento_id REF tipo_equipamentos,
- setor_id REF tipo_setores,
- funcionario_cpf REF tipo_funcionarios
- );
- /
- CREATE OR REPLACE TYPE tipo_manutencoes_equipamentos AS object (
- equipamento_id REF tipo_equipamentos,
- DATA DATE,
- situacao VARCHAR2(50)
- --CONSTRAINT manutencao_situacao_ck CHECK (situacao IN ('PENDENTE', 'EM ANDAMENTO', 'CONCLUIDA'))
- );
- /
- /*create tables*/
- CREATE TABLE funcionarios OF tipo_funcionarios (
- cpf PRIMARY KEY,
- cpf_super WITH ROWID REFERENCES funcionarios
- );
- CREATE TABLE telefones_funcionarios (
- funcionario_cpf REF tipo_funcionarios,
- lista_fones tipo_telefones_funcionarios
- );
- CREATE TABLE enderecos_funcionarios OF tipo_enderecos_funcionarios (
- cep PRIMARY KEY,
- funcionario_cpf WITH rowid REFERENCES funcionarios
- );
- CREATE TABLE clientes OF tipo_clientes (
- cnpj PRIMARY KEY
- );
- CREATE TABLE lista_telefones_clientes (
- cliente_cnpj REF tipo_clientes,
- lista_fones tipo_nt_telefones_clientes
- ) nested TABLE lista_fones store AS nt_lista_fones;
- CREATE TABLE representantes OF tipo_representantes (
- cpf_representante PRIMARY KEY,
- empresa_cnpj WITH rowid REFERENCES clientes
- );
- CREATE TABLE enderecos_clientes OF tipo_enderecos_clientes (
- cep PRIMARY KEY,
- cliente_cnpj WITH rowid REFERENCES clientes
- );
- CREATE TABLE embarcacoes OF tipo_embarcacoes (
- certificado PRIMARY KEY
- --tipo CHECK (tipo IN ('CONTEINEIRO', 'GASEIRO', 'VLCC', 'PETROLEIRO'))
- );
- CREATE TABLE especificacoes OF tipo_especificacoes (
- versao PRIMARY KEY,
- certificado_embarcacao WITH rowid REFERENCES embarcacoes
- );
- CREATE TABLE setores OF tipo_setores (
- id PRIMARY KEY
- );
- CREATE TABLE projetos_criacoes OF tipo_projetos_criacoes (
- id PRIMARY KEY
- );
- CREATE TABLE projetos_restauracoes OF tipo_projetos_restauracoes (
- id PRIMARY KEY
- );
- CREATE TABLE responsaveis_setores OF tipo_responsaveis_setores (
- funcionario_cpf WITH rowid REFERENCES funcionarios,
- setor_id WITH rowid REFERENCES setores
- );
- CREATE TABLE execucoes_projetos OF tipo_execucoes_projetos (
- setor_id WITH rowid REFERENCES setores,
- projeto_id WITH rowid REFERENCES projetos_criacoes
- );
- CREATE TABLE solicitacoes_projetos OF tipo_solicitacoes_projetos (
- projeto_id WITH rowid REFERENCES projetos_criacoes,
- embarcacao_certificado WITH rowid REFERENCES embarcacoes,
- cliente_cnpj WITH rowid REFERENCES clientes
- );
- CREATE TABLE equipamentos OF tipo_equipamentos (
- id PRIMARY KEY
- );
- CREATE TABLE compras_equipamentos OF tipo_compras_equipamentos (
- equipamento_id WITH rowid REFERENCES equipamentos,
- setor_id WITH rowid REFERENCES setores,
- funcionario_cpf WITH rowid REFERENCES funcionarios
- );
- CREATE TABLE manutencoes_equipamentos OF tipo_manutencoes_equipamentos (
- DATA PRIMARY KEY,
- equipamento_id WITH rowid REFERENCES equipamentos
- --situacao CHECK (situacao IN ('PENDENTE', 'EM ANDAMENTO', 'CONCLUIDA'))
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement