Conceitos E Aplicações

1,050 views
982 views

Published on

Palestra realizada no PGDay RO em 29 e 30 de abril de 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,050
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Conceitos E Aplicações

  1. 1. PostgreSQL Conceitos e Aplicações
  2. 2. Histórico <ul><ul><li>60s </li></ul></ul><ul><ul><li>CODASYL </li></ul></ul><ul><ul><li>IBM IMS </li></ul></ul><ul><ul><li>70s </li></ul></ul><ul><ul><li>ADABAS </li></ul></ul><ul><ul><li>Teoria Relacional (Codd) </li></ul></ul><ul><ul><ul><li>IBM System R (DB2) </li></ul></ul></ul><ul><ul><ul><li>Berkeley Ingres </li></ul></ul></ul><ul><ul><ul><li>Oracle </li></ul></ul></ul>
  3. 3. Histórico <ul><ul><li>80s </li></ul></ul><ul><ul><li>System R -> DB2 </li></ul></ul><ul><ul><li>Ingres -> CA Ingres, Sybase, Informix, SQL Server, Interbase, Postgres </li></ul></ul><ul><ul><li>Teradata </li></ul></ul><ul><ul><li>SQL 86, 89 </li></ul></ul><ul><ul><li>90s </li></ul></ul><ul><ul><li>ISO SQL 92, 99 </li></ul></ul><ul><ul><li>Access, MySQL </li></ul></ul>
  4. 4. Postgres <ul><ul><li>1986-1994: Postgres </li></ul></ul><ul><ul><li>Michael Stonebraker, Berkeley </li></ul></ul><ul><ul><li>Evolução do Ingres com idéias Objeto-Relacional </li></ul></ul><ul><ul><li>1995: Postgres 95 </li></ul></ul><ul><ul><li>Andrew Yu and Jolly Chen </li></ul></ul><ul><ul><li>Inclusão do SQL </li></ul></ul><ul><ul><li>1996 em diante: PostgreSQL </li></ul></ul><ul><ul><li>Desenvolvimento fora de Berkeley por uma comunidade </li></ul></ul>
  5. 5. Pontos Fortes <ul><ul><li>Suporte não é exclusivo do fornecedor; </li></ul></ul><ul><ul><li>Desenvolvimento ativo ; </li></ul></ul><ul><ul><li>Bugs são realmente conhecidos; </li></ul></ul><ul><ul><li>Boa documentação ; </li></ul></ul><ul><ul><li>Bom suporte da comunidade ; </li></ul></ul><ul><ul><li>Conformidade total com ACID; </li></ul></ul><ul><ul><li>Conformidade com SQL; </li></ul></ul><ul><ul><li>Extensível ; </li></ul></ul><ul><ul><li>Multiplataforma; </li></ul></ul>
  6. 6. Pontos Fracos ? <ul><ul><li>Não existe suporte corporativo oficial; </li></ul></ul><ul><ul><li>Não existe certificação; </li></ul></ul><ul><ul><li>Não existem boas ferramentas gráficas; </li></ul></ul><ul><ul><li>Não é estável; </li></ul></ul><ul><ul><li>Instável em Windows; </li></ul></ul><ul><ul><li>Baixa performance (lento); </li></ul></ul><ul><ul><li>Não tem uma campanha de marketing agressiva. </li></ul></ul>
  7. 7. Sim, pontos fracos <ul><ul><li>Não há soluções de replicação no core; </li></ul></ul><ul><ul><li>Particionamento ainda precário (melhor no 8.5) </li></ul></ul><ul><ul><li>Não há transações autônomas em PL; </li></ul></ul><ul><ul><li>Vacuum degrada performance em OLTP em grande escala (diminuindo, mas ainda significativo); </li></ul></ul><ul><ul><li>Não há uma boa ferramenta de monitoramento gráfico; </li></ul></ul><ul><ul><li>Não tem backup incremental; </li></ul></ul><ul><ul><li>Não é possível fazer HOT Backup físico por tablespace; </li></ul></ul><ul><ul><li>Não existem gatilhos de sistema. </li></ul></ul>
  8. 8. em ambiente OLTP <ul><ul><li>MVCC; </li></ul></ul><ul><ul><li>Tablespaces; </li></ul></ul><ul><ul><li>Particionamento de tabelas (melhorias previstas para 8.5); </li></ul></ul><ul><ul><li>Common Tables Expressions e recursividade; </li></ul></ul><ul><ul><li>PL/Proxy (Cluster Shared Nothing) </li></ul></ul><ul><ul><li>Gatilhos; </li></ul></ul><ul><ul><li>PL/pgSQL, PL/Python, PL/Perl, PL/Tcl, ... </li></ul></ul><ul><ul><li>Sequências; </li></ul></ul><ul><ul><li>Suporte a Kerberos, LDAP, etc. </li></ul></ul>
  9. 9. em ambiente BI <ul><ul><li>Índices parciais e com expressões (bitmap previsto para 8.5); </li></ul></ul><ul><ul><li>Visões; </li></ul></ul><ul><ul><li>Copy com suporte a CSV; </li></ul></ul><ul><ul><li>Subconsultas; </li></ul></ul><ul><ul><li>Windowing Functions; </li></ul></ul><ul><ul><li>PGPool II; </li></ul></ul><ul><ul><li>Visões Materializadas (previsto para 8.5) </li></ul></ul>
  10. 10. em ambiente WEB <ul><ul><li>Pool de conexões com PGPool ou PGBouncer; </li></ul></ul><ul><ul><li>XML; </li></ul></ul><ul><ul><li>Suporte a localização e internacionalização; </li></ul></ul><ul><ul><li>Suporte nativo a SSL; </li></ul></ul><ul><ul><li>Full Text Search </li></ul></ul>
  11. 11. Alta Disponibilidade <ul><ul><li>Point In Time Recovery; </li></ul></ul><ul><ul><li>Warm Stand By (Hot Stand By previsto para 8.5); </li></ul></ul><ul><ul><li>Hot Backup; </li></ul></ul><ul><ul><li>Slony, PGPool, PGCluster, etc; </li></ul></ul>
  12. 12. Segurança <ul><ul><li>pg_hba.conf; </li></ul></ul><ul><ul><li>Configurações padrões são seguras; </li></ul></ul><ul><ul><li>Dollar Quoting; </li></ul></ul><ul><ul><li>MD5, SHA1; </li></ul></ul><ul><ul><li>Várias opções para criar o usuário; </li></ul></ul><ul><ul><li>Uso de visões, gatilhos e funções para limitar acesso a dados; </li></ul></ul><ul><ul><li>SE PostgreSQL; </li></ul></ul><ul><ul><li>Várias opções de logs; </li></ul></ul>
  13. 13. Migração <ul><ul><li>Aderência ao padrão SQL; </li></ul></ul><ul><ul><li>Existência de funções com sintaxe compatíveis; </li></ul></ul><ul><ul><li>DBI-Link; </li></ul></ul><ul><ul><li>Information Schema; </li></ul></ul><ul><ul><li>ora2pg, my2pg, dbf2pg, etc. </li></ul></ul>
  14. 14. OBRIGADO <ul><ul><li>Dúvidas, sugestões, correções, indignações e cervejas são bem vindas! </li></ul></ul><ul><ul><li>Fábio Telles Rodriguez, </li></ul></ul><ul><ul><li>SAVEPOINT: http://www.midstorm.org/~telles </li></ul></ul><ul><ul><li>e-mail: [email_address] </li></ul></ul>

×