0
Introdu¸˜o
       ca                        pgScript                     Exemplificando               Finalizando




     ...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando




O que ser´ abordado...
  ...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Gera¸˜o de Dados
    ca


...
Introdu¸˜o
       ca                      pgScript        Exemplificando               Finalizando



Gera¸˜o de Dados
    ...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Gera¸˜o de Dados
    ca


...
Introdu¸˜o
       ca                      pgScript        Exemplificando               Finalizando



Gera¸˜o de Dados
    ...
Introdu¸˜o
       ca                      pgScript      Exemplificando               Finalizando



Gera¸˜o de Dados
    ca...
Introdu¸˜o
       ca                      pgScript      Exemplificando               Finalizando



Ferramentas especializa...
Introdu¸˜o
       ca                      pgScript       Exemplificando               Finalizando



Ferramentas especializ...
Introdu¸˜o
       ca                      pgScript      Exemplificando               Finalizando



Sobre o pgScript



Sob...
Introdu¸˜o
       ca                      pgScript        Exemplificando               Finalizando



Funcionalidades do pg...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Funcionalidades do pgScrip...
Introdu¸˜o
       ca                      pgScript          Exemplificando                 Finalizando



Funcionalidades d...
Introdu¸˜o
       ca                      pgScript          Exemplificando                 Finalizando



Funcionalidades d...
Introdu¸˜o
       ca                      pgScript          Exemplificando                 Finalizando



Funcionalidades d...
Introdu¸˜o
       ca                      pgScript           Exemplificando               Finalizando



Funcionalidades do...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Vari´veis, Registros e Sa´...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Vari´veis, Registros e Sa´...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Condi¸˜es
     co



Testa...
Introdu¸˜o
       ca                        pgScript         Exemplificando                Finalizando



Condi¸˜es
     co...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Gerando dados aleat´rios
 ...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Gerando dados aleat´rios
 ...
Introdu¸˜o
       ca                      pgScript                 Exemplificando               Finalizando



Gerando dado...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Gerando dados aleat´rios
 ...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Gerando dados aleat´rios
 ...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Gerando dados aleat´rios
 ...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando



Gerando dados aleat´rios
 ...
Introdu¸˜o
       ca                      pgScript   Exemplificando               Finalizando




Questionamento




      ...
Introdu¸˜o
       ca                      pgScript         Exemplificando                Finalizando




Contato



       ...
Upcoming SlideShare
Loading in...5
×

pgScript: um Elefante de barriga cheia

1,060

Published on

Alimentando Bases de dados PostgreSQL com pgScript.

Palestra ministrada no FISL 2009.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,060
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "pgScript: um Elefante de barriga cheia"

  1. 1. Introdu¸˜o ca pgScript Exemplificando Finalizando Um Elefante de barriga cheia Dickson S. Guedes guedes@guedesoft.net FISL Porto Alegre, 2009 26 de junho de 2009 Um Elefante de barriga cheia FISL Porto Alegre, 2009
  2. 2. Introdu¸˜o ca pgScript Exemplificando Finalizando O que ser´ abordado... a Introdu¸˜o ca Gera¸˜o de Dados ca Ferramentas especializadas pgScript Sobre o pgScript Funcionalidades do pgScript Exemplificando Vari´veis, Registros e Sa´ a ıda Condi¸˜es co Gerando dados aleat´rios o Finalizando Um Elefante de barriga cheia FISL Porto Alegre, 2009
  3. 3. Introdu¸˜o ca pgScript Exemplificando Finalizando Gera¸˜o de Dados ca Ciclo de vida do desenvolvimento An´lise a Modelagem Desenvolvimento Teste Suporte e Manuten¸˜o ca Um Elefante de barriga cheia FISL Porto Alegre, 2009
  4. 4. Introdu¸˜o ca pgScript Exemplificando Finalizando Gera¸˜o de Dados ca Solu¸oes manuais (?) c˜ INSERT INTO ... VALUES ... ctrl+c ctrl+v para os amantes do vim: v y p Um Elefante de barriga cheia FISL Porto Alegre, 2009
  5. 5. Introdu¸˜o ca pgScript Exemplificando Finalizando Gera¸˜o de Dados ca Solu¸oes via ferramentas auxiliares c˜ BrOffice Planilha Exporta¸˜o em CSV ca sed, awk, ... Um Elefante de barriga cheia FISL Porto Alegre, 2009
  6. 6. Introdu¸˜o ca pgScript Exemplificando Finalizando Gera¸˜o de Dados ca Solu¸oes via linguagens de programa¸˜o c˜ ca c, c++, ... perl, python, ruby, java, ... Um Elefante de barriga cheia FISL Porto Alegre, 2009
  7. 7. Introdu¸˜o ca pgScript Exemplificando Finalizando Gera¸˜o de Dados ca Solu¸oes baseadas em banco de dados c˜ pl/pgsql INSERT INTO ... SELECT ... random(), generate series() Um Elefante de barriga cheia FISL Porto Alegre, 2009
  8. 8. Introdu¸˜o ca pgScript Exemplificando Finalizando Ferramentas especializadas Solu¸oes Propriet´rias c˜ a EMS Data Generator for PostgreSQL DTM Data Generator GS Data Generator DB Data Generator Um Elefante de barriga cheia FISL Porto Alegre, 2009
  9. 9. Introdu¸˜o ca pgScript Exemplificando Finalizando Ferramentas especializadas Solu¸oes Livres c˜ dbgen (TPC-H) GenerateData.com (Web, Java) Data::Faker (Perl) datagen,faker (Ruby) DBMonster,dgMaster (Java) pgScript (C++) Um Elefante de barriga cheia FISL Porto Alegre, 2009
  10. 10. Introdu¸˜o ca pgScript Exemplificando Finalizando Sobre o pgScript Sobre o pgScript Google Summer of Code 2008 pgUnitTest pgScript Criado por Mickael Deloison Integrado ao pgAdminIII Um Elefante de barriga cheia FISL Porto Alegre, 2009
  11. 11. Introdu¸˜o ca pgScript Exemplificando Finalizando Funcionalidades do pgScript Vari´veis a DECLARE @variavel ´ opcional e Atribui¸˜o com SET @variavel = valor ca PRINT @variavel Um Elefante de barriga cheia FISL Porto Alegre, 2009
  12. 12. Introdu¸˜o ca pgScript Exemplificando Finalizando Funcionalidades do pgScript Controle de Fluxo Teste de Condi¸˜o: IF ca Estrutura de La¸o: WHILE c Um Elefante de barriga cheia FISL Porto Alegre, 2009
  13. 13. Introdu¸˜o ca pgScript Exemplificando Finalizando Funcionalidades do pgScript Gerando dados aleat´rios o INTEGER ( min, max, [sequence], [seed] ); REAL ( min, max, precision, [sequence], [seed] ); Um Elefante de barriga cheia FISL Porto Alegre, 2009
  14. 14. Introdu¸˜o ca pgScript Exemplificando Finalizando Funcionalidades do pgScript Gerando dados aleat´rios o INTEGER ( min, max, [sequence], [seed] ); REAL ( min, max, precision, [sequence], [seed] ); DATE ( min, max, [sequence], [seed] ); TIME ( min, max, [sequence], [seed] ); DATETIME ( min, max, [sequence], [seed] ); Um Elefante de barriga cheia FISL Porto Alegre, 2009
  15. 15. Introdu¸˜o ca pgScript Exemplificando Finalizando Funcionalidades do pgScript Gerando dados aleat´rios o INTEGER ( min, max, [sequence], [seed] ); REAL ( min, max, precision, [sequence], [seed] ); DATE ( min, max, [sequence], [seed] ); TIME ( min, max, [sequence], [seed] ); DATETIME ( min, max, [sequence], [seed] ); STRING ( min, max, [nb], [seed] ); REGEX ( regex, [seed] ); Um Elefante de barriga cheia FISL Porto Alegre, 2009
  16. 16. Introdu¸˜o ca pgScript Exemplificando Finalizando Funcionalidades do pgScript Gerando dados aleat´rios especiais o FILE ( path, [sequence], [seed], [encoding] ); REFERENCE ( table, column, [sequence], [seed] ); Um Elefante de barriga cheia FISL Porto Alegre, 2009
  17. 17. Introdu¸˜o ca pgScript Exemplificando Finalizando Vari´veis, Registros e Sa´ a ıda Um script simples DECLARE @R { @nome, @sobrenome, @email }; SET @R[0][’@nome’] = ’Dickson’; SET @R[0][’@sobrenome’] = ’Guedes’; SET @R[0][’@email’] = ’guedes at guedesoft dot net’; PRINT @R[0][’@nome’]; PRINT @R[0][1]; Um Elefante de barriga cheia FISL Porto Alegre, 2009
  18. 18. Introdu¸˜o ca pgScript Exemplificando Finalizando Vari´veis, Registros e Sa´ a ıda Um script simples - Resultado [PGSCRIPT ] Dickson [PGSCRIPT ] Guedes Um Elefante de barriga cheia FISL Porto Alegre, 2009
  19. 19. Introdu¸˜o ca pgScript Exemplificando Finalizando Condi¸˜es co Testando condi¸oes c˜ SET @total_teste=SELECT count(*) as t FROM teste; PRINT @total_teste; PRINT @total_teste[0][0]; IF CAST(@total_teste AS INTEGER) < 4 BEGIN PRINT ’Total de registros ´ menor que 4!’; e END ELSE BEGIN PRINT ’Total de registros ´ maior que 4!’; e END Um Elefante de barriga cheia FISL Porto Alegre, 2009
  20. 20. Introdu¸˜o ca pgScript Exemplificando Finalizando Condi¸˜es co Testando condi¸oes - Resultado c˜ [QUERY ] SELECT count(*) as t FROM teste [PGSCRIPT ] (5) [PGSCRIPT ] 5 [PGSCRIPT ] Total de registros ´ maior que 4! e Um Elefante de barriga cheia FISL Porto Alegre, 2009
  21. 21. Introdu¸˜o ca pgScript Exemplificando Finalizando Gerando dados aleat´rios o Gerando strings aleat´rias o SET @G = STRING(10, 20, 2); SET @A = @G; -- @A recebe uma string aleatoria SET @B = @G; -- @B recebe *outra* string aleatoria PRINT @G; -- Imprime uma terceira string aleatoria PRINT @A; -- Imprime conteudo da variavel @A PRINT @B; -- Imprime conteudo da variavel @B Um Elefante de barriga cheia FISL Porto Alegre, 2009
  22. 22. Introdu¸˜o ca pgScript Exemplificando Finalizando Gerando dados aleat´rios o Um exemplo mais elaborado CREATE TABLE tb_conta_corrente ( id_conta serial PRIMARY KEY, descriao varchar(60), data_abertura date ); CREATE TABLE tb_movimento_conta ( id_movimento serial PRIMARY KEY, id_conta integer REFERENCES tb_conta_corrente(id_conta) data_hora_movimento timestamp, detalhe varchar(20), valor_movimento numeric(17,2) ); Um Elefante de barriga cheia FISL Porto Alegre, 2009
  23. 23. Introdu¸˜o ca pgScript Exemplificando Finalizando Gerando dados aleat´rios o Criando o script no pgAdminIII - Declarando SET @gen_descricao = STRING(10,20,3); SET @gen_data = DATE(’2000-01-02’,’2009-02-01’); SET @gen_data_hora = DATETIME(’2000-01-02 00:00:00’,’2009-0 SET @gen_detalhe = REGEX(’[a-f]{10}[0-9]{10}’); SET @gen_valor = REAL(0.01,99999999.99,2); Um Elefante de barriga cheia FISL Porto Alegre, 2009
  24. 24. Introdu¸˜o ca pgScript Exemplificando Finalizando Gerando dados aleat´rios o Criando o script no pgAdminIII - Inserindo SET @i = 0; WHILE @i < 20 BEGIN INSERT INTO tb_conta_corrente (descricao, data_abertura) VALUES(’@gen_descricao’, ’@gen_data’); SET @i = @i + 1; END Um Elefante de barriga cheia FISL Porto Alegre, 2009
  25. 25. Introdu¸˜o ca pgScript Exemplificando Finalizando Gerando dados aleat´rios o Criando o script no pgAdminIII - Inserindo SET @gen_id_conta = REFERENCE(’tb_conta_corrente’,’id_conta’); SET @i = 0; WHILE @i < 10 BEGIN INSERT INTO tb_movimento_conta (id_conta, data_hora_movimento, detalhe, valor_movimento) VALUES(@gen_id_conta, ’@gen_data_hora’, ’@gen_detalhe’, @gen_valor); SET @i = @i + 1; END Um Elefante de barriga cheia FISL Porto Alegre, 2009
  26. 26. Introdu¸˜o ca pgScript Exemplificando Finalizando Gerando dados aleat´rios o Saida do pgScript INSERT INTO tb_conta_corrente (descricao, data_abertura) VALUES(’psGlh7NnfuqO9TdgZOG Ml1tqwVvLp9ByQpbRhZ YWNE08oCoj ’2007-07-05’) INSERT INTO tb_conta_corrente (descricao, data_abertura) VALUES(’gnb8g5Eqh47onb63na vL4aggsTcysvbOGVQ ir5CWsX7zBP’, ’2008-01-20’) INSERT INTO tb_conta_corrente (descricao, data_abertura) VALUES(’u2eK4E5k0UvEu5 aDeQfV9pvizSCdWn9p y1GG4efGI7BX8lkX INSERT INTO tb_conta_corrente (descricao, data_abertura) VALUES(’wbvHnHs9yj4GnO3WQVOW Lz9feLSUrk1fRHHNvCX s8MK3i0l4 Um Elefante de barriga cheia FISL Porto Alegre, 2009
  27. 27. Introdu¸˜o ca pgScript Exemplificando Finalizando Gerando dados aleat´rios o Saida do pgScript INSERT INTO tb_movimento_conta (id_conta, data_hora_movimen VALUES(336, ’2007-08-22 20:35:02’, ’efbeeaceef8827613869’, 8.26) INSERT INTO tb_movimento_conta (id_conta, data_hora_movimen VALUES(360, ’2008-03-11 11:13:07’, ’fcacdedcbc8414665323’, 8.85) INSERT INTO tb_movimento_conta (id_conta, data_hora_movimen VALUES(109, ’2002-06-17 01:35:00’, ’eafffdfcea7098959381’, INSERT INTO tb_movimento_conta (id_conta, data_hora_movimen VALUES(310, ’2007-01-19 01:28:32’, ’bfcedceddd1948647555’, INSERT INTO tb_movimento_conta (id_conta, data_hora_movimen VALUES(283, ’2006-06-06 10:54:03’, ’cba Um Elefante de barriga cheia FISL Porto Alegre, 2009
  28. 28. Introdu¸˜o ca pgScript Exemplificando Finalizando Questionamento ? Um Elefante de barriga cheia FISL Porto Alegre, 2009
  29. 29. Introdu¸˜o ca pgScript Exemplificando Finalizando Contato Dickson S. Guedes guedes@guedesoft.net (email, gtalk) guediz (skype) Guedes em irc.freenode.net #postgresql-br #postgresql Um Elefante de barriga cheia FISL Porto Alegre, 2009
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×