Categoria

SQL + Banco de Dados

Stored procedures e functions no PostgreSQL
SQL + Banco de Dados

Stored procedures e functions no PostgreSQL

Stored procedures e functions são blocos de código armazenados no banco de dados que encapsulam lógica de negócio diretamente no PostgreSQL. Embora ambos ofereçam reutilização e desempenho, existem diferenças conceituais fundamentais.

05/05/2026
Schema evolution: estratégias para mudar estruturas em produção
SQL + Banco de Dados 05/05/2026

Schema evolution: estratégias para mudar estruturas em produção

Schema evolution é o processo de modificar a estrutura de um banco de dados enquanto ele está em produção, sem interromper o serviço ou causar perda de dados. Em sistemas modernos, essa prática é inevitável: requisitos de negócio mudam, novos campos são necessários, e otimizações de desempenho exigem reorganizações.

Seed data: populando bancos para desenvolvimento e teste
SQL + Banco de Dados 05/05/2026

Seed data: populando bancos para desenvolvimento e teste

Seed data, ou dados de semente, refere-se ao conjunto inicial de informações inseridas em um banco de dados para simular um ambiente realista durante o desenvolvimento e os testes. Diferentemente de fixtures (dados estáticos usados em testes unitários) ou dados de produção mascarados (cópias anonimizadas de dados reais), a seed data é criada artificialmente para atender necessidades específicas de cada contexto.

SELECT básico: colunas, todas as linhas e aliases
SQL + Banco de Dados 05/05/2026

SELECT básico: colunas, todas as linhas e aliases

O comando SELECT é a instrução fundamental da linguagem SQL para consultar dados armazenados em bancos de dados relacionais. Diferentemente de comandos como INSERT, UPDATE ou DELETE, que modificam os dados, o SELECT apenas os recupera, sem alterar o estado original da tabela.

Self JOIN: uma tabela se juntando a si mesma
SQL + Banco de Dados 05/05/2026

Self JOIN: uma tabela se juntando a si mesma

O Self JOIN é uma técnica poderosa em SQL onde uma tabela é combinada com ela mesma. Diferentemente dos JOINs tradicionais que conectam duas tabelas distintas, o Self JOIN utiliza uma única tabela, mas a trata como se fossem duas instâncias separadas através do uso de aliases.

Read replicas: escalando leituras com segurança
SQL + Banco de Dados 05/05/2026

Read replicas: escalando leituras com segurança

Sistemas de banco de dados relacionais frequentemente enfrentam um gargalo clássico: o nó primário (leader) precisa lidar com todas as operações de escrita e, simultaneamente, atender consultas de leitura. Conforme a aplicação cresce, as consultas de leitura — relatórios pesados, dashboards em tempo real, APIs de busca — consomem CPU, memória e I/O, degradando a performance das escritas. A solução mais adotada para esse cenário é a implantação de read replicas. Este artigo explora os fundamentos

Redis como cache: estratégias e invalidação
SQL + Banco de Dados 05/05/2026

Redis como cache: estratégias e invalidação

Bancos de dados SQL relacionais são excelentes para garantir consistência e integridade dos dados, mas enfrentam limitações de desempenho sob alta carga de leitura. O Redis surge como uma camada de cache distribuído que reduz a latência e alivia a pressão sobre o banco principal.

Redis Streams: processamento de eventos
SQL + Banco de Dados 05/05/2026

Redis Streams: processamento de eventos

Redis Streams é uma estrutura de dados introduzida no Redis 5.0 que implementa um log de eventos append-only. Cada entrada no stream é composta por um identificador único (ID) e um conjunto de pares chave-valor (field-value). Diferentemente de listas ou pub/sub, os streams oferecem persistência, ordenação temporal garantida e suporte nativo a grupos de consumidores.

Row-level security: controle de acesso granular
SQL + Banco de Dados 05/05/2026

Row-level security: controle de acesso granular

Row-Level Security (RLS) é um mecanismo de segurança de banco de dados que permite controlar o acesso a linhas individuais de uma tabela com base nas características do usuário ou da sessão. Diferentemente dos modelos tradicionais de permissão (que operam no nível de tabela ou coluna), o RLS aplica filtros automáticos e invisíveis ao usuário, garantindo que cada consulta retorne apenas as linhas que o usuário tem autorização para ver.