postgres, a "metamorfose ambulante"
DESCRIPTION
Palestra realizada em 03/10/2012 no PGDay Campinas. De "Sistema Gerenciador de Banco de Dados Relacional" até "Plataforma de Persistência Aberta", ou algo parecido. Acompanhe como as coisas evoluíram de 1970 para cá e fizeram do Postgres uma das mais flexíveis e confiáveis plataformas para persistência de dados, passando pelos bancos "Orientados a Objeto" e pelo NoSQL.TRANSCRIPT
por Fábio Telles Rodriguez03 de outubro de 2012
A “Metamorfose Ambulante” do Postgres
por Fábio Telles Rodriguez03 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 Rodriguez03 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 Rodriguez03 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 Rodriguez03 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 Rodriguez03 de outubro de 2012
A segunda mutação...
por Fábio Telles Rodriguez03 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 Rodriguez03 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 Rodriguez03 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 Rodriguez03 de outubro de 2012
Extensões
por Fábio Telles Rodriguez03 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 Rodriguez03 de outubro de 2012
Dá até para usar GPU c/ FDWPGStrom: 10x a 20x mais rápido
http://wiki.postgresql.org/wiki/PGStrom
por Fábio Telles Rodriguez03 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 Rodriguez03 de outubro de 2012
Sociedade Alternativa
por Fábio Telles Rodriguez03 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 Rodriguez03 de outubro de 2012
Ser maluco não é ser burro
por Fábio Telles Rodriguez03 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 Rodriguez03 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: [email protected]