

# Aurora DSQL e PostgreSQL
<a name="working-with"></a>

O Aurora DSQL é um banco de dados relacional distribuído, compatível com PostgreSQL, projetado para workloads transacionais. O Aurora DSQL usa os principais componentes do PostgreSQL, como o analisador, planejador, otimizador e sistema de tipos.

O design do Aurora DSQL garante que a sintaxe completa compatível do PostgreSQL apresente um comportamento compatível e produza resultados de consulta idênticos. Por exemplo, o Aurora DSQL fornece conversões de tipo, operações aritméticas e precisão e escala numéricas que são idênticas às do PostgreSQL. Quaisquer desvios são documentados. 

O Aurora DSQL também introduz recursos avançados, como controle otimista de simultaneidade e gerenciamento de esquemas distribuídos. Com esses recursos, você pode usar as ferramentas conhecidas do PostgreSQL, bem como se beneficiar do desempenho e da escalabilidade de aplicações distribuídas modernas e nativas da nuvem.

## Destaques da compatibilidade com o PostgreSQL
<a name="dsql-pg-overview-compat"></a>

Atualmente, o Aurora DSQL baseia-se na versão 16 do PostgreSQL. Alguns dos principais destaques são:

**Protocolo de comunicação**  
O Aurora DSQL usa o protocolo de comunicação padrão PostgreSQL v3. Isso permite a integração com clientes, drivers e ferramentas padrão do PostgreSQL. Por exemplo, o Aurora DSQL é compatível com `psql`, `pgjdbc` e `psycopg`.

**Sintaxe de SQL**  
O Aurora DSQL oferece suporte a uma ampla variedade de expressões e funções padrão do PostgreSQL comumente usadas em workloads transacionais. As expressões SQL compatíveis produzem resultados idênticos aos do PostgreSQL, incluindo os seguintes:  
+ Manipulação de nulos
+ Comportamento da ordem de classificação
+ Escala e precisão para operações numéricas
+ Equivalência para operações de string
Para obter mais informações, consulte [Compatibilidade com recursos SQL no Aurora DSQL](working-with-postgresql-compatibility.md).

**Gerenciamento de transações**  
O Aurora DSQL preserva as características principais do PostgreSQL, como transações ACID e um nível de isolamento equivalente ao Repeatable Read do PostgreSQL. Para obter mais informações, consulte [Controle de simultaneidade no Aurora DSQL](working-with-concurrency-control.md).

## Benefícios da arquitetura distribuída
<a name="dsql-pg-overview-arch"></a>

O design distribuído e sem compartilhamento do Aurora DSQL oferece benefícios de desempenho e de escalabilidade que transcendem os oferecidos pelos bancos de dados tradicionais de nó único. Alguns dos principais recursos são:

**Controle de simultaneidade otimista (OCC)**  
O Aurora DSQL usa um modelo de controle de simultaneidade otimista. Essa abordagem sem bloqueios evita que as transações bloqueiem umas às outras, elimina deadlocks e permite a execução paralela de alto throughput. Esses recursos tornam o Aurora DSQL particularmente valioso para aplicações que exigem desempenho consistente em escala. Para obter mais exemplos, consulte [Controle de simultaneidade no Aurora DSQL](working-with-concurrency-control.md).

**Operações assíncronas de DDL**  
O Aurora DSQL executa operações de DDL de forma assíncrona, o que permite leituras e gravações ininterruptas durante alterações de esquema. Sua arquitetura distribuída permite que o Aurora DSQL faça o seguinte:  
+ Execute operações de DDL como tarefas em segundo plano, minimizando interrupções.
+ Coordene alterações do catálogo como transações distribuídas altamente consistentes. Isso garante visibilidade atômica em todos os nós, mesmo durante falhas ou operações concorrentes.
+ Opere de forma totalmente distribuída e sem líderes em várias zonas de disponibilidade com camadas de computação e armazenamento desacopladas.
Para saber mais sobre como usar o comando EXPLAIN no PostgreSQL, consulte [DDL e transações distribuídas no Aurora DSQL](working-with-ddl.md).