← Todos os quizzes

Questões de Banco de Dados FGV: comentadas e grátis

Pratique questões de Banco de Dados da banca FGV, comentadas e de graça, para concursos públicos. Gabarito e explicação em cada questão.

10 questões comentadas · grátis

Questão 1

Considere um banco de dados que contém uma tabela com os atributos CPF, Nome, RG e Endereço, com milhões de registros. Sabe-se que cada pessoa tem seus próprios CPF e RG e um único nome, embora possa haver homônimos. Sendo assim, a dependência funcional que NÃO existe entre os atributos dessa tabela é:

  • A)CPF  Nome
  • B)CPF  RG
  • C)Endereço  CPF
  • D)RG  Endereço
  • E)RG  Nome
Ver gabarito e explicação

Resposta correta: C

Dependência funcional é, na prática, uma regra de “identificação”: se você conhece um atributo X, consegue determinar outro atributo Y. Aqui, o enunciado já entrega a pista principal: cada pessoa tem CPF e RG próprios e um único nome, embora possa haver homônimos. Isso significa que CPF identifica RG e Nome, e RG também identifica CPF e Nome, porque ambos são únicos para cada pessoa. Então, quando você vê uma alternativa do tipo “atributo A determina atributo B”, pergunte: se eu souber A, consigo achar B sem dúvida? Se a resposta for sim, a dependência existe. Como CPF é único, ele aponta para uma pessoa específica, e essa pessoa tem um único RG e um único nome. O mesmo raciocínio vale para o RG. A armadilha está no endereço. O enunciado não disse que o endereço é único, nem que uma pessoa tenha apenas um endereço para sempre. Na vida real, alguém pode morar no mesmo lugar que outra pessoa, mudar de casa, ter endereço comercial e residencial etc. Então não dá para afirmar que, sabendo o endereço, você descobre o CPF. Um endereço pode corresponder a várias pessoas, ou até mudar ao longo do tempo. Por isso, a alternativa C é a incorreta: Endereço -> CPF não existe. Em termos de banco de dados, CPF e RG são candidatos naturais a chave, enquanto endereço não tem essa garantia de unicidade. A ideia é bem clássica de teoria de dependências funcionais, muito cobrada pela FGV com raciocínio textual, sem precisar de formalismo pesado.

Questão 2

No âmbito do Oracle, analise o comando select xxxx.currval from dual Assinale a opção que identifica corretamente a natureza do objeto xxxx.

  • A)User.
  • B)Table.
  • C)Constraint.
  • D)Sequence.
  • E)Tablespace.
Ver gabarito e explicação

Resposta correta: D

No Oracle, a expressão "currval" aparece quando voce está lidando com uma sequence. Sequence é o objeto que gera valores numéricos automáticos, muito usado para chaves primárias. O detalhe importante é que "currval" retorna o valor atual da sequence na sessão, mas só depois de voce já ter usado "nextval" pelo menos uma vez. Antes disso, a sequence ainda não tem um valor corrente para aquela sessão, e o Oracle reclama. Na prática, o comando "select xxxx.currval from dual" mostra que "xxxx" precisa ser uma sequence, porque "currval" é uma pseudocoluna associada exclusivamente a esse tipo de objeto. A tabela DUAL entra só como apoio clássico do Oracle para consultas que retornam um único valor, quase um palco vazio para o número aparecer sozinho. Por isso, o gabarito é a letra D. Se o objeto fosse usuário, tabela, constraint ou tablespace, não faria sentido falar em currval, porque esse atributo não existe para esses objetos. Em prova, sempre que aparecer nextval ou currval, pense imediatamente em sequence.

Questão 3

No contexto do ambiente Android, considere as seguintes afirmativas a respeito do SQLite. I. Deve ser utilizado com o apoio de um servidor de bancos de dados separado. II. Suporta transações (ACID). III. Sua instalação requer cuidados, haja vista o número de arquivos que devem ser preparados. Está correto o que se afirma em:

  • A)somente I;
  • B)somente II;
  • C)somente III;
  • D)somente I e III;
  • E)I, II e III.
Ver gabarito e explicação

Resposta correta: B

O SQLite é um banco de dados leve e embarcado, muito usado no Android para armazenamento local. A ideia dele é justamente o contrário de um SGBD cliente-servidor: ele não depende de um servidor separado, porque funciona dentro do próprio aplicativo ou do sistema, guardando os dados em um arquivo local. É aquele banco que gosta de simplicidade e não faz drama com infraestrutura. Na prática, isso já derruba a afirmativa I, porque o SQLite não precisa de servidor de banco de dados dedicado. Ele foi pensado para ser pequeno, autônomo e fácil de integrar, o que combina bem com dispositivos móveis. Também por isso a afirmativa III está errada: a instalação não exige uma preparação complexa com vários arquivos, mas costuma ser bastante simples, normalmente já embutida no ambiente ou na aplicação. A afirmativa II está correta: o SQLite suporta transações e segue as propriedades ACID, o que garante consistência e confiabilidade nas operações. Esse é um ponto clássico cobrado em prova, porque muita gente associa banco pequeno com banco 'fraco', mas isso não é verdade. Pequeno no tamanho não significa pobre em recursos. Então, o gabarito é a letra B, pois somente a afirmativa II está correta. Em resumo: SQLite no Android é local, leve, sem servidor separado, com suporte a transações ACID.

Questão 4

No contexto da implementação de bancos de dados, o acrônimo ACID denota o conjunto de propriedades que devem ser observadas por sistemas transacionais. Essas quatro propriedades são:

  • A)Amorfabilidade, Concorrência, Integridade e Durabilidade;
  • B)Atomicidade, Consistência, Isolamento e Durabilidade;
  • C)Atualização, Coesão, Inserção e Deleção;
  • D)Auditabilidade, Conformidade, Independência e Distribuição;
  • E)Automação, Concorrência, Integridade e Distribuição.
Ver gabarito e explicação

Resposta correta: B

ACID é o pacote clássico de propriedades que faz uma transação ser confiável em banco de dados. Pense assim: quando você faz uma operação importante, o sistema precisa garantir que ela não fique pela metade, que respeite as regras do banco, que não se misture de forma indevida com outras operações e que, se der tudo certo, o resultado fique gravado. A letra A de ACID é Atomicidade: ou a transação acontece por inteiro, ou não acontece. Se uma etapa falha, o banco desfaz o que foi feito para não deixar o estado “meio atualizado”. A Consistência é a ideia de que a transação leva o banco de um estado válido para outro estado válido, preservando as regras e restrições definidas. O Isolamento significa que uma transação não deve atrapalhar indevidamente a outra, como se cada uma estivesse “sozinha” durante sua execução, mesmo havendo concorrência. Já a Durabilidade garante que, depois de confirmada, a alteração não desaparece com queda de energia, reinício do sistema ou susto do servidor. Por isso, o gabarito é a letra B, que traz exatamente Atomicidade, Consistência, Isolamento e Durabilidade. Essa é a definição doutrinária padrão em Banco de Dados e costuma aparecer em provas de forma direta, sem mistério e sem pegadinha sofisticada: ACID = A-C-I-D.

Questão 5

Considere o comando SQL a seguir, executado num banco de dados relacional com duas tabelas, R1 e R2, contendo 2.000 e 5.000 registros, respectivamente. R1 e R2 possuem chaves primárias definidas. SELECT DISTINCT * FROM A, B Assinale o número de linhas produzidas na execução.

  • A)1
  • B)2.000
  • C)5.000
  • D)7.000
  • E)10.000.000
Ver gabarito e explicação

Resposta correta: E

Aqui o ponto-chave é lembrar que, em SQL, escrever `FROM A, B` sem condição de junção gera uma junção cartesiana. Isso significa que cada linha de A combina com cada linha de B. Como A tem 2.000 registros e B tem 5.000, o resultado bruto tem 2.000 x 5.000 = 10.000.000 linhas. O `DISTINCT` não muda esse total neste caso, porque ele elimina linhas repetidas, e aqui cada combinação entre uma linha de A e uma de B é diferente. Como as tabelas têm chaves primárias, cada registro é identificável de forma única, então não há duplicação a ser removida entre as combinações formadas. Em outras palavras: primeiro vem o produto cartesiano, depois o `DISTINCT` tenta limpar duplicatas. Só que não tem duplicata para limpar. Por isso o resultado continua com 10 milhões de linhas. Esse é um clássico de prova da FGV: ela adora testar se você enxerga que vírgula no `FROM` é junção cartesiana e que `DISTINCT` não faz mágica, só remove repetidos. Resultado final: 10.000.000 linhas.

Questão 6

Num ambiente Oracle, considere o acionamento de um utilitário por meio do prompt de comando, como exibido a seguir. % rman RMAN> CONNECT TARGET SYS@prod É correto afirmar que o comando disparado refere-se ao(s):

  • A)acesso aos manuais de utilização do Oracle;
  • B)monitoramento da performance em tempo real;
  • C)critérios para criação de índices para bancos de dados;
  • D)mecanismos para criação de backups e recuperação de bancos de dados;
  • E)procedimentos e facilidades para uso/acesso remoto.
Ver gabarito e explicação

Resposta correta: D

O comando mostrado, ao iniciar o utilitário RMAN e conectar ao banco com CONNECT TARGET, aponta para o Oracle Recovery Manager, ferramenta nativa do Oracle voltada a backup e recuperação. Em prova, sempre que aparecer "rman", pense primeiro em cópia de segurança, restauração e recuperação de dados. É aquele recurso que entra em cena quando o banco precisa se proteger de falhas ou voltar no tempo sem drama desnecessário. O RMAN permite automatizar backups, validar cópias, restaurar arquivos e recuperar o banco após incidentes. Ele conversa diretamente com o banco de dados de destino, por isso o comando CONNECT TARGET SYS@prod faz sentido dentro desse contexto: você está ligando a ferramenta de recuperação ao banco que será administrado. Por isso, o gabarito está na letra D. A banca quer que você associe o utilitário ao seu uso clássico: mecanismos para criação de backups e recuperação de bancos de dados. Não é ferramenta de consulta de manuais, nem de performance, nem de indexação, muito menos de acesso remoto. Aqui, o nome já entrega a pista: Recovery Manager. Em termos doutrinários e práticos, o RMAN é um componente essencial da estratégia de alta disponibilidade e continuidade do ambiente Oracle. Em concurso, o atalho mental é simples: RMAN = backup + restore + recover.

Questão 7

Com referência ao MySQL 5.7, assinale o tipo de tabela (storage engine) que suporta transações seguras.

  • A)HEAP
  • B)InnoDB
  • C)MEMORY
  • D)MERGE
  • E)MyISAM
Ver gabarito e explicação

Resposta correta: B

No MySQL 5.7, a pergunta quer saber qual storage engine suporta transações seguras, isto é, com recursos como COMMIT, ROLLBACK e controle de consistência. Em linguagem de prova, isso aponta para uma engine transacional, não para uma engine voltada só para desempenho ou simplicidade. A campeã desse assunto é a InnoDB. Ela é a engine padrão do MySQL e foi projetada para oferecer suporte a transações seguras, além de bloqueio em nível de linha e recuperação após falhas. Na prática, é a escolha clássica quando a questão fala em integridade e confiabilidade. As demais alternativas não entram nessa festa das transações. HEAP e MEMORY são voltadas a tabelas em memória, com foco em velocidade e volatilidade, enquanto MERGE apenas combina tabelas MyISAM. MyISAM, por sua vez, é conhecida por não oferecer suporte a transações nem a chaves estrangeiras. Então, o gabarito B está correto porque InnoDB é a storage engine do MySQL 5.7 que suporta transações seguras. Em concursos, sempre que aparecer esse tipo de enunciado, pense primeiro em InnoDB: é o nome que a banca adora cobrar quando quer testar o básico bem cobrado.

Questão 8

Com referência ao MongoDB, nas consultas usando o método find é possível exibir o resultado formatado por meio do método:

  • A)format;
  • B)organize;
  • C)pretty;
  • D)structure;
  • E)tidy.
Ver gabarito e explicação

Resposta correta: C

No MongoDB, o método find() é usado para consultar documentos de uma coleção. Quando a consulta retorna muitos registros, você pode querer ver o resultado de forma mais legível no shell, e aí entra o método pretty(). Ele formata a saída em um layout mais organizado, facilitando a leitura dos campos de cada documento. A lógica é simples: find() localiza os documentos, e pretty() melhora a apresentação visual do resultado. É uma função típica do MongoDB Shell, muito cobrada em prova porque a banca gosta de testar nomes de métodos parecidos, mas inventados. Aqui não tem segredo de teoria profunda, é quase uma questão de “qual nome o banco realmente usa?”. Por isso, o gabarito é a letra C. O método correto para exibir o resultado formatado é pretty(), e as outras alternativas trazem nomes que não correspondem ao comando do MongoDB nessa situação. Em concurso, esse tipo de questão costuma cobrar a terminologia exata da ferramenta, então vale memorizar o nome literal do método.

Questão 9

Na teoria de projetos de bancos de dados, o processo de normalização de uma tabela é feito a partir da identificação

  • A)das chaves estrangeiras.
  • B)das dependências funcionais.
  • C)das junções que serão necessárias.
  • D)dos tipos de dados em cada coluna.
  • E)dos relacionamentos entre as tabelas.
Ver gabarito e explicação

Resposta correta: B

Normalização é o processo usado para organizar uma tabela de forma mais eficiente, reduzindo redundância e evitando anomalias de inserção, atualização e exclusão. Em vez de começar olhando para chaves estrangeiras, tipos de dados ou mesmo para “desenhar joins”, você começa entendendo como os atributos dependem uns dos outros dentro da relação. A ideia central é identificar as dependências funcionais: isto é, descobrir quais colunas determinam outras colunas. A partir daí, você separa os dados em tabelas menores e bem estruturadas, seguindo as formas normais. É como arrumar a casa antes de receber visita: você não muda os móveis ao acaso, você organiza com critério. Por isso o gabarito é a alternativa B. A normalização, na teoria de projeto de bancos de dados, nasce justamente da análise das dependências funcionais, que orientam a decomposição das tabelas. Essa é a base doutrinária clássica do tema em modelagem relacional. Se a banca FGV falar em normalização, desconfie das opções que tratam de implementação física ou de detalhes de consulta. Normalização é lógica e estrutural, não é um ajuste de SQL, nem de tipos de coluna, nem uma caça a joins.

Questão 10

O padrão que define um conjunto de interfaces para acesso a gerenciadores de bancos de dados, e similares, a partir de linguagens de programação, é conhecido pela sigla

  • A)DBA.
  • B)ODBC.
  • C)REST.
  • D)SOA.
  • E)UDBC.
Ver gabarito e explicação

Resposta correta: B

A questão trata do padrão usado para conectar programas a sistemas de banco de dados por meio de interfaces bem definidas. Em outras palavras, é o “meio de campo” que permite que uma linguagem de programação converse com diferentes SGBDs sem precisar reinventar a roda toda hora. Isso é muito comum quando se quer portabilidade e integração entre aplicações e bases distintas. O gabarito é a letra B, porque ODBC significa Open Database Connectivity. Ele é justamente um padrão de acesso a bancos de dados, criado para que aplicações possam se comunicar com gerenciadores de banco de dados por meio de drivers e uma interface comum. Na prática, isso ajuda a padronizar a conexão e a execução de consultas. As outras alternativas tentam confundir com siglas famosas de TI, mas não têm essa função específica. DBA é administrador de banco de dados, REST é estilo arquitetural para serviços web, SOA é arquitetura orientada a serviços, e UDBC nem é a sigla consagrada nesse contexto. A banca costuma cobrar essas siglas para ver se você reconhece o nome “bonito” da tecnologia sem sair do conceito central. Então, memorize a ideia-chave: se a pergunta fala em padrão de interfaces para acesso a bancos de dados a partir de linguagens de programação, pense em ODBC. É uma definição clássica de prova, direta e sem firula.

Perguntas frequentes

Este quiz de Banco de Dados FGV é gratuito?

Sim. As 10 questões são gratuitas, com gabarito e microaula (explicação) em cada uma.

As questões de Banco de Dados FGV são reais de concurso?

Sim. São questões reais de concursos públicos e da OAB, da banca FGV, selecionadas do acervo do furafila.

Como treinar mais questões de Banco de Dados FGV?

Crie sua conta grátis no furafila e pratique milhares de questões da FGV com XP, ranking, batalhas e microaula em cada erro.

A FGV é uma banca difícil?

É considerada uma das mais exigentes pela combinação de enunciados longos, foco em interpretação e pegadinhas finas. A dificuldade está menos no conteúdo cru e mais na leitura atenta e na resistência ao longo de uma prova extensa.

Como são as questões da FGV?

Em geral múltipla escolha com cinco alternativas, em forma de caso prático, com textos longos e alternativas igualmente detalhadas. Muitas cobram inferência, ou seja, informação implícita que exige raciocínio. Vários concursos têm também fase discursiva com limite de linhas.

Qual a melhor forma de estudar pra banca FGV?

Resolver muitas questões da própria FGV, cronometrando, lendo o enunciado inteiro antes das alternativas e revisando os erros por causa (interpretação, pegadinha ou conteúdo). O treino precisa imitar o formato real da prova.

Continue estudando