Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

pgScript: um Elefante de barriga cheia

1,362 views

Published on

Alimentando Bases de dados PostgreSQL com pgScript.

Palestra ministrada no FISL 2009.

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

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

×