A
“Metamorfose
 Ambulante”
 do Postgres



      por Fábio Telles Rodriguez
           03 de outubro de 2012
Como tudo começou...
● 1970 – IBM - Teoria Relacional por E. F. Codd
● 1973 – IBM – Começa o desenvolvimento do


System R (System Relational)
  ● Primeira implementação da teoria relacional;

  ● Desenvolvimento do SQL;

  ● Publicação de documentos descrevendo o


    System R;
●1974 – Berkeley – Desenvolvimento do Ingres


(INteractive Graphics REtrieval System)

                                         por Fábio Telles Rodriguez
                                              03 de outubro de 2012
A primeira mutação
● 1982: Michael Stonebraker sai de Berkeley para
comercializar o Ingres;
● 1985: Stonebraker volta para Berkeley para


iniciar o Postgres (Post Ingres)
  ● Tipos de dados e domínios definidos pelo


    usuário;
  ● Arrays;

  ● Tabelas hierárquicas;

  ● Substituiu o QUEL pelo PostQUEL...




                                        por Fábio Telles Rodriguez
                                             03 de outubro de 2012
A primeira mutação

● 1989 – Primeira versão do Postgres;
● 1994 - Postgres 4.2 – Última versão lançada em


  Berkeley;
● 1995 - Postgres95 – Versão lançada por alunos


recém-graduados de Berkeley;
 ● Substituição do PostQUEL pelo SQL;

 ● Subconsultas;




                                        por Fábio Telles Rodriguez
                                             03 de outubro de 2012
A segunda mutação...
●   1996 – PostgreSQL 6.0 - Primeira versão lançada
    como Software Livre, fora de Berkeley;
    ● Primeiro servidor do projeto em Hub.org;




                                          por Fábio Telles Rodriguez
                                               03 de outubro de 2012
A segunda mutação...




                   por Fábio Telles Rodriguez
                        03 de outubro de 2012
●   De 1997 a 2007 – PostgreSQL 6.0, 6.1, 6.2,
    6.3, 6.4, 6.5, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1,
    8.2
    ● PL/CTL, PL/Python, PL/Perl, PL/pgSQL;

    ● Compatibilidade com SQL;

    ● Porte nativo para Windows;

    ● Gborg, pgFoundry;

    ● 1º PGCon (Congresso anual);

    ● fsync, synchronous_commit,


       full_page_writes


                                            por Fábio Telles Rodriguez
                                                 03 de outubro de 2012
A Metamorfose Ambulante
●   2008 – PostgreSQL 8.3
    ● Salto de performance;

    ● Fim dos CASTs implícitos;

    ● UUID, XML, ENUM, Arrays de tipos


       compostos;
    ● Full Text Search;

●   2009 – PostgreSQL 8.4
    ● Window Functions, CTE




                                     por Fábio Telles Rodriguez
                                          03 de outubro de 2012
A Metamorfose Ambulante
●    2010 – PostgreSQL 9.0
     ● Streaming Replication;

     ● Melhorias no Listen/Notify e no Hstore;

●   2011 – PostgreSQL 9.1
     ● Extensions (PGXN);

     ● Foreign Tables;

     ● Unlogged Tables;

●   2012 – PostgreSQL 9.2
     ● Range types, JSON, PLV8;

     ● Postgres-XC 1.0 é lançado




                                          por Fábio Telles Rodriguez
                                               03 de outubro de 2012
Extensões




 por Fábio Telles Rodriguez
      03 de outubro de 2012
Foreign Data Wrappers


● Infraestrutura para conexão com
  outras fontes de dados;
● Completamente transparente para a

  aplicação;
● Qualquer um pode construir seu

  próprio plugin em horas;
● Alguns já criados: oracle, mysql, odbc,

  couchdb, ldap, twitter, web services,
  Amazon S3, etc;
                                            por Fábio Telles Rodriguez
                                                 03 de outubro de 2012
Dá até para usar GPU c/ FDW
PGStrom: 10x a 20x mais rápido
      http://wiki.postgresql.org/wiki/PGStrom




                                                por Fábio Telles Rodriguez
                                                     03 de outubro de 2012
Comunidade Vibrante
● Novas versões lançadas anualmente

● 17 listas por e-mail + 42 listas regionais

● Acesso direto e on-line aos

  desenvolvedores via IRC
● Dezenas de eventos exclusivos de postgres

  todos os anos. Em 2011 foram 6 só no
  Brasil
● Novos artigos nos planetas diariamente

● Amigável para novos usuários e novos

  desenvolvedores
                                   por Fábio Telles Rodriguez
                                        03 de outubro de 2012
Sociedade Alternativa




             por Fábio Telles Rodriguez
                  03 de outubro de 2012
SIM, Software Livre tem Suporte
● Você pode contar com o suporte da
  comunidade
● Você pode escolher

● Você pode trocar de empresa

● Você pode encomendar novas

  funcionalidades no Postgres para você
● Você não precisa pagar um suporte para ter

  acesso à documentação e os últimos patches


                                    por Fábio Telles Rodriguez
                                         03 de outubro de 2012
Ser maluco não é ser burro




                  por Fábio Telles Rodriguez
                       03 de outubro de 2012
Em resumo
● Bancos de Dados Objeto-Relacional nunca foram muito bem
definidos, já a teoria relacional sim.
   ● Isto não nos impede de criar extensões não relacionais

     para resolver problemas complexos;
● NoSQL contém uma salada de definições, boa parte delas

não são tecnologias novas;
   ● Você pode abrir mão do lado transacional para todo o

     cluster (fsync off) ou apenas para uma tabela (unlogged
     table);
   ● Você pode utilizar tipos não estruturados também;

   ● Você Vpode usar um DataWraper para a sua base NoSQL




                                                por Fábio Telles Rodriguez
                                                     03 de outubro de 2012
OBRIGADO

Dúvidas, sugestões, correções,
  indignações e cervejas são
          bem vindas!

  Fábio Telles Rodriguez,
Timbira: http://timbira.com.br
          SAVEPOINT:
 http://tellesr.wordpress.com/
             ● e-mail:

       telles@timbira.com.br




                por Fábio Telles Rodriguez
                     03 de outubro de 2012

Postgres, a "Metamorfose Ambulante"

  • 1.
    A “Metamorfose Ambulante” doPostgres por Fábio Telles Rodriguez 03 de outubro de 2012
  • 2.
    Como tudo começou... ●1970 – IBM - Teoria Relacional por E. F. Codd ● 1973 – IBM – Começa o desenvolvimento do System R (System Relational) ● Primeira implementação da teoria relacional; ● Desenvolvimento do SQL; ● Publicação de documentos descrevendo o System R; ●1974 – Berkeley – Desenvolvimento do Ingres (INteractive Graphics REtrieval System) por Fábio Telles Rodriguez 03 de outubro de 2012
  • 3.
    A primeira mutação ●1982: Michael Stonebraker sai de Berkeley para comercializar o Ingres; ● 1985: Stonebraker volta para Berkeley para iniciar o Postgres (Post Ingres) ● Tipos de dados e domínios definidos pelo usuário; ● Arrays; ● Tabelas hierárquicas; ● Substituiu o QUEL pelo PostQUEL... por Fábio Telles Rodriguez 03 de outubro de 2012
  • 4.
    A primeira mutação ●1989 – Primeira versão do Postgres; ● 1994 - Postgres 4.2 – Última versão lançada em Berkeley; ● 1995 - Postgres95 – Versão lançada por alunos recém-graduados de Berkeley; ● Substituição do PostQUEL pelo SQL; ● Subconsultas; por Fábio Telles Rodriguez 03 de outubro de 2012
  • 5.
    A segunda mutação... ● 1996 – PostgreSQL 6.0 - Primeira versão lançada como Software Livre, fora de Berkeley; ● Primeiro servidor do projeto em Hub.org; por Fábio Telles Rodriguez 03 de outubro de 2012
  • 6.
    A segunda mutação... por Fábio Telles Rodriguez 03 de outubro de 2012
  • 7.
    De 1997 a 2007 – PostgreSQL 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2 ● PL/CTL, PL/Python, PL/Perl, PL/pgSQL; ● Compatibilidade com SQL; ● Porte nativo para Windows; ● Gborg, pgFoundry; ● 1º PGCon (Congresso anual); ● fsync, synchronous_commit, full_page_writes por Fábio Telles Rodriguez 03 de outubro de 2012
  • 8.
    A Metamorfose Ambulante ● 2008 – PostgreSQL 8.3 ● Salto de performance; ● Fim dos CASTs implícitos; ● UUID, XML, ENUM, Arrays de tipos compostos; ● Full Text Search; ● 2009 – PostgreSQL 8.4 ● Window Functions, CTE por Fábio Telles Rodriguez 03 de outubro de 2012
  • 9.
    A Metamorfose Ambulante ● 2010 – PostgreSQL 9.0 ● Streaming Replication; ● Melhorias no Listen/Notify e no Hstore; ● 2011 – PostgreSQL 9.1 ● Extensions (PGXN); ● Foreign Tables; ● Unlogged Tables; ● 2012 – PostgreSQL 9.2 ● Range types, JSON, PLV8; ● Postgres-XC 1.0 é lançado por Fábio Telles Rodriguez 03 de outubro de 2012
  • 10.
    Extensões por FábioTelles Rodriguez 03 de outubro de 2012
  • 11.
    Foreign Data Wrappers ●Infraestrutura para conexão com outras fontes de dados; ● Completamente transparente para a aplicação; ● Qualquer um pode construir seu próprio plugin em horas; ● Alguns já criados: oracle, mysql, odbc, couchdb, ldap, twitter, web services, Amazon S3, etc; por Fábio Telles Rodriguez 03 de outubro de 2012
  • 12.
    Dá até parausar GPU c/ FDW PGStrom: 10x a 20x mais rápido http://wiki.postgresql.org/wiki/PGStrom por Fábio Telles Rodriguez 03 de outubro de 2012
  • 13.
    Comunidade Vibrante ● Novasversões lançadas anualmente ● 17 listas por e-mail + 42 listas regionais ● Acesso direto e on-line aos desenvolvedores via IRC ● Dezenas de eventos exclusivos de postgres todos os anos. Em 2011 foram 6 só no Brasil ● Novos artigos nos planetas diariamente ● Amigável para novos usuários e novos desenvolvedores por Fábio Telles Rodriguez 03 de outubro de 2012
  • 14.
    Sociedade Alternativa por Fábio Telles Rodriguez 03 de outubro de 2012
  • 15.
    SIM, Software Livretem Suporte ● Você pode contar com o suporte da comunidade ● Você pode escolher ● Você pode trocar de empresa ● Você pode encomendar novas funcionalidades no Postgres para você ● Você não precisa pagar um suporte para ter acesso à documentação e os últimos patches por Fábio Telles Rodriguez 03 de outubro de 2012
  • 16.
    Ser maluco nãoé ser burro por Fábio Telles Rodriguez 03 de outubro de 2012
  • 17.
    Em resumo ● Bancosde Dados Objeto-Relacional nunca foram muito bem definidos, já a teoria relacional sim. ● Isto não nos impede de criar extensões não relacionais para resolver problemas complexos; ● NoSQL contém uma salada de definições, boa parte delas não são tecnologias novas; ● Você pode abrir mão do lado transacional para todo o cluster (fsync off) ou apenas para uma tabela (unlogged table); ● Você pode utilizar tipos não estruturados também; ● Você Vpode usar um DataWraper para a sua base NoSQL por Fábio Telles Rodriguez 03 de outubro de 2012
  • 18.
    OBRIGADO Dúvidas, sugestões, correções, indignações e cervejas são bem vindas! Fábio Telles Rodriguez, Timbira: http://timbira.com.br SAVEPOINT: http://tellesr.wordpress.com/ ● e-mail: telles@timbira.com.br por Fábio Telles Rodriguez 03 de outubro de 2012