Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Drops types */
- DROP TYPE tp_funcionarios FORCE;
- DROP TYPE tp_telefone FORCE;
- DROP TYPE tp_enderecos_funcionarios FORCE;
- DROP TYPE tp_clientes FORCE;
- DROP TYPE tp_representantes FORCE;
- DROP TYPE tp_telefones_funcionarios FORCE;
- DROP TYPE tp_nt_telefones_clientes FORCE;
- DROP TYPE tp_enderecos_clientes FORCE;
- DROP TYPE tp_embarcacoes FORCE;
- DROP TYPE tp_especificacoes FORCE;
- DROP TYPE tp_responsaveis_setores FORCE;
- DROP TYPE tp_setores FORCE;
- DROP TYPE tp_projetos_criacoes FORCE;
- DROP TYPE tp_projetos_restauracoes FORCE;
- DROP TYPE tp_execucoes_projetos FORCE;
- DROP TYPE tp_solicitacoes_projetos FORCE;
- DROP TYPE tp_equipamentos FORCE;
- DROP TYPE tp_compras_equipamentos FORCE;
- DROP TYPE tp_manutencoes_equipamentos FORCE;
- /* Create types */
- CREATE OR REPLACE TYPE tp_funcionarios AS object (
- cpf VARCHAR2(11),
- nome VARCHAR2(50),
- data_admissao DATE,
- data_nascimento DATE,
- cpf_super REF tp_funcionarios
- );
- /
- CREATE OR REPLACE TYPE tp_telefone AS object(
- numero VARCHAR(15)
- );
- /
- CREATE OR REPLACE TYPE tp_telefones_funcionarios AS VARRAY(5) OF tp_telefone;
- /
- CREATE OR REPLACE TYPE tp_enderecos_funcionarios AS object(
- funcionario_cpf REF tp_funcionarios,
- cep VARCHAR2(8),
- descricao VARCHAR2(50)
- );
- /
- CREATE OR REPLACE TYPE tp_clientes AS object (
- cnpj VARCHAR2(15),
- nome_empresa VARCHAR2(50),
- email VARCHAR2(50),
- site VARCHAR2(50)
- );
- /
- CREATE OR REPLACE TYPE tp_representantes AS object (
- cpf_representante VARCHAR2(15),
- empresa_cnpj REF tp_clientes,
- nome VARCHAR2(50)
- );
- /
- CREATE TYPE tp_nt_telefones_clientes AS TABLE OF tp_telefone;
- /
- CREATE OR REPLACE TYPE tp_enderecos_clientes AS object (
- cliente_cnpj REF tp_clientes,
- cep VARCHAR2(8),
- descricao VARCHAR2(50)
- );
- /
- CREATE OR REPLACE TYPE tp_embarcacoes AS object(
- certificado VARCHAR2(50),
- tipo VARCHAR2(50),
- data_fabricacao DATE
- );
- /
- CREATE OR REPLACE TYPE tp_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 tp_embarcacoes
- );
- /
- CREATE OR REPLACE TYPE tp_setores AS object (
- id INTEGER,
- nome_setor VARCHAR2(50),
- descricao VARCHAR2(50)
- );
- /
- CREATE OR REPLACE TYPE tp_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 tp_projetos_criacoes UNDER tp_projetos (
- modelagem VARCHAR2(50)
- );
- /
- CREATE OR REPLACE TYPE tp_projetos_restauracoes UNDER tp_projetos(
- partes_reutilizadas INTEGER,
- partes_descartadas INTEGER
- );
- /
- CREATE OR REPLACE TYPE tp_responsaveis_setores AS object (
- funcionario_cpf REF tp_funcionarios,
- setor_id REF tp_setores
- );
- /
- CREATE OR REPLACE TYPE tp_execucoes_projetos AS object (
- setor_id REF tp_setores,
- projeto_id REF tp_projetos
- );
- /
- CREATE OR REPLACE TYPE tp_solicitacoes_projetos AS object (
- projeto_id REF tp_projetos,
- embarcacao_certificado REF tp_embarcacoes,
- cliente_cnpj REF tp_clientes,
- data_solicitacao DATE
- );
- /
- CREATE OR REPLACE TYPE tp_equipamentos AS object (
- id INTEGER,
- nome_equipamento VARCHAR2(50),
- tipo VARCHAR2(50),
- data_uso_inicio DATE,
- data_uso_termino DATE
- );
- /
- CREATE OR REPLACE TYPE tp_compras_equipamentos AS object (
- equipamento_id REF tp_equipamentos,
- setor_id REF tp_setores,
- funcionario_cpf REF tp_funcionarios
- );
- /
- CREATE OR REPLACE TYPE tp_manutencoes_equipamentos AS object (
- equipamento_id REF tp_equipamentos,
- data_manutencao DATE,
- situacao VARCHAR2(50)
- );
- /
- /* Drop tables */
- DROP TABLE tb_funcionarios CASCADE CONSTRAINTS;
- DROP TABLE tb_telefones_funcionarios CASCADE CONSTRAINTS;
- DROP TABLE tb_enderecos_funcionarios CASCADE CONSTRAINTS;
- DROP TABLE tb_clientes CASCADE CONSTRAINTS;
- DROP TABLE tb_representantes CASCADE CONSTRAINTS;
- DROP TABLE tb_telefones_clientes CASCADE CONSTRAINTS;
- DROP TABLE tb_enderecos_clientes CASCADE CONSTRAINTS;
- DROP TABLE tb_embarcacoes CASCADE CONSTRAINTS;
- DROP TABLE tb_especificacoes CASCADE CONSTRAINTS;
- DROP TABLE tb_responsaveis_setores CASCADE CONSTRAINTS;
- DROP TABLE tb_setores CASCADE CONSTRAINTS;
- /* DROP TABLE tb_projetos FORCE; tirei, visto que deixou de existir. Agora inserimos direto nas tabelas de especializações usando somente o tp_projetos */
- DROP TABLE tb_projetos_criacoes CASCADE CONSTRAINTS;
- DROP TABLE tb_projetos_restauracoes CASCADE CONSTRAINTS;
- DROP TABLE tb_execucoes_projetos CASCADE CONSTRAINTS;
- DROP TABLE tb_solicitacoes_projetos CASCADE CONSTRAINTS;
- DROP TABLE tb_equipamentos CASCADE CONSTRAINTS;
- DROP TABLE tb_compras_equipamentos CASCADE CONSTRAINTS;
- DROP TABLE tb_manutencoes_equipamentos CASCADE CONSTRAINTS;
- /* Create tables */
- CREATE TABLE tb_funcionarios OF tp_funcionarios (
- cpf PRIMARY KEY,
- cpf_super WITH ROWID REFERENCES tb_funcionarios
- );
- CREATE TABLE tb_telefones_funcionarios (
- funcionario_cpf REF tp_funcionarios,
- lista_fones tp_telefones_funcionarios
- );
- CREATE TABLE tb_enderecos_funcionarios OF tp_enderecos_funcionarios (
- cep PRIMARY KEY,
- funcionario_cpf WITH rowid REFERENCES tb_funcionarios
- );
- CREATE TABLE tb_clientes OF tp_clientes (
- cnpj PRIMARY KEY
- );
- CREATE TABLE tb_telefones_clientes (
- cliente_cnpj REF tp_clientes,
- lista_fones tp_nt_telefones_clientes
- ) nested TABLE lista_fones store AS nt_lista_fones;
- CREATE TABLE tb_representantes OF tp_representantes (
- cpf_representante PRIMARY KEY,
- empresa_cnpj WITH rowid REFERENCES tb_clientes
- );
- CREATE TABLE tb_enderecos_clientes OF tp_enderecos_clientes (
- cep PRIMARY KEY,
- cliente_cnpj WITH rowid REFERENCES tb_clientes
- );
- CREATE TABLE tb_embarcacoes OF tp_embarcacoes (
- certificado PRIMARY KEY
- );
- CREATE TABLE tb_especificacoes OF tp_especificacoes (
- versao PRIMARY KEY,
- certificado_embarcacao WITH rowid REFERENCES tb_embarcacoes
- );
- CREATE TABLE tb_setores OF tp_setores (
- id PRIMARY KEY
- );
- CREATE TABLE tb_projetos_criacoes OF tp_projetos_criacoes (
- id PRIMARY KEY
- );
- CREATE TABLE projetos_restauracoes OF tp_projetos_restauracoes (
- id PRIMARY KEY
- );
- CREATE TABLE tb_responsaveis_setores OF tp_responsaveis_setores (
- funcionario_cpf WITH rowid REFERENCES tb_funcionarios,
- setor_id WITH rowid REFERENCES tb_setores
- );
- CREATE TABLE tb_execucoes_projetos OF tp_execucoes_projetos (
- setor_id WITH rowid REFERENCES tb_setores,
- projeto_id WITH rowid REFERENCES tb_projetos_criacoes
- );
- CREATE TABLE tb_solicitacoes_projetos OF tp_solicitacoes_projetos (
- projeto_id WITH rowid REFERENCES tb_projetos_criacoes,
- embarcacao_certificado WITH rowid REFERENCES tb_embarcacoes,
- cliente_cnpj WITH rowid REFERENCES tb_clientes
- );
- CREATE TABLE tb_equipamentos OF tp_equipamentos (
- id PRIMARY KEY
- );
- CREATE TABLE tb_compras_equipamentos OF tp_compras_equipamentos (
- equipamento_id WITH rowid REFERENCES tb_equipamentos,
- setor_id WITH rowid REFERENCES tb_setores,
- funcionario_cpf WITH rowid REFERENCES tb_funcionarios
- );
- CREATE TABLE tb_manutencoes_equipamentos OF tp_manutencoes_equipamentos (
- data_manutencao PRIMARY KEY, /* renomeado, antes era só data */
- equipamento_id WITH rowid REFERENCES tb_equipamentos
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement