O que é PostgreSQL?

O PostgreSQL (abreviado para "Postgres") é o banco de dados relacional de objetos de código aberto mais avançado do mundo. Ele foi criado para oferecer desempenho de nível empresarial e é valorizado por seus recursos robustos e confiabilidade.

O Postgres começou em 1986 como uma evolução do Ingres, um banco de dados anterior da Universidade da Califórnia, Berkeley. Desde 1994, ele usa a linguagem de consulta estruturada (SQL) para consultas e transações e é atualizado continuamente por uma comunidade de desenvolvedores individuais e corporativos.

Essa longa história de desenvolvimento e uso do SQL faz do PostgreSQL um dos bancos de dados de código aberto mais conhecidos do mundo, com todos os principais fornecedores de nuvem oferecendo o PostgreSQL ou bancos de dados derivados dele como serviço.


Inscreva-se em um teste gratuito para qualquer um dos bancos de dados PostgreSQL do Google Cloud, incluindo o AlloyDB, o Cloud SQL para PostgreSQL e o Spanner.

O que é um banco de dados relacional?

Um banco de dados relacional armazena dados em tabelas estruturadas de linhas e colunas e mantém informações sobre dados vinculados em várias tabelas. 

Por exemplo, um banco de varejo pode ter uma tabela com linhas de informações do cliente, em que cada linha inclui o nome, o número de telefone e o endereço do cliente como colunas. Pode haver uma segunda tabela que armazena informações de transações. Um banco de dados relacional vincularia linhas entre as duas tabelas para que o banco pudesse acompanhar quais clientes fizeram quais transações. 

Noções básicas do PostgreSQL

Uma "consulta" é uma única operação para solicitar informações do banco de dados. Uma "transação" é uma sequência de operações que pode manipular dados no banco de dados. As operações básicas de armazenamento são comumente chamadas de "CRUD", que significa criar, ler, atualizar e excluir. 

Para otimizar a recuperação de informações do banco de dados, o PostgreSQL usa índices, que são cópias de uma parte de uma tabela reorganizadas para acelerar a pesquisa. Conceitualmente, eles são semelhantes a um índice no final de um livro que permite encontrar um item rapidamente sem ter que examinar todo o livro.

Como um banco de dados relacional, o PostgreSQL usa descrições formais chamadas de "esquemas" para descrever a estrutura dos dados contidos. Um esquema é a coleção de tabelas, índices e funções no banco de dados, e o PostgreSQL oferece suporte a vários esquemas. 

Os profissionais de banco de dados são responsáveis por projetar um esquema e um conjunto de índices que melhor representem os dados e a forma como eles são usados pelos usuários do aplicativo. Eles também são responsáveis pelas tarefas de manutenção e operação para manter os dados seguros e o banco de dados funcionando corretamente.

O PostgreSQL é um banco de dados de código aberto

Desde o desenvolvimento na Universidade de Berkeley, o PostgreSQL tem código aberto, o que significa que o código é totalmente aberto para visualização, modificação e distribuição. 

Os desenvolvedores podem usar bancos de dados de código aberto para os aplicativos sem custo de licenciamento e com total flexibilidade na implantação, já que esses bancos de dados são executados em uma ampla variedade de plataformas de nuvem e não nuvem. Uma comunidade de desenvolvedores contribui para a melhoria e manutenção do software, melhorando a segurança e a confiabilidade.

Vantagens do PostgreSQL

A popularidade do PostgreSQL aumentou nos últimos anos, tornando-o um dos bancos de dados mais usados no mundo. Ela oferece vários benefícios:

  • Confiável e seguro. O PostgreSQL é altamente tolerante a falhas, mantendo a durabilidade dos dados e maximizando o tempo de atividade. Ele oferece suporte a um modelo de autenticação e autorização avançado, além de vários métodos de criptografia, incluindo a criptografia de dados de ponta a ponta com SSL.
  • Alto desempenho. O PostgreSQL armazena dados de maneira estruturada, o que permite inserir, excluir e modificar dados com eficiência. Ele também é eficiente para pesquisas e junções. Além disso, o PostgreSQL pode ser escalonado com várias CPUs em paralelo, o que acelera ainda mais as consultas. 
  • Conformidade. Por serem altamente compatíveis com o padrão SQL, os bancos de dados PostgreSQL são fáceis de usar para criar apps e migrar os que já existem. Eles também são compatíveis com ACID, o que significa que seus dados são válidos mesmo em meio a interrupções de hardware, software ou rede.
  • Extremamente extensível. O PostgreSQL oferece suporte a vários tipos de dados (inclusive avançados e criados pelo usuário), várias linguagens de programação e a capacidade de escrever funções personalizadas. Ele também tem um mecanismo de extensão para adicionar novas funcionalidades.
  • Monitoramento simples. O PostgreSQL oferece várias estatísticas para ajudar na coleta e nos relatórios de atividades do servidor. Há várias ferramentas externas disponíveis para monitorar a atividade do banco de dados e analisar o desempenho.

Para que serve o PostgreSQL?

O PostgreSQL é usado para uma ampla variedade de aplicativos devido à flexibilidade, confiabilidade e conjunto de atributos robustos. Veja alguns usos comuns:  

Confiável para aplicativos altamente seguros e conhecido por auditoriabilidade, compliance e proteção de dados.

O PostgreSQL pode processar consultas em bilhões de linhas e é comumente usado para aumentar data warehouses e outros sistemas analíticos com dados operacionais em tempo real. Na verdade, vários produtos de data warehouse conhecidos evoluíram do PostgreSQL.

Escalonável, robusto e capaz de lidar com altos níveis de tráfego, o PostgreSQL é confiável para dispositivos móveis, Web, mídias sociais e outros aplicativos de alto volume.

O PostgreSQL oferece suporte a dados geográficos, para que os aplicativos possam calcular a distância entre pontos e realizar cálculos geoespaciais para aplicativos de navegação, logística e agricultura.

O PostgreSQL oferece pesquisa vetorial de alto desempenho e é comumente usado para fornecer entradas a modelos de linguagem grandes (LLMs), muitas vezes estendendo esses modelos por geração aumentada de recuperação (RAG). Os desenvolvedores costumam escolher o PostgreSQL para criar

O PostgreSQL é usado comumente por organizações para migrar apps legados para uma plataforma moderna de código aberto.

Comparações do PostgreSQL

As seções a seguir apresentam mais detalhes sobre o ecossistema do PostgreSQL. Confira comparações entre o AlloyDB e o Aurora, o SQL Server, o MySQL e o Oracle e, por fim, as diferenças entre bancos de dados do PostgreSQL totalmente gerenciados e autogerenciados.

Há vários produtos comerciais no mercado com diferentes níveis de compatibilidade com o PostgreSQL. Dois dos mais conhecidos são o AlloyDB do Google Cloud e o Aurora da AWS. 

O AlloyDB é executado em qualquer plataforma e em qualquer nuvem, enquanto o Aurora é executado apenas na Amazon Web Services (AWS). Por outro lado, o AlloyDB se concentra no PostgreSQL, enquanto o Aurora oferece os mecanismos PostgreSQL e MySQL.

O AlloyDB se tornou uma escolha popular para empresas porque:

  • Usa várias camadas de armazenamento em cache em toda a pilha, incluindo um cache ultrarrápido na camada de banco de dados 
  • Tem um mecanismo colunar integrado que acelera as consultas analíticas
  • Usa sistemas com ML para simplificar tarefas de gerenciamento, como aspiração, armazenamento e gerenciamento de memória
  • Inclui a AlloyDB AI, uma plataforma para criar apps de IA generativa com pesquisa vetorial de alto desempenho, embeddings de vetores e suporte a linguagem natural no banco de dados
  • Destaca os preços transparentes e previsíveis, com armazenamento de pagamento por uso e sem cobranças de E/S

O PostgreSQL é um banco de dados de código aberto que é executado na maioria dos sistemas operacionais, enquanto o SQL Server é um produto comercial que é executado no Microsoft Windows e no Linux. Ambos estão disponíveis como serviços de nuvem gerenciados de vários fornecedores.

Os dois sistemas compartilham muitos recursos principais, mas há várias diferenças. Uma das principais vantagens do PostgreSQL é que ele usa o controle de simultaneidade de várias versões (MVCC) para processamento simultâneo, para que possa processar altas taxas de transações com quase nenhum impasse. O SQL Server é conhecido por ter alto desempenho e recursos de banco de dados na memória, que também são oferecidos pelo AlloyDB.

Para uma comparação completa, leia PostgreSQL x SQL Server.

O MySQL é um banco de dados relacional baseado em SQL, enquanto o PostgreSQL é um banco de dados relacional-objeto. Embora ambos sejam de código aberto, o PostgreSQL segue um licenciamento que permite distribuição comercial. O projeto de código aberto MySQL é patrocinado pela Oracle.

O PostgreSQL escalona adicionando processos, o que historicamente é uma boa abordagem para aplicativos confiáveis. O mecanismo de extensão do PostgreSQL faz dele uma plataforma mais conhecida para contribuições da comunidade.

O MySQL faz escalonamento adicionando threads, o que é bom para aplicativos de pequena escala e com poucos recursos.

A escolha geralmente se resume à preferência pessoal e ao conjunto de experiências dos desenvolvedores qualificados disponíveis. 

Algumas diferenças técnicas entre o PostgreSQL e o MySQL: 

PostgreSQL

  • Oferece suporte a tipos de dados complexos e um mecanismo de extensão
  • Suporta MVCC, permitindo a modificação de dados com quase nenhum deadlock
  • Oferece suporte a uma grande variedade de tipos de dados altamente extensível
  • Oferece suporte a uma ampla variedade de tipos de índice, incluindo B-Tree, HASH, GiST e GIN
  • Implementa um processo VACUUM para coleta de lixo

MySQL

  • Foco nos conceitos tradicionais de bancos de dados relacionais
  • Suporta MVCC, dependendo do mecanismo de armazenamento
  • Suporta um conjunto padrão de tipos de dados
  • Oferece um conjunto limitado de índices
  • Usa linhas de execução dedicadas

O PostgreSQL e o Oracle são bancos de dados relacionais conhecidos que oferecem suporte ao SQL e usam linguagens procedurais semelhantes (PL/SQL no caso do Oracle). Ambos são valorizados pela escalonabilidade e segurança. 

O Oracle é usado por empresas de todos os tamanhos para impulsionar aplicativos essenciais e é conhecido pela disponibilidade e suporte a recursos avançados, como clustering. 

O PostgreSQL oferece recursos e funcionalidades semelhantes aos do Oracle, incluindo recuperação de desastres, alto desempenho e replicação integrada. As empresas escolhem o PostgreSQL como uma alternativa mais aberta e econômica ao Oracle.

Assim como em todos os bancos de dados, a autogestão exige experiência técnica na sua equipe. Isso inclui conhecimento sobre como configurar e manter a arquitetura, escalonar jobs e habilidades gerais de gerenciamento de banco de dados, como fazer upgrades, backups, manutenção de segurança, recuperação de desastres e instalar patches. As equipes de desenvolvimento preferem cada vez mais um banco de dados totalmente gerenciado para se concentrarem nos aplicativos.

Bancos de dados totalmente gerenciados:

  • São fáceis de testar e simples de usar
  • Escalone de forma simples ou automática
  • Oferecer backups e upgrades automatizados
  • Oferecer alta disponibilidade e recuperação de desastres integradas

No entanto, se você precisar de controle total sobre o ambiente do banco de dados devido a necessidades específicas do aplicativo, um banco de dados autogerenciado oferece essa flexibilidade.

Suporte a extensões do PostgreSQL

As extensões permitem expandir e adaptar a funcionalidade do seu banco de dados aos seus requisitos específicos. O PostgreSQL oferece suporte abrangente a extensões, que funcionam como funções integradas, incluindo aquelas desenvolvidas externamente.

Algumas extensões comuns são:

  • PostGIS. Suporta armazenamento, indexação e consulta de dados geoespaciais. Usado para uma variedade de aplicativos geoespaciais, incluindo navegação.
  • pgvector. Permite armazenar, indexar e consultar vetores e executar pesquisas de similaridade vetorial. Usado para IA generativa e processamento de linguagem natural.
  • pglogical. Reproduz os dados de forma robusta usando a replicação lógica. Usado para replicar entre bancos de dados PostgreSQL e oferece suporte à replicação granular no nível da tabela.

Tipos de dados do PostgreSQL

O PostgreSQL oferece suporte a tipos de dados básicos e avançados que não são comuns em outros bancos de dados, incluindo booleano, número, inteiro, carimbo de data/hora, matriz e muito mais. Os desenvolvedores também podem criar tipos de dados próprios.

Quais idiomas são compatíveis com o PostgreSQL?

A linguagem procedural padrão é uma extensão do pgSQL (PL/pgSQL), com extensões de linguagem procedural de Tcl, Perl e Python incluídas na distribuição padrão (escritas como PL/Tcl, PL/Perl e PL/Python). Essas linguagens de procedimentos carregáveis permitem que a linguagem de programação seja usada para criar funções e acionar procedimentos. 

Muitas outras linguagens são compatíveis com extensões, incluindo Java, Ruby, C, C++, Delphi e JavaScript.

O PostgreSQL permite programar em várias linguagens sem recompilar o banco de dados, um benefício importante para desenvolvedores.

O PostgreSQL é compatível com o ACID?

Sim, o PostgreSQL é compatível com o ACID desde 2001. 

ACID (atomicidade, consistência, isolamento e durabilidade) é um conjunto de propriedades que descreve como os bancos de dados transacionais garantem a validade dos dados. A conformidade com o ACID garante a qualidade dos dados mesmo em caso de falha no hardware ou interrupção da rede e permite a leitura e a gravação ao mesmo tempo, sem perda ou corrupção de dados. Esses princípios são essenciais para aplicações em diversos setores, incluindo finanças e saúde. 

Por exemplo, um aplicativo bancário está transferindo um saldo entre duas contas no banco de dados. Se houver uma falha ou interrupção no meio da transação, um banco de dados compatível com o ACID garante que o dinheiro não desapareça ou seja creditado mais de uma vez. Os saldos das contas sempre permanecem válidos.

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.

Google Cloud