Questão de Banco de Dados — SQL — Quadrix 2025
- Código
- qg597695
- Banca
- Quadrix
- Órgão
- CREMESE
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Sistemas
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: CERTO (letra C). Stored procedures (procedimentos armazenados) são blocos de código SQL que ficam gravados e executados no próprio banco de dados, encapsulando a lógica de negócio no servidor. Isso reduz o tráfego de rede — o cliente envia uma única chamada em vez de múltiplas consultas — e permite controlar permissões de acesso com mais granularidade, reforçando a segurança. A afirmação está correta.
Uma stored procedure é, essencialmente, um programa que reside no SGBD. Em vez de a aplicação cliente executar várias instruções SQL separadas (cada uma viajando pela rede até o servidor), ela chama uma única rotina que já está compilada e pronta para rodar no banco. Esse é o coração do conceito: mover a lógica para perto dos dados. O ganho de desempenho vem de dois fatores: menos idas e vindas entre cliente e servidor (menos latência de rede) e a possibilidade de o SGBD reutilizar o plano de execução já otimizado da procedure, em vez de recompilar a consulta a cada chamada.
A segurança também é beneficiada. Com stored procedures, o administrador pode conceder ao usuário da aplicação apenas a permissão de EXECUTAR a procedure, sem dar acesso direto às tabelas subjacentes. Isso cria uma camada de abstração: o usuário não precisa (e não pode) manipular as tabelas diretamente — ele só interage com a interface definida pela procedure. É uma prática recomendada de segurança em bancos de dados, pois reduz a superfície de ataque e permite aplicar regras de negócio de forma centralizada, garantindo que toda alteração passe pelo mesmo caminho validado.
Na prática, imagine um sistema de vendas. Sem stored procedures, a aplicação cliente precisaria executar várias consultas para registrar uma venda: verificar o estoque, inserir o pedido, atualizar o estoque, calcular o imposto... Cada uma dessas operações é uma viagem de ida e volta pela rede. Com uma procedure registrar_venda, a aplicação envia uma única chamada com os parâmetros (produto, quantidade, cliente) e o banco executa toda a lógica internamente, em uma única transação. O resultado: menos tráfego, maior consistência e uma operação atômica.
A distinção que importa aqui é entre onde a lógica é executada. Em uma arquitetura de duas camadas (cliente-servidor), a lógica de negócio pode ficar na aplicação cliente, que envia comandos SQL individuais ao banco. Com stored procedures, essa lógica migra para o servidor de banco de dados. Essa é a fronteira que a questão explora: a afirmação descreve exatamente o papel das stored procedures — encapsular lógica no banco, melhorando desempenho (menos consultas do cliente) e segurança (controle de acesso centralizado).
A pegadinha que poderia existir aqui seria inverter os papéis — por exemplo, afirmar que stored procedures pioram o desempenho ou que são executadas no cliente. Mas a questão não cai nessa armadilha; ela descreve corretamente o conceito. O candidato que entende o papel das procedures no SGBD reconhece a afirmação como verdadeira sem hesitação.
A afirmação está correta. Stored procedures encapsulam lógica de negócio no banco de dados, sim. E os dois benefícios citados são precisos:
Desempenho: ao evitar múltiplas consultas do cliente, reduz-se o tráfego de rede e o overhead de comunicação. Em vez de várias idas e voltas, uma única chamada executa toda a lógica no servidor. Além disso, o SGBD pode reutilizar o plano de execução otimizado da procedure.
Segurança: o controle de acesso pode ser feito no nível da procedure. O usuário da aplicação recebe permissão apenas para executar a rotina, sem acesso direto às tabelas. Isso centraliza as regras de negócio e reduz a superfície de ataque.
Não há nenhum termo incorreto ou exagerado na afirmação. Ela descreve fielmente o papel das stored procedures em um SGBD relacional.
Gabarito: letra C (CERTO).
Link permanente: /questoes/qg597695