por que postgresql?
TRANSCRIPT
![Page 1: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/1.jpg)
Por que PostgreSQL?
Juliano Atanazio
![Page 2: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/2.jpg)
2/52
O que é
É um sistema gerenciador de banco de dados objeto-relacional originalmente desenvolvido na Universidade da Califórnia no Departamento de Ciências da Computação em Berkeley.
Hoje é desenvolvido e mantido pelo PGDG (PostgreSQL Global Development Group – Grupo de Desenvolvimento Global do PostgreSQL).
![Page 3: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/3.jpg)
3/52
O que é
Seu nome vem do Ingres, que seu código-fonte originalmente era descendente. Por isso do nome Postgres.
Seu código-fonte é aberto.
O PostgreSQL é Software Livre :)
![Page 4: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/4.jpg)
4/52
Links
Site oficial: www.postgresql.org
Planet PostgreSQL: http://planet.postgresql.org/
Wiki: https://wiki.postgresql.org
Site da comunidade brasileira: www.postgresql.org.br
Planet PostgreSQL BR: http://planeta.postgresql.org.br/
![Page 5: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/5.jpg)
5/52
Como se Fala e Como se Escreve
Uma dúvida comum ao PostgreSQL é seu nome. As formas corretas são as duas seguintes:
Postgres, pronuncia-se “postígres” (sim, o “s” é pronunciado!);PostgreSQL, pronuncia-se “postgres és quiu el”.
Nunca, jamais, em hipótese nenhuma escrever “postgree” ou dizer “postgrí”.
Infelizmente ainda há fontes na Internet com o nome do Postgres escrito erroneamente, o que leva muita gente também a falar errado.
![Page 6: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/6.jpg)
6/52
Multi Plataforma
● Linux ● BSDs● Solaris● HPUX● Irix● AIX● Unix● MacOS● Windows
etc...
![Page 7: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/7.jpg)
7/52
Licença
A licença utilizada é uma licença própria similar à licença BSD (herança de Berkeley).
Essa licença é mais flexível do que a GPL, permitindo inclusive que qualquer um possa pegar seu código-fonte, alterá-lo e até fechá-lo para fins comerciais.
Um grande exemplo disso é o derivado do PostgreSQL mais famoso, o EDB Postgres, da EnterpriseDB [1], empresa que é uma das grandes contribuidoras para o desenvolvimento do projeto PostgreSQL original.
[1] https://www.enterprisedb.com/
![Page 8: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/8.jpg)
8/52
Suporte
Comunidade:
Brasil: https://listas.postgresql.org.br/cgi-bin/mailman/listinfo
Internacional: https://lists.postgresql.org
Comercial:
Há várias empresas ao redor do mundo (inclusive no Brasil) que prestam consultoria em PostgreSQL.
![Page 10: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/10.jpg)
10/52
Liberdade
O PostgreSQL é Software Livre! :)
Você pode baixar, usar e / ou alterar o código-fonte como bem entender.
Não precisa se preocupar com quantos núcleos tem seu servidor.
Totalmente livre! Livre!
O PostgreSQL é um só! Não existem versões “Light”, “Standard”, “Advanced Server” ou mesmo “Express”… Uma única versão e sem cortes de funcionalidades.
Todo poder do grande elefante dos dados à disposição do usuário!
![Page 11: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/11.jpg)
11/52
Imune a Over-Deployment
Over-deployment é o que alguns fornecedores de banco de dados proprietários consideram como problema de inconformidade de sua licença.
Com PostgreSQL, ninguém pode processá-lo por quebra de acordos de licenciamento, devido a não haver nenhum custo de licenciamento associado para o software.
Seu servidor de banco de dados PostgreSQL pode ter quantos núcleos de processador desejar.
![Page 12: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/12.jpg)
12/52
Imune a Over-Deployment
Algumas vantagens adicionais:
● Modelos de negócios mais lucrativos com implantações em larga escala;
● Sem possibilidade de ser auditado por inconformidade de licença em qualquer fase;
● Flexibilidade para conceituar pesquisar e tentar implantações sem necessidade de incluir custos adicionais de licença;
● Foco em detalhes técnicos, sem a necessidade de lidar com inconvenientes de licença.
![Page 13: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/13.jpg)
13/52
Redução de Custos de Pessoal
O PostgreSQL foi projetado e criado para ter requisitos muito mais baixos de manutenção e ajustes do que os principais bancos de dados proprietários, mas ainda manter todas as características, estabilidade e desempenho.
![Page 14: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/14.jpg)
14/52
Confiabilidade e Estabilidade Lendárias
Diferente de muitos sistemas gerenciadores de banco de dados proprietários, é muito comum organizações reportarem que o PostgreSQL nunca falhou em anos de operação.
Nem uma única vez, ele simplesmente funciona!
![Page 15: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/15.jpg)
15/52
Extensibilidade e PGXN
É possível desenvolver extensões para o PostgreSQL de forma a ampliar o leque de funcionalidades oferecidas.
A PGXN [1], “the PostgreSQL Extension Network”, é um sistema de distribuição central para bibliotecas open-source de extensão para o PostgresQL.
[1] http://pgxn.org/
![Page 16: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/16.jpg)
16/52
Projetos e Aplicativos: pgFoundry
De forma similar ao PGXN, existe o pgFoundry [1].
É um site que reúne vários projetos relativos ao PostgreSQL.
[1] http://pgfoundry.org
![Page 17: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/17.jpg)
17/52
Aplicativos Clientes
psql: Cliente padrão em modo texto;
pgcli [1]: Cliente em modo texto, escrito em Python com auto-complete mais avançado do que o psql.
pgAdmin3 [2]: Aplicativo gráfico;
phpPgAdmin [3]: Interface web;
EMS SQL Management Studio para PostgreSQL [4]: Gráfico, proprietário e disponível apenas para Windows.
DBeaver [5]: Aplicativo gráfico multi-plataforma escrito em Java, depende do driver JDBC PostgreSQL.
![Page 18: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/18.jpg)
18/52
Aplicativos Clientes
[1] http://pgcli.com/
[2] http://pgadmin.org/
[3] http://phppgadmin.sourceforge.net/
[4] http://www.sqlmanager.com.br/html/studio_postgresql.html
[5] http://dbeaver.jkiss.org/
![Page 19: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/19.jpg)
19/52
Limites do PostgreSQL
Tamanho máximo de um banco de dados: Ilimitado
Tamanho máximo de uma tabela: 32 TB
Tamanho máximo de uma linha (registro): 1.6 TB
Tamanho máximo de um campo (coluna): 1 GB
Número máximo de linhas por tabela: Ilimitado
Número máximo de colunas por tabela: 250 - 1600 dependendo do tipo de coluna
Número máximo de índices por tabela: Ilimitado
![Page 20: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/20.jpg)
20/52
Tipos de Dados
● Numéricos;
● De Tempo;
● De Texto;
● Nulo;
● JSON;
● XML;
● Tipos de dados de endereços IP (IPv4 e Ipv6) e mac address;
● UUID;
![Page 21: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/21.jpg)
21/52
Tipos de Dados
● Boolean;
● Enumerados;
● Geométricos;
● Busca Textual;
● Compostos;
● De Faixa (Range Types);
● Suporte a arrays...
A variedade é muito grande e o usuário pode também criar um tipo de dados personalizado.
![Page 22: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/22.jpg)
22/52
Funções e Procedures
Diferente de outros SGBDs, no PostgreSQL não há uma separação entre Functions e Procedures.
É tudo Function!
Para invocar uma função é bem simples:
SELECT funcao();
![Page 23: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/23.jpg)
23/52
Funções e Procedures
Triggers: Diferente de outros SGBDs a função que o trigger chama é definida externa a ele. E depois, na definição do trigger é feita a chamada a essa função.Isso permite reaproveitamento de código de forma que uma mesma função possa atender a mais de um trigger.
A linguagem procedural padrão do PostgreSQL é a PL/pgSQL (muito similar à PL/SQL do Oracle, porém mais amigável).
![Page 24: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/24.jpg)
24/52
Padrões SQL ISO
O core team de desenvolvimento, também conhecido como PGDG (PostgreSQL Global Development Group) tem como premissa a maior compatibilidade possível com os padrões SQL ISO.
https://www.postgresql.org/docs/current/static/features.html
![Page 25: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/25.jpg)
25/52
O Elefante é Poliglota
Além da linguagem procedural padrão, PL/pgSQL, temos também opções nativas para fazermos funções em Python (PL/Python) ou em Perl (PL/Perl), de forma nativa.
Devido à característica de extensibilidade do PostgreSQL podemos também programar funções em Java e PHP (PL/Java e PL/PHP, respectivamente) e outras linguagens de programação que podemos instalar em forma de extensão.
![Page 26: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/26.jpg)
26/52
Drivers para Linguagens
Python: psycopg2 [1]Java: JDBC [2]Perl: DBI:Pg [3]C: libpq [4]PHP: PDO [5]C#: Npgsql [6]C++: libpqxx [7]Lua: LuaPgSQL [8]Ruby: Ruby pg [9]Go: pq [10]Node.js: node-postgres [11] Rust: Rust-Postgres [12]
![Page 27: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/27.jpg)
27/52
Drivers para Linguagens
[1] http://initd.org/psycopg/[2] https://jdbc.postgresql.org/[3] https://metacpan.org/pod/DBD::Pg[4] http://www.postgresql.org/docs/current/static/libpq.html[5] http://php.net/manual/pt_BR/ref.pdo-pgsql.connection.php[6] http://www.npgsql.org/[7] http://pqxx.org/development/libpqxx/[8] https://github.com/arcapos/luapgsql[9] https://github.com/ged/ruby-pg[10] https://github.com/lib/pq[11] https://github.com/brianc/node-postgres[12] https://github.com/sfackler/rust-postgres
![Page 28: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/28.jpg)
28/52
Common Table Expressions - Expressões Comuns de Tabela
Com a cláusula WITH fornece uma forma de escrever comandos auxiliares para uso em uma consulta muito grande.
Esses comandos também são conhecidos como Common Table Expressions ou CTEs, que podemos pensar como se fosse uma definição de tabelas temporárias que existem para apenas uma consulta.
Além do SQL Básico
![Page 29: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/29.jpg)
29/52
Common Table Expressions - Expressões Comuns de Tabela
Cada comando auxiliar em uma cláusula WITH pode ser um SELECT, INSERT, UPDATE ou DELETE e a própria cláusula WITH é anexada ao comando principal que pode também se um SELECT, INSERT, UPDATE, ou DELETE.
http://www.postgresql.org/docs/current/static/queries-with.html
Além do SQL Básico
![Page 30: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/30.jpg)
30/52
Window Functions - Funções de Janela
Permitem executar cálculos através de conjuntos de linhas que são relacionadas à linha de consulta atual.
Similar ao tipo de cálculo que pode ser feito com funções de agregação, mas o uso de funções de janela não faz as linhas serem agrupadas em uma única linha de saída, as linhas mantêm suas identidades separadas.
Além do SQL Básico
![Page 31: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/31.jpg)
31/52
Window Functions - Funções de Janela
Internamente, uma função de janela é capaz de acessar mais do que apenas linha atual de um resultado de uma consulta.
Funções de janela devem ser invocadas usando sua própria sintaxe em que a cláusula OVER é necessária.
http://www.postgresql.org/docs/current/static/functions-window.html
Além do SQL Básico
![Page 32: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/32.jpg)
32/52
Full Text Search - Busca Textual
Capacidade de identificar uma linguagem em documentos que satisfaçam critérios de buscas de uma consulta e opcionalmente ordená-las por relevância.
Tem suporte linguístico e baseado no idioma que o usuário definir.
http://www.postgresql.org/docs/current/static/textsearch.html
Além do SQL Básico
![Page 33: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/33.jpg)
33/52
A sigla GIS significa Geographic Information System (Sistema de Informação Geográfica).
PostGIS é atualmente a melhor ferramenta para dados geográficos em bancos de dados.
Está disponível em forma de extensão para o PostgreSQL.
www.postgis.org
Dados Geográficos: PostGIS
![Page 34: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/34.jpg)
34/52
FDW: Acessando Dados Externos
FDW é a sigla para Foreign Data-Wrapper [1].
Podemos acessar dados vindos de outros servidores PostgreSQL ou até mesmo outros SGBDs, além de outras coisas mais.
[1] https://wiki.postgresql.org/wiki/Foreign_data_wrappers
![Page 35: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/35.jpg)
35/52
O PostgreSQL não é somente relacional.
Ele agrega também funcionalidades NoSQL.
O tipo de dado jsonb [2] o que implementa funcionalidades NoSQL do tipo documento (como MongoDB por exemplo).
Multi Paradigma – Relacional e NoSQL
![Page 36: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/36.jpg)
36/52
Obs.: Há comparativos pela Internet fazendo comparativos interessantes PostgreSQL vs MongoDB, dentre eles tem um estudo muito interessante feito pela EnterpriseDB [3].
[1] http://www.postgresql.org/docs/current/static/hstore.html
[2] http://www.postgresql.org/docs/current/static/datatype-json.html
[3] http://www.enterprisedb.com/postgres-plus-edb-blog/marc-linster/postgres-outperforms-mongodb-and-ushers-new-developer-reality
Multi Paradigma – Relacional e NoSQL
![Page 37: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/37.jpg)
37/52
Atualmente é SGBD mais avançado devido à quantidade de recursos que oferece;
Duvida??? Basta comparar → [1]
Apesar disso ele não deve ter uma utilização forçada, pois há determinadas coisas que outros SGBDs são melhores. Isso é fato.
[1] http://www.sql-workbench.net/dbms_comparison.html
O PostgreSQL é Bala de Prata?
![Page 38: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/38.jpg)
38/52
Para aplicações embarcadas; o SQLite, um simples blog, algo que não envolva um sistema necessariamente transacional predominantemente texto; o MariaDB e em outras situações; SGBDs NoSQL são mais apropriados.
O PostgreSQL é Bala de Prata?
![Page 39: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/39.jpg)
39/52
Mas o Postgres conversa (se integra) com todo mundo…
Via FDW pode-se extrair o que é melhor de cada SGBD e então o Postgres funcionará como um middleware deixando transparente para a aplicação ;)
O PostgreSQL é Bala de Prata?
![Page 40: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/40.jpg)
40/52
O PostgreSQL é Bala de Prata?
Application Server
![Page 41: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/41.jpg)
41/52
WAL - Write Ahead Log
Mecanismo que assegura a integridade dos dados.
Qualquer escrita em banco antes de ser gravada nos arquivos de dados é gravada nos logs de transação (xlogs).
Isso permite que se houver uma falha (crash) do servidor, ao reinicializá-lo, o servidor lerá primeiro os logs de transação e então aplicará aos arquivos de dados (também conhecidos como arquivos físicos) todas modificações não feitas ainda.
![Page 42: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/42.jpg)
42/52
WAL - Write Ahead Log
O log existe primariamente para propósitos de segurança contra falhas: se osistema falha (crash), a base de dados pode ser restaurada consistentemente pela aplicação das entradas de log feitas desde o último checkpoint*.
* chepoint é quando os dados que estão em memória e nos logs de transação são efetivados nos arquivos físicos.
https://www.postgresql.org/docs/current/static/wal-intro.html
![Page 43: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/43.jpg)
43/52
PITR: A Máquina do Tempo
PITR é uma sigla que significa Point In Time Recovery, que em português seria algo como “Recuperação em um Ponto no Tempo”.
Pode-se estipular um ponto anterior no tempo e fazer o servidor voltar seus dados como estavam nesse dado momento caso houver necessidade.
https://www.postgresql.org/docs/current/static/continuous-archiving.html
![Page 44: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/44.jpg)
44/52
Replicação
Física (via streaming);
● Assíncrona;
● Síncrona;
Lógica (pglogical)
● Integral;
● Parcial;
● Muito útil para fazer migrações de uma versão para outra.
Ambas permitem cascateamento.
![Page 45: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/45.jpg)
45/52
Desenvolvimento
O PostgreSQL é desenvolvido em conjunto pela comunidade e por empresas que o apoiam.
A cada ano uma versão nova é liberada trazendo novos recursos, melhora de performance e correções de eventuais bugs.
![Page 46: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/46.jpg)
46/52
Versões e Ciclo de Desenvolvimento
Versão Majoritária (X.Y)
É a parte significativa do número da versão, composta apenas pelos dois primeiros números (X.Y).
São lançamentos de versões que trazem novidades como novos recursos, e. g.: 9.4;
Cada versão lançada tem suporte de até cinco anos, após isso não são mais lançados quaisquer patches para a mesma.
Versão Minoritária (X.Y.Z)
São considerados os três números que compõem a versão, no entanto, o último número (Z) diz respeito a apenas correções de bugs e de segurança.
![Page 47: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/47.jpg)
47/52
Eventos
Internacional: PgCon [1]
Nacional: PgBr [2]
Regional: PgDay [3]
[1] https://www.pgcon.org
[2] http://pgbr.postgresql.org.br/
[3] http://www.postgresql.org.br/eventos/pgday
![Page 48: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/48.jpg)
48/52
Recursos Técnicos
Veja no link abaixo a Matriz de Recursos conforme a versão do PostgreSQL:
http://www.postgresql.org/about/featurematrix/
![Page 49: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/49.jpg)
49/52
Quem Utiliza o PostgreSQL
![Page 50: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/50.jpg)
50/52
Doe!
O Elefante precisa de você!
Contribua! :)
http://www.postgresql.org/about/donate/
![Page 51: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/51.jpg)
51/52
Save our planet!
![Page 52: Por que PostgreSQL?](https://reader033.vdocuments.mx/reader033/viewer/2022050914/5889e4511a28ab32458b49f1/html5/thumbnails/52.jpg)
52/52
Até a próxima!!! :)
Juliano Atanazio
http://www.slideshare.net/spjuliano
https://speakerdeck.com/julianometalsp
https://juliano777.wordpress.com