🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

Perguntas da entrevista de banco de dados 2026: SQL, normalização, ACID e fragmentação

⏱️4 min read  ·  790 words

As perguntas da entrevista sobre banco de dados em 2026 cobrem fundamentos de SQL, transações, indexação, normalização, NoSQL vs SQL e serviços de banco de dados em nuvem. Este guia aborda as perguntas mais comuns sobre banco de dados para funções de desenvolvedor back-end e engenheiro de dados.

Perguntas sobre o banco de dados principal

1. O que é normalização? Explique 1NF, 2NF, 3NF

Normalization: organize tables to reduce redundancy and improve integrity

1NF (First Normal Form):
  - Each column contains atomic (indivisible) values
  - No repeating groups or arrays in columns
  BAD:  users(id, name, phones="555-1234,555-5678")
  GOOD: users(id, name) + phones(id, user_id, phone)

2NF (Second Normal Form):
  - Must be in 1NF
  - All non-key columns depend on the ENTIRE primary key (no partial dependency)
  BAD:  orders(order_id, product_id, product_name, qty)
        product_name depends only on product_id, not full key
  GOOD: orders(order_id, product_id, qty)
        products(product_id, product_name)

3NF (Third Normal Form):
  - Must be in 2NF
  - No transitive dependencies (non-key columns depend only on key)
  BAD:  employees(emp_id, dept_id, dept_name)
        dept_name depends on dept_id, not emp_id
  GOOD: employees(emp_id, dept_id)
        departments(dept_id, dept_name)

2. Quais são as propriedades ACID?

  • Atomicidade: A transação é tudo ou nada – transferência de US$ 100: débito E crédito são bem-sucedidos ou ambos falham
  • Consistência: O banco de dados vai de um estado válido para outro — o saldo nunca pode ser negativo
  • Isolamento: as transações simultâneas não interferem — dois usuários que reservam o mesmo assento não têm sucesso
  • Durabilidade: os dados confirmados sobrevivem a falhas — gravados no disco, não apenas na memória

3. Explique os níveis de isolamento e suas compensações

-- Isolation levels (weakest to strongest):

-- READ UNCOMMITTED: can read uncommitted data (dirty reads)
-- Rarely used, maximum performance

-- READ COMMITTED (default in PostgreSQL):
-- Only reads committed data. Prevents dirty reads.
-- Non-repeatable reads possible (same query returns different results)

-- REPEATABLE READ (default in MySQL):
-- Same rows return same data within transaction.
-- Phantom reads possible (new rows can appear)

-- SERIALIZABLE: full isolation, no phantoms
-- Slowest, all transactions run as if sequential
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

-- In PostgreSQL
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
-- ...
COMMIT;

-- Common choice: READ COMMITTED for most apps
-- REPEATABLE READ for financial reporting
-- SERIALIZABLE for critical financial transactions

4. What is the difference between clustered and non-clustered indexes?

  • Índice clusterizado: Linhas de dados armazenadas em ordem de índice. Um por mesa. InnoDB usa PRIMARY KEY como cluster.
  • Não agrupado: estrutura separada apontando para linhas de dados. Vários por tabela.

-- Clustered: physical order of data = index order
-- PRIMARY KEY automatically creates clustered index in most DBs
CREATE TABLE users (
  id BIGSERIAL PRIMARY KEY,  -- clustered index
  email VARCHAR(255),
  name VARCHAR(100)
);

-- Non-clustered: lookup structure → pointer to data
CREATE INDEX idx_email ON users(email);  -- non-clustered

-- Covering index: includes all needed columns
-- Allows index-only scan (never touches data pages)
CREATE INDEX idx_user_lookup ON users(email) INCLUDE (id, name);
-- SELECT id, name FROM users WHERE email = 'alice@example.com'
-- Can be answered entirely from index — very fast!

5. Quando você escolheria NoSQL em vez de SQL?

Escolha SQL quando Escolha NoSQL quando
Relacionamentos complexos (JOINs) Padrões de acesso simples (valor-chave)
Transações ACID necessárias Escala massiva (fragmentação necessária)
Consultas complexas, agregações Esquema flexível
Dados financeiros e de inventário Alto rendimento de gravação
A equipe conhece SQL Documentos JSON, dados aninhados

6. Explique a fragmentação do banco de dados

Fragmentação: particione dados horizontalmente em várias instâncias de banco de dados.

Sharding strategies:

Range-based: shard by value range
  Shard 1: user_id 1-1M
  Shard 2: user_id 1M-2M
  Pros: range queries efficient
  Cons: hot spots (newest users all on last shard)

Hash-based: shard_num = hash(user_id) % num_shards
  Even distribution
  Cons: range queries hit all shards, resharding is hard

Directory-based: lookup table maps key → shard
  Flexible, easy to rebalance
  Cons: lookup overhead, single point of failure

Cross-shard challenges:
  - JOINs must be done in application layer
  - Distributed transactions are complex
  - Global uniqueness (use UUIDs instead of auto-increment)

As entrevistas de banco de dados testam amplitude (SQL, normalização, ACID) e profundidade (otimização de consulta, estratégia de indexação). Saiba como usar EXPLAIN ANALYZE, entenda quando cada tipo de índice ajuda e explique claramente as compensações da fragmentação. As questões de produção geralmente abrangem pool de conexões, atraso de replicação e tratamento de consultas N+1.

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇬🇧 English🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা