A geração de massa de dados é muito importante para que testemos o sistema num quantitativo de registros significante, e assim, mensurar o desempenho aproximado do ambiente de produção. Muitas são as formas de gerar tal massa de dados, mas manter o relacionamento em tal geração geralmente requer certo trabalho.
Para usuários do PostgreSql, este dispõe em sua ferramenta de administração, o pgAdminIII, o recurso chamado de pgScript. Utilizando-se deste recurso, a geração de tal massa de dados é feita dentro do ambiente do SGBD, o que otimiza a manutenção dos relacionamentos e tempo demandado para a elaboração da rotina.
Vamos considerar a seguinte modelagem para o exemplo de geração:
Tem-se o script de criação:
create table autor( id_autor serial, nome varchar(50), sexo varchar(1), primary key (id_autor)); create table livro ( id_livro serial, id_autor integer, titulo varchar(45), editora varchar(45), isbn varchar(45), edicao varchar(45), data_publicacao date, preco_venda numeric, primary key (id_livro), foreign key (id_autor) references autor (id_autor));
CONCEITOS pgSCRIPT
Atribuição:
set @varName = value;
print @varName;
if, while
Geração aleatória de dados: Exemplos:
- gerar inteiros aleatórios entre 1 e 999:
set @inteiro = integer(1,999);
- gerar um valor textual com 3 "palavras" entre 5 e 10 caracteres:
set @texto = string(5,10,3);
Tomando a modelagem exposta acima, entende-se que um autor pode ter vários livros. Simularemos a inserção de 200 autores relacionando cada um com 100 livros, para tanto, no console do pgAdmin, criamos:
set @idAutor = 1; set @idAutor = 1; set @nome = string(5,11,3); -- 3 palavras entre 5 e 11 caracteres; set @sexo = string(1,1); --variáveis para inserção em livro set @titulo = string(3,10,3); set @editora = string(6,15,2); set @isbn = string(20,20,1); set @edicao = string(1,8,2); set @dataPublicacao = date('01/01/1990', '26/10/2011'); set @preco = real(9,200,2); while @idAutor <= 200 begin insert into autor (id_autor, nome, sexo) values ('@idAutor', '@nome', '@sexo'); set @contLivros = 0; while @contLivros < 100 begin insert into livro (id_autor, titulo, editora, isbn, edicao, data_publicacao, preco_venda) values('@idAutor', '@titulo', '@editora', '@isbn', '@edicao', '@dataPublicacao', '@preco'); set @contLivros = @contLivros + 1; end set @idAutor = @idAutor + 1; end
Neste momento nossa massa de dados para autores e livros está pronta, repare que a inserção é realizada de modo a fazer uso da relação 1:N entre autor e livro. Constituído o script, pressione o botão "Execute pgScript" ou tecle <<F6>>. Você verificará o console executar os scripts:
Observe que com o uso do pgScript, integrado nativamente ao pgAdminIII, este proporciona grande agilidade no desenvolvimento para a geração de massa de dados. Outras alternativas para tal geração, por certo demandam maior trabalho e tempo de configuração. A grande vantagem do se usar o pgScript, é poder manter o relacionamento na tarefa de inserção.
Espero que tenham gostado!
Conhece o Andrei? Ele tava fazendo um treco pra gerar massa de dados automaticamente. Você diz que tabela quer gerar massa, o programa identifica os tipos dos campos, relacionamentos, toda essa parafernália e faz a "mágica".
ResponderExcluirOpa legal heim!? Quando tiver pronto, ficaria legal um post, caso exponha o sistema.
ResponderExcluirMuito bom o Post, eu estava procurando algo nesse sentido, criar uma massa de dados para teste para tentar identificar alguns pontos de melhoria de performance.
ResponderExcluirObrigado por acessar!
ExcluirVolte sempre ;0