Banco de dados
Banco de Dados SQL e NoSQL são um dos temas mais recorrentes em concursos de diversas carreiras: fiscais, controle, policiais, TI. Precisamos dominar desde os fundamentos do modelo relacional até as diferenças entre bancos SQL e NoSQL.
Questões recentes demonstram que as bancas exigem não apenas o conhecimento de comandos de manipulação de dados, mas também a compreensão de conceitos de normalização, integridade e estruturas auxiliares como índices, visões e triggers.
Portanto, neste artigo, vamos revisar os seguintes tópicos:
O modelo relacional, proposto por Edgar F. Codd na década de 1970, organiza os dados em tabelas (relações). Cada tabela é formada por:
Além disso, nós devemos entender as diferentes classificações de chaves:
| Tipo de chave | Definição |
| Superchave | Conjunto de atributos que identifica unicamente uma tupla |
| Chave candidata | Superchave mínima, da qual uma é escolhida como chave primária |
| Chave estrangeira | Atributo que referencia a chave primária de outra tabela |
Esses conceitos costumam ser cobrados de forma conceitual e também em exercícios práticos de modelagem.
A SQL (Structured Query Language) é dividida em três subconjuntos principais:
| Categoria | Função | Exemplos de comandos |
| DDL (Data Definition Language) | Define a estrutura do banco | CREATE TABLE, ALTER TABLE, DROP TABLE |
| DML (Data Manipulation Language) | Manipula e consulta dados | INSERT, UPDATE, DELETE, SELECT |
| DCL (Data Control Language) | Controla permissões de acesso | GRANT, REVOKE |
Embora alguns materiais utilizem a sigla DQL para destacar os comandos de consulta, como SELECT, nós devemos lembrar que a classificação mais aceita é incluir essa instrução dentro da DML, já que também manipula dados.
O SELECT é, de longe, o comando mais cobrado em concursos. Bancas exploram filtros com WHERE, junções (JOIN) e agrupamentos (GROUP BY e HAVING).
Exemplo clássico:
SELECT departamento, AVG(salario)
FROM funcionarios
GROUP BY departamento
HAVING AVG(salario) > 5000;
Nesse caso, a diferença entre WHERE e HAVING costuma ser alvo de pegadinha: WHERE filtra linhas antes da agregação, enquanto HAVING atua depois da agregação.
A normalização organiza os dados em estruturas mais eficientes, reduzindo redundâncias e evitando anomalias em bancos relacionais.
| Forma Normal | Condição | Problemas evitados |
| 1FN | Todos os atributos atômicos, sem valores multivalorados | Elimina atributos compostos ou repetidos |
| 2FN | Estar em 1FN e não ter dependência parcial em chave composta | Elimina redundâncias em tabelas com chaves compostas |
| 3FN | Estar em 2FN e não ter dependências transitivas | Evita anomalias de atualização |
| FNBC | Todo determinante deve ser chave candidata | Elimina dependências funcionais indevidas |
Exemplo de 2FN (dependência parcial):
Uma tabela (id_pedido, id_produto, nome_produto, quantidade) tem chave primária composta (id_pedido, id_produto). O atributo nome_produto depende apenas de id_produto, não da chave completa. Para corrigir, nós devemos separar em duas tabelas: Produtos e Pedidos_Produtos.
Exemplo de 3FN (dependência transitiva):
Em uma tabela de empréstimos, (codigo_emprestimo, cpf_cliente, nome_cliente, nome_agente, email_agente), os atributos nome_agente e email_agente não dependem do empréstimo em si, mas do agente. Isso é uma dependência transitiva e deve ser corrigido com a decomposição em tabelas diferentes.
Essas distinções entre 2FN e 3FN aparecem frequentemente em questões de certo/errado.
Além das tabelas, contamos com estruturas adicionais que aumentam a eficiência e permitem automatizar tarefas.
São estruturas que aceleram a busca de registros no banco de dados.
Pegadinha comum: acreditar que índices sempre melhoram desempenho. Eles aceleram consultas, mas podem tornar operações de inserção e atualização mais lentas.
São tabelas virtuais criadas a partir de consultas SQL.
São gatilhos que executam automaticamente instruções no banco de dados em resposta a eventos DML.
Funcionam no modelo evento-condição-ação.
| Tipo de Trigger | Quando executa |
| BEFORE INSERT | Antes da inserção, podendo ajustar valores |
| AFTER INSERT | Após a inserção e validações |
| BEFORE UPDATE | Antes da atualização, permitindo verificar regras |
| AFTER DELETE | Após a exclusão de registros |
Os bancos NoSQL foram criados para lidar com grandes volumes de dados, escalabilidade horizontal e estruturas mais flexíveis.
| Modelo | Estrutura | Exemplos de uso |
| Relacional (SQL) | Tabelas normalizadas, forte consistência | Sistemas financeiros, ERPs |
| Documentos (NoSQL) | Estruturas JSON ou BSON | Aplicações web, catálogos |
| Chave-valor (NoSQL) | Pares simples chave → valor | Cache, rankings de jogos |
| Colunar (NoSQL) | Armazenamento por colunas | Big Data, análise em larga escala |
| Grafos (NoSQL) | Nós e arestas | Redes sociais, recomendações |
Pegadinha frequente: afirmar que NoSQL é ideal para transações complexas e rígidas. Isso está incorreto, já que o modelo relacional ainda é o mais indicado para cenários de forte consistência.
Vimos que o estudo de Banco de Dados (SQL e NoSQL) é essencial para concursos com conteúdo de TI. Precisamos dominar:
Além disso, observamos que as bancas exploram desde conceitos básicos de banco de dados até detalhes de sintaxe e pegadinhas de interpretação.
Chegamos ao final do artigo! Esperamos que este conteúdo tenha te ajudado a acertar uma questão a mais sobre banco de dados na prova.
Porém, recomendamos que este artigo seja utilizado como complemento de estudo, priorizando sempre os materiais do Estratégia Concursos, que trazem a teoria aprofundada e questões comentadas.
Bons estudos!
https://aws.amazon.com/pt/compare/the-difference-between-relational-and-non-relational-databases
https://www.alura.com.br/artigos/sql-nosql-bancos-relacionais-nao-relacionais
Concurso TCE SC: inscrições já estão abertas! Estão oficialmente abertas as inscrições do concurso público…
Quer ficar por dentro de todos os concursos fiscais de âmbito municipal (ISS) previstos para…
Quer ficar por dentro de todos os concursos fiscais previstos para 2026, além de oportunidades…
Estão oficialmente abertas as inscrições do edital Tribunal de Contas do Estado de Santa Catarina (TCE…
Oportunidades do concurso Viana Saúde são para cargos de níveis médio e superior! Estão disponíveis…
Novo edital do concurso Camboriú Saúde ofertará 9 vagas imediatas e em cadastro de reserva!…