Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2026

Banco de DadosSQL
Código
fg127345
Banca
FGV
Órgão
AL-RO
Ano
2026
Nível
Superior
Cargo
Analista Legislativo (Tecnologia da Informação - Banco de Dados)
Um DBA precisa criar uma função para ser usada em uma consulta SQL que retorna o nome completo de um funcionário a partir de seu ID. Para otimizar a consulta e permitir que o SGBD armazene em cache os resultados da função, ele deve declará-la como determinística.Assinale a opção que define uma Função Determinística em um SGBD.
  1. AUma função que não pode ser executada em paralelo e só pode ser chamada por Stored Procedures.
  2. BUma função que sempre retorna o mesmo resultado quando chamada com o mesmo conjunto de valores de entrada, independentemente do estado do banco de dados no momento da execução.
  3. CUma função que realiza operações de I/O, sendo forçada a ser recalculada a cada chamada mesmo considerando o mesmo conjunto de valores de entrada.
  4. DUma função que utiliza valores aleatórios ou o relógio do sistema, impedindo o caching dos resultados tendo por base valores de entrada diferentes.
  5. EUma função que possui lógica de COMMIT e ROLLBACK embutida.
Revelar gabarito e comentário

GabaritoB — Uma função que sempre retorna o mesmo resultado quando chamada com o mesmo conjunto de valores de entrada, independentemente do estado do banco de dados no momento da execução.

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”.

Funções Determinísticas em SQL

Gabarito: letra B. Uma função determinística é aquela que, para um mesmo conjunto de parâmetros de entrada, sempre produz o mesmo resultado, independentemente do estado do banco de dados ou de fatores externos. Essa característica permite que o SGBD armazene em cache o resultado da função, otimizando consultas repetitivas.

Análise das alternativas

Característica

Função Determinística (Gabarito B)

Alternativa A

Alternativa C

Alternativa D

Alternativa E

Definição central

Sempre retorna o mesmo resultado para os mesmos parâmetros de entrada, independentemente do estado do banco de dados.

Não pode ser executada em paralelo e só pode ser chamada por Stored Procedures.

Realiza operações de I/O, sendo recalculada a cada chamada.

Utiliza valores aleatórios ou relógio do sistema.

Possui lógica de COMMIT e ROLLBACK embutida.

Comportamento com mesmos parâmetros

Resultado idêntico e previsível.

Não definido pela alternativa.

Resultado pode variar (não determinístico).

Resultado varia (não determinístico).

Não definido pela alternativa.

Permite cache pelo SGBD?

Sim, devido à previsibilidade.

Não mencionado; a restrição de paralelismo não impede cache.

Não, pois o resultado é imprevisível.

Não, pois o resultado é imprevisível.

Não, pois transações internas impedem cache.

Uso em consultas SQL

Pode ser chamada diretamente em consultas.

Restrito a Stored Procedures (incorreto).

Pode ser chamada, mas sem otimização.

Pode ser chamada, mas sem otimização.

Geralmente não é permitido em funções.

Exemplo de aplicação

fn_nome_funcionario(id) sempre retorna o mesmo nome para o mesmo ID.

N/A (definição incorreta).

fn_ler_arquivo(caminho) pode variar.

fn_aleatorio() retorna valores diferentes.

fn_transacao() com controle transacional.

1Definição
Mesmo resultado para mesmos parâmetros
Independente do estado do banco
Permite cache pelo SGBD
2Características
Sem I/O externo
Sem aleatoriedade
Sem relógio do sistema
Sem transações (COMMIT/ROLLBACK)
3Uso
Chamada em consultas SQL
Pode ser executada em paralelo
Função determinística
LEVELsoulevel.com.br
Função determinística: Definição (Mesmo resultado para mesmos parâmetros, Independente do estado do banco, Permite cache pelo SGBD); Características (Sem I/O externo, Sem aleatoriedade, Sem relógio do sistema, Sem transações (COMMIT/ROLLBACK)); Uso (Chamada em consultas SQL, Pode ser executada em paralelo)

Alternativa A — ❌ Incorreta

Diz que uma função determinística "não pode ser executada em paralelo e só pode ser chamada por Stored Procedures". Isso é falso: funções determinísticas podem ser executadas em paralelo (dependendo da implementação) e podem ser chamadas diretamente em consultas SQL, não apenas por procedures. A definição não envolve paralelismo ou restrição de chamada.

Alternativa B — ✅ Correta ⟵ GABARITO

Afirma que uma função determinística "sempre retorna o mesmo resultado quando chamada com o mesmo conjunto de valores de entrada, independentemente do estado do banco de dados no momento da execução". Essa é exatamente a definição do conceito. O SGBD pode confiar nessa propriedade para cachear o resultado, melhorando a performance.

Alternativa C — ❌ Incorreta

Afirma que a função "realiza operações de I/O, sendo forçada a ser recalculada a cada chamada mesmo considerando o mesmo conjunto de valores de entrada". Uma função com I/O (como leitura de arquivos ou acesso a rede) é, por natureza, não determinística, pois seu resultado pode variar com o estado externo. Portanto, essa descrição se refere a uma função não determinística, não à determinística.

Alternativa D — ❌ Incorreta

Diz que a função "utiliza valores aleatórios ou o relógio do sistema, impedindo o caching dos resultados tendo por base valores de entrada diferentes". O uso de aleatoriedade ou tempo do sistema torna a função não determinística, pois o resultado varia mesmo com os mesmos parâmetros. A definição de função determinística exclui exatamente esse comportamento.

Alternativa E — ❌ Incorreta

Afirma que a função "possui lógica de COMMIT e ROLLBACK embutida". Funções em SQL geralmente não devem conter transações; isso é mais comum em stored procedures. A presença de COMMIT/ROLLBACK não é uma característica de determinismo, mas sim de controle transacional. Além disso, funções que alteram o estado do banco de dados (com side effects) não são consideradas determinísticas.

PEGA ESSA DICA!

Na prova, lembre-se do conceito: função determinística = mesmas entradas → mesma saída, permitindo caching. Funções não determinísticas usam random(), current_timestamp, ou dependem de dados que podem mudar. Questões sobre otimização de consultas frequentemente cobram essa distinção.

Gabarito: letra B.

Link permanente: /questoes/fg127345