sexta-feira, 3 de agosto de 2012

Preenchimento do Banco de Dados

 Foi definido sequencialmente a quantidade de cada tabela e após isso executado o programa abaixo, gerando o tamanho esperado de 5GB no Banco de Dados.

____________________________________________________________________________

/*
 * Created on 17/06/2012
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
//import java.util.ArrayList;

public class tebd_insert {

   
    public static void main(String args[]) throws Exception{
       
        //ArrayList<Integer> medicos = new ArrayList<Integer>(); // 4
        //ArrayList<Integer> pacotes = new ArrayList<Integer>(); // 5
       
        Boolean slashes = true;   
        String cidade;
        String estado;
        int x = 0;
    MyTableCollection tabelas = new MyTableCollection();

        Integer c_qtd_medico = 60;
        Integer c_qtd_empresa = c_qtd_medico * 50;
        Integer c_qtd_exames = 5;
        Integer c_qtd_funcionario_empresa = c_qtd_empresa * 30;
        Integer c_qtd_func_empr_exames = 20 * c_qtd_funcionario_empresa * c_qtd_exames;
        Integer c_qtd_laudo = c_qtd_func_empr_exames;

        Integer qtd_medico = c_qtd_medico;
        Integer qtd_empresa = qtd_medico * 5;
        //Integer qtd_exames = 5;
        Integer qtd_funcionario_empresa = 400;
        Integer qtd_func_empr_exames = 200;
        Integer qtd_laudo = 200;

    MyTable empresa = new MyTable("clin_empresa", c_qtd_empresa);
        empresa.addColumn("empr_codigo", new MyPKColumn() );
        empresa.addColumn("empr_cnpj", new MyColumn("numeric", 15) );
        empresa.addColumn("empr_razao_social", new MyColumn("% % %",6,12) );
        empresa.addColumn("empr_fantasia", new MyColumn("% %",6,12) );
        empresa.addColumn("empr_rua", new MyColumn("% %",6,12) );
        empresa.addColumn("empr_numero", new MyColumn("numeric", 5) );
        empresa.addColumn("empr_complemento", new MyColumn("% %",6,12) );
        empresa.addColumn("empr_bairro", new MyColumn("%",6,12) );
        empresa.addColumn("empr_cidade", new MyColumn("% %",6,19) );
        empresa.addColumn("empr_estado", new MyColumn("% % %",6,12) );
        empresa.addColumn("empr_pais", new MyColumn("varchar", 105) );
        empresa.addColumn("empr_data_cadastro", new MyColumn("date", null) ); //timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
        empresa.addColumn("empr_ativo", new MyColumn("int", null ) );
    tabelas.add(empresa);

    MyTable exames = new MyTable("clin_exames", c_qtd_exames);
        exames.addColumn("exam_codigo", new MyPKColumn() );
        exames.addColumn("exam_nome", new MyColumn("varchar", 65) );
        exames.addColumn("exam_ativo", new MyColumn("int", null) );
    tabelas.add(exames);

    MyTable func_empr_exames = new MyTable("clin_func_empr_exames", c_qtd_func_empr_exames);
        func_empr_exames.addColumn("clin_func_empr_exam_codigo", new MyPKColumn() );
        func_empr_exames.addColumn("clin_func_empr_exam_fk_exames", new MyFKColumn("clin_exames", "exam_codigo") );
        func_empr_exames.addColumn("clin_func_empr_exam_fk_funcionario", new MyFKColumn("clin_funcionario_empresa", "func_empr_codigo") );
        func_empr_exames.addColumn("clin_func_empr_exam_fk_funcionario", new MyColumn("int", null) );
        func_empr_exames.addColumn("clin_func_empr_exam_fk_exames", new MyColumn("int", null) );
        func_empr_exames.addColumn("clin_func_empr_exam_data_exame", new MyColumn("date", null) );
        func_empr_exames.addColumn("clin_func_empr_exam_qtd", new MyColumn("??") ); // reduzindo até 99
        func_empr_exames.addColumn("clin_func_empr_exam_valor", new MyColumn("??.??") ); //decimal 10,2
    tabelas.add(func_empr_exames);

    MyTable funcionario_empresa = new MyTable("clin_funcionario_empresa", c_qtd_funcionario_empresa);
        funcionario_empresa.addColumn("func_empr_codigo", new MyPKColumn() );
        funcionario_empresa.addColumn("func_empr_fk_empresa", new MyFKColumn("clin_empresa", "empr_codigo") );
        funcionario_empresa.addColumn("func_empr_fk_empresa", new MyColumn("int", null) );
        funcionario_empresa.addColumn("func_empr_nome", new MyColumn("% %",6,12) );
        funcionario_empresa.addColumn("func_empr_rg", new MyColumn("????????-??") );
        funcionario_empresa.addColumn("func_empr_cpf", new MyColumn("???.???.???-??") );
        funcionario_empresa.addColumn("func_empr_rua", new MyColumn("% %",6,12) );
        funcionario_empresa.addColumn("func_empr_numero", new MyColumn("numeric", 5) );
        funcionario_empresa.addColumn("func_empr_complemento", new MyColumn("% %",6,20) );
        funcionario_empresa.addColumn("func_empr_bairro", new MyColumn("%",6,12) );
        funcionario_empresa.addColumn("func_empr_cidade", new MyColumn("% %",6,12) );
        funcionario_empresa.addColumn("func_empr_estado", new MyColumn("varchar", 145) );
        funcionario_empresa.addColumn("func_empr_pais", new MyColumn("varchar", 105) );
        //funcionario_empresa.addColumn("func_empr_data_cadastro", new MyColumn("date", null) ); //timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
        funcionario_empresa.addColumn("func_empr_ativo", new MyColumn("int", null) );
    tabelas.add(funcionario_empresa);

    MyTable laudo = new MyTable("clin_laudo", c_qtd_laudo);
        laudo.addColumn("laudo_fk_func_empr_exames", new MyPKColumn() );
        laudo.addColumn("laudo_fk_medico", new MyPKColumn() );
        laudo.addColumn("laudo_fk_func_empr_exames", new MyFKColumn("clin_func_empr_exames", "clin_func_empr_exam_codigo") );
        laudo.addColumn("laudo_fk_medico", new MyFKColumn("clin_medico", "medi_codigo") );
        laudo.addColumn("laudo_data", new MyColumn("date", null) ); //
        laudo.addColumn("laudo_descricao", new MyColumn("text", 510) );
    tabelas.add(laudo);

    MyTable medico = new MyTable("clin_medico", c_qtd_medico);
        medico.addColumn("medi_codigo", new MyPKColumn() );
        medico.addColumn("medi_nome", new MyColumn("% %",6,12) );
        medico.addColumn("medi_crm", new MyColumn("numeric", 15) );
        medico.addColumn("medi_especialidade", new MyColumn("varchar", 10) );
        medico.addColumn("medi_ativo", new MyColumn("varchar", 45) );
    tabelas.add(medico);
   
   
    Double objetivo = 5368709120.0;
   
   
    System.out.println("Size in Bytes");
    System.out.println(tabelas.calculate());
    System.out.println(objetivo);
   
    System.out.println("objetivo alcancado = " + (tabelas.calculate() >= objetivo) );
   
   
    MyDataAccess.open();
   
    //Inserindo 5 exames
    exames.setCustomValue(slashes, "exam_nome",  "Admissional");
    exames.setCustomValue(slashes, "exam_ativo", "1");
    MyDataAccess.ExecuteInsert(exames.generateInsert());
   
    exames.setCustomValue(slashes, "exam_nome",  "Retorno ao Trabalho");
    exames.setCustomValue(slashes, "exam_ativo", "1");
    MyDataAccess.ExecuteInsert(exames.generateInsert());
   
    exames.setCustomValue(slashes, "exam_nome",  "Mudanca de Funcao");
    exames.setCustomValue(slashes, "exam_ativo", "1");
    MyDataAccess.ExecuteInsert(exames.generateInsert());
   
    exames.setCustomValue(true, "exam_nome",  "Periódico");
    exames.setCustomValue(slashes, "exam_ativo", "1");
    MyDataAccess.ExecuteInsert(exames.generateInsert());
   
    exames.setCustomValue(true, "exam_nome",  "Demissional");
    exames.setCustomValue(slashes, "exam_ativo", "1");
    MyDataAccess.ExecuteInsert(exames.generateInsert());
   
    // Inserindo valores
    Integer empresa_id;
    Integer func_empr_exames_id;
    Integer funcionario_id;
   
        for(Integer i = 0; i < qtd_medico; i++){
            //medico.setCustomValue(slashes, "medi_nome", XXXXXXXX );
            //medico.setCustomValue(slashes, "medi_crm", XXXXXXXX );
            //medico.setCustomValue(slashes, "medi_especialidade", XXXXXXXX );
            medico.setCustomValue(slashes, "medi_ativo", "1");
            MyDataAccess.ExecuteInsert(medico.generateInsert());
            //System.out.print("M"+i);
        }
       
        System.out.println("");
   
        for(Integer i = 0; i < qtd_empresa; i++){
            x++;
            if (x % 2 == 0){
                x=0;
                MyDataAccess.close();
                MyDataAccess.open();
            }
            //System.out.print("E"+i);
           
            cidade = MyRand.RandomNome(10, 15);
            //cep = MyRand.MaskedNumber("??????-???");
            estado = MyRand.RandomUF();
            //csdsda
           
           
            //empresa.setCustomValue(slashes, "empr_cnpj", XXXXXXXX );
            //empresa.setCustomValue(slashes, "empr_razao_social", XXXXXXXX );
            //empresa.setCustomValue(slashes, "empr_fantasia", XXXXXXXX );
            //empresa.setCustomValue(slashes, "empr_rua", XXXXXXXX );
            //empresa.setCustomValue(slashes, "empr_numero", XXXXXXXX );
            //empresa.setCustomValue(slashes, "empr_complemento", XXXXXXXX );
            //empresa.setCustomValue(slashes, "empr_bairro", XXXXXXXX );
            //empresa.setCustomValue(slashes, "empr_cidade", cidade);
            empresa.setCustomValue(slashes, "empr_estado", MyRand.RandomUF());
            empresa.setCustomValue(slashes, "empr_pais", "Brasil" );
            //empresa.setCustomValue(slashes, "empr_data_cadastro", XXXXXXXX );
            empresa.setCustomValue(slashes, "empr_ativo", "1" );

            empresa_id = MyDataAccess.ExecuteInsert(empresa.generateInsert());
           
            for(Integer j = 0; j < qtd_funcionario_empresa; j++){
               
                //System.out.print("F"+j);
               
                funcionario_empresa.setCustomValue(slashes, "func_empr_fk_empresa", empresa_id.toString() );
                //funcionario_empresa.setCustomValue(slashes, "func_empr_nome", "XXXXXXXX" );
                funcionario_empresa.setCustomValue(slashes, "func_empr_rg", MyRand.MaskedNumber("????????-??") );
                funcionario_empresa.setCustomValue(slashes, "func_empr_cpf", MyRand.MaskedNumber("???.???.???-??") );
                //funcionario_empresa.setCustomValue(slashes, "func_empr_rua", "XXXXXXXX" );
                //funcionario_empresa.setCustomValue(slashes, "func_empr_numero", "XXXXXXXX" );
                //funcionario_empresa.setCustomValue(slashes, "func_empr_complemento", "XXXXXXXX" );
                //funcionario_empresa.setCustomValue(slashes, "func_empr_bairro", "XXXXXXXX" );
                //funcionario_empresa.setCustomValue(slashes, "func_empr_cidade", "XXXXXXXX" );
                funcionario_empresa.setCustomValue(slashes, "func_empr_estado", MyRand.RandomUF());
                funcionario_empresa.setCustomValue(slashes, "func_empr_pais", "Brasil");
                //funcionario_empresa.setCustomValue(slashes, "func_empr_data_cadastro", "XXXXXXXXXX");
                funcionario_empresa.setCustomValue(slashes, "func_empr_ativo", "1");

                funcionario_id = MyDataAccess.ExecuteInsert(funcionario_empresa.generateInsert());
               
                Boolean demitido = false;
                //funcionarios fazendo exames.
                for(Integer k = 0; k < qtd_func_empr_exames; k++){

                    //System.out.print("x"+k);
                    /*
                     * Liga um funcinario a um exame ?
                     *
                     * */
                   
                    //ids dos exames de 2 a 5
                    Integer exame_id;
                   
                    if(k == 0){
                        exame_id = 0;
                    }
                    else if( (!demitido) && (k == 4) && (MyRand.RandomInt(0,50) == 35) )
                    {
                        exame_id = 4;
                    }
                    else{
                        exame_id = MyRand.RandomInt(1,3);
                    }
                   
                    //um exame realizado
                    func_empr_exames.setCustomValue(slashes, "clin_func_empr_exam_fk_funcionario", funcionario_id.toString() );
                    func_empr_exames.setCustomValue(false, "clin_func_empr_exam_fk_exames", "(SELECT c.`exam_codigo` FROM clin_exames c LIMIT "+exame_id+",1)" );
                    //func_empr_exames.setCustomValue(slashes, "clin_func_empr_exam_data_exame", XXXXXXXX );
                    //func_empr_exames.setCustomValue(slashes, "clin_func_empr_exam_qtd", XXXXXXXX );
                    //func_empr_exames.setCustomValue(slashes, "clin_func_empr_exam_valor", XXXXXXXX );
                    func_empr_exames_id = MyDataAccess.ExecuteInsert(func_empr_exames.generateInsert());
                           
                    //um laudo
                    laudo.setCustomValue(slashes, "laudo_fk_func_empr_exames", func_empr_exames_id.toString());
                    laudo.setCustomValue(false, "laudo_fk_medico", "(SELECT c.`medi_codigo` FROM clin_medico c LIMIT "+MyRand.RandomInt(0,qtd_medico-1)+",1)"); //Select???
                    MyDataAccess.ExecuteInsert(laudo.generateInsert());
               
                }
               
                //System.out.println("");
            }
           
            //System.out.println("");
        }
       
    MyDataAccess.close();
   
   
   
       
/*
clin_medico
clin_empresa
    clin_exames
    clin_funcionario_empresa
    clin_func_empr_exames -- clin_laudo
*/
       
       
       
    }
   
   
}

Nenhum comentário:

Postar um comentário