Pular para o conteúdo principal

Questão de Banco de Dados — SGBD - Sistema de Gerenciamento de Banco de Dados — Avança SP 2024

Banco de DadosSGBD - Sistema de Gerenciamento de Banco de Dados
Código
qg078047
Banca
Avança SP
Órgão
CISBRA - SP
Ano
2024
Nível
Superior
Cargo
Analista em T.I
Os ____ utilizam a programação modular. Eles encapsulam conjuntos de operações sobre os dados, ou seja, qualquer possível alteração no SGBD fica “escondida” da aplicação que fazem o acesso ao banco por meio deles. E ainda permitem que aplicações possam acessar o SGBD de maneira uniforme.Indique qual das alternativas a seguir melhor preenche a lacuna no texto acima.
  1. ATriggers
  2. BStore Procedures
  3. CTransactions
  4. DALTER FUNCTIONS
  5. ESETs
Revelar gabarito e comentário

GabaritoB — Store Procedures

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Stored Procedures: encapsulamento e uniformidade de acesso

Gabarito: letra B. As Stored Procedures (procedimentos armazenados) são blocos de código SQL pré-compilados e armazenados no SGBD, que encapsulam conjuntos de operações sobre os dados — exatamente o que o enunciado descreve: qualquer alteração no SGBD fica "escondida" da aplicação, que passa a acessar o banco de forma uniforme por meio delas. As demais alternativas não se encaixam: triggers são disparadas automaticamente por eventos, transactions são unidades lógicas de trabalho, e as opções D e E não são conceitos válidos de programação modular em banco de dados.

O que são Stored Procedures? São procedimentos armazenados no banco de dados, escritos em SQL (ou em linguagens procedurais como PL/SQL, T-SQL, PL/pgSQL), que agrupam uma sequência de comandos — consultas, inserções, atualizações, deleções, controle de fluxo — sob um nome. Quando uma aplicação precisa executar aquela lógica, ela simplesmente chama o procedimento, em vez de enviar cada comando SQL individualmente. Isso traz três benefícios centrais:

  1. Encapsulamento: a lógica de acesso aos dados fica centralizada no SGBD. Se a estrutura das tabelas mudar, ou se a regra de negócio for alterada, o procedimento é atualizado uma única vez — a aplicação continua chamando o mesmo nome, sem precisar ser modificada. É a "programação modular" citada no enunciado.

  2. Uniformidade de acesso: diferentes aplicações (web, desktop, mobile) podem chamar a mesma stored procedure da mesma forma, garantindo que todas usem a mesma lógica de acesso aos dados, com as mesmas regras de validação e segurança.

  3. Desempenho e segurança: por serem pré-compiladas, reduzem o tráfego de rede (a aplicação envia apenas a chamada, não o script inteiro) e permitem conceder permissões de execução sem expor as tabelas diretamente.

Vamos comparar com os conceitos vizinhos para fixar:

Critério

Stored Procedure

Trigger

Transaction

Disparo

Chamada explícita pela aplicação

Automático, em resposta a eventos (INSERT, UPDATE, DELETE)

Iniciada explicitamente (BEGIN TRANSACTION)

Objetivo

Encapsular lógica de negócio e acesso

Garantir integridade/auditoria automaticamente

Garantir atomicidade, consistência, isolamento e durabilidade

Retorno

Pode retornar valores/result sets

Não retorna valores à aplicação

Não retorna valores; define uma unidade de trabalho

Controle

Total pela aplicação

Disparada pelo SGBD, sem controle direto da aplicação

Controlada pela aplicação, mas com propriedades do SGBD

A pegadinha da banca está em confundir stored procedure com trigger: ambas são objetos de programação no banco, mas a trigger não é chamada pela aplicação — ela é executada automaticamente quando um evento ocorre. O enunciado fala em "aplicações que fazem o acesso ao banco por meio deles" e "permitem que aplicações possam acessar o SGBD de maneira uniforme", o que aponta claramente para a chamada explícita de uma stored procedure.

Outra confusão comum é com transactions: uma transação é uma sequência de operações tratadas como uma unidade indivisível (atomicidade), mas ela não encapsula lógica de negócio nem é um objeto persistente chamado pela aplicação — é um conceito de controle de concorrência e recuperação. Já as stored procedures podem conter transações internamente, mas não se confundem com elas.

Guarde a fronteira: encapsulamento + chamada explícita + uniformidade = stored procedure. É exatamente esse trio que as alternativas tentam embaralhar.

Stored Procedures
  • 1Encapsulam operações
    • Lógica centralizada no SGBD
    • Alterações ficam ocultas da aplicação
  • 2Acesso uniforme
    • Aplicações chamam pelo nome
    • Mesma lógica para web, desktop, mobile
  • 3Benefícios
    • Desempenho (pré-compiladas)
    • Segurança (permissões sem expor tabelas)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Triggers (gatilhos) são procedimentos que o SGBD executa automaticamente em resposta a eventos de manipulação de dados (INSERT, UPDATE, DELETE) em uma tabela. Elas não são chamadas pela aplicação e não servem para "acessar o SGBD de maneira uniforme" — pelo contrário, são disparadas pelo próprio banco, sem intervenção da aplicação. O enunciado descreve um objeto que a aplicação invoca explicitamente, o que não é o caso da trigger.

Alternativa B — ✅ Correta ⟵ GABARITO

Stored Procedures (procedimentos armazenados) são exatamente o que o texto descreve: utilizam programação modular, encapsulam conjuntos de operações sobre os dados, escondem alterações no SGBD da aplicação e permitem acesso uniforme. A aplicação chama o procedimento pelo nome, e o SGBD executa a lógica interna — se algo mudar no banco, só o procedimento é atualizado, e todas as aplicações continuam funcionando sem alteração.

Alternativa C — ❌ Incorreta

Transactions (transações) são unidades lógicas de trabalho compostas por uma ou mais operações de leitura/escrita, que devem ser executadas de forma atômica (tudo ou nada), garantindo consistência, isolamento e durabilidade. Elas não são objetos de programação modular que encapsulam operações de forma persistente, nem são chamadas pela aplicação como uma rotina — são um mecanismo de controle de concorrência e recuperação. O enunciado fala de "programação modular" e "encapsulam conjuntos de operações", o que não se aplica a transações.

Alternativa D — ❌ Incorreta

"ALTER FUNCTIONS" não é um conceito válido em banco de dados. O comando ALTER é usado para modificar a definição de objetos existentes (como ALTER TABLE, ALTER FUNCTION), mas "ALTER FUNCTIONS" como um tipo de objeto ou técnica de programação modular não existe. A banca incluiu essa opção apenas como distrator, misturando o comando SQL ALTER com o conceito de funções — que, aliás, são semelhantes a stored procedures, mas não são o que o enunciado descreve.

Alternativa E — ❌ Incorreta

"SETs" não é um conceito de programação modular em banco de dados. O comando SET é usado em SQL para atribuir valores (ex.: SET @var = 1) ou em operações de conjunto (UNION, INTERSECT, EXCEPT), mas não encapsula operações sobre dados nem é chamado pela aplicação como uma rotina. É um distrator sem relação com o enunciado.

Gabarito: letra BStored Procedures são a única alternativa que corresponde à descrição de programação modular, encapsulamento de operações e acesso uniforme ao SGBD.

Link permanente: /questoes/qg078047