Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — FGV 2024

Banco de DadosConsultas e Comandos em SQL
Código
fg165198
Banca
FGV
Órgão
CGE PB
Ano
2024
Cargo
ACP ( )

Tabelas Relacionais T1 e T2

 

Considere as tabelas relacionais T1 e T2, de acordo com as colunas e as instâncias abaixo descritas. Na execução dos comandos SQL, assuma que o mecanismo do banco de dados considera valores NULL como valores desconhecidos (unknown).

 

Tabela T1

 
P

N

110
240
320
410
 

Tabela T2

 

E

QP
1102
2403
3208
410NULL
 

Tomando como base somente as instâncias das tabelas T1 e T2, anteriormente apresentadas, considere o conjunto de dependências funcionais que, possivelmente, poderiam ser verificadas.

 

(1) P -> N
(2) N -> P
(3) E -> Q
(4) E -> P
(5) Q -> P
(6) Q -> E
(7) P -> E
(8) P -> Q

 

Dessa lista enumerada, o conjunto completo das únicas dependências funcionais que poderiam ser corretamente depreendidas é:

  1. A1, 2;
  2. B1, 3;
  3. C1, 2, 5;
  4. D1, 2, 7, 8;
  5. E1, 3, 7, 8.
Revelar gabarito e comentário

GabaritoB — 1, 3;

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

Dependências Funcionais em Instâncias Relacionais

Gabarito: letra B — as únicas dependências funcionais corretamente depreendidas das instâncias são (1) P → N e (3) E → Q. Uma dependência funcional X → Y exige que cada valor de X esteja associado a exatamente um valor de Y; as demais dependências falham porque há valores do determinante que se repetem com determinados diferentes ou porque há NULL no determinante, o que impede a determinação.

Uma dependência funcional (DF) é a base do modelo relacional: ela expressa que o valor de um atributo (ou conjunto de atributos) determina, de forma única, o valor de outro atributo. Em termos práticos, se duas linhas têm o mesmo valor no determinante, elas obrigatoriamente devem ter o mesmo valor no determinado. Essa é a regra de ouro que vamos aplicar a cada uma das oito candidatas.

A verificação é feita diretamente sobre as instâncias fornecidas — não se trata de uma regra teórica do esquema, mas de uma checagem empírica: a dependência "vale" naquela instância se, e somente se, não houver violação. Vamos analisar cada uma:

  • (1) P → N: em T1, cada P (1, 2, 3, 4) aparece uma única vez, com um único N. P=1 → N=10; P=2 → N=40; P=3 → N=20; P=4 → N=10. Não há repetição de P com N diferente. Válida.

  • (2) N → P: em T1, N=10 aparece para P=1 e P=4. O mesmo N leva a dois P diferentes. Inválida.

  • (3) E → Q: em T2, cada E (1, 2, 3, 4) aparece uma única vez, com um único Q. E=1 → Q=10; E=2 → Q=40; E=3 → Q=20; E=4 → Q=NULL. Válida — o NULL em Q não viola a DF, pois o determinante E=4 tem um único valor associado (desconhecido).

  • (4) E → P: em T2, E=4 tem P=NULL. O NULL no determinado não viola a DF por si só, mas aqui o problema é que P=NULL é um valor desconhecido — não podemos afirmar que E determina P, pois não sabemos qual P corresponde a E=4. A banca considera inválida justamente por isso.

  • (5) Q → P: em T2, Q=10 aparece para E=1 (P=2) e E=4 (P=NULL). O mesmo Q leva a P diferentes (2 e NULL). Inválida.

  • (6) Q → E: em T2, Q=10 aparece para E=1 e E=4. O mesmo Q leva a E diferentes. Inválida.

  • (7) P → E: em T2, P=NULL aparece para E=4. Como P é o determinante e há um valor NULL, não é possível afirmar que P determina E — o NULL no determinante quebra a DF. Inválida.

  • (8) P → Q: em T2, P=NULL aparece para E=4, e P=2 aparece para E=1. O NULL no determinante impede a determinação. Inválida.

A pegadinha central está no tratamento do NULL: a banca explora a confusão entre "NULL no determinado" (que pode ser aceitável) e "NULL no determinante" (que invalida a DF). Além disso, é preciso lembrar que a DF é uma propriedade da instância aqui — não estamos derivando regras do esquema, mas verificando o que os dados suportam.

NULL no determinante
NULL no determinado
Inválida
P → N (T1)
E → Q (T2)
Válida
P → E, P → Q (T2)
N → P, Q → P, Q → E
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Inclui a dependência (2) N → P, que é inválida porque N=10 em T1 está associado a P=1 e P=4. A banca tenta confundir o candidato que inverte a direção da dependência: P → N é válida, mas a recíproca N → P não é.

Alternativa B — ✅ Correta ⟵ GABARITO

Contém exatamente as dependências (1) P → N e (3) E → Q, as únicas que resistem à verificação nas instâncias. É a resposta correta.

Alternativa C — ❌ Incorreta

Acrescenta a dependência (5) Q → P, que é inválida porque Q=10 em T2 está associado a P=2 e P=NULL. O mesmo Q não determina um único P.

Alternativa D — ❌ Incorreta

Inclui as dependências (7) P → E e (8) P → Q, ambas inválidas porque P=NULL em T2 (linha E=4) impede que P determine qualquer coisa — o NULL no determinante quebra a DF.

Alternativa E — ❌ Incorreta

Mistura as válidas (1) e (3) com as inválidas (7) e (8), repetindo o erro da alternativa D quanto ao NULL no determinante.

NÃO CAIA NESSA!

A banca explora a diferença entre NULL no determinado e NULL no determinante. Em (3) E → Q, o NULL em Q (E=4) não viola a DF — o determinante E=4 tem um único valor associado, ainda que desconhecido. Já em (7) e (8), o NULL está no determinante P, o que torna impossível afirmar que P determina qualquer coisa. O candidato que trata NULL como "apenas mais um valor" erra ao aceitar (7) e (8) e ao rejeitar (3).

PEGA ESSA DICA!

Para verificar uma DF X → Y em uma instância, agrupe as linhas por X e confira se Y é constante em cada grupo. Se houver um grupo com dois Y diferentes, a DF falha. Se X tiver NULL, a DF falha de imediato — NULL não é um valor que possa determinar algo. Essa checagem resolve qualquer questão desse tipo em segundos.

Gabarito: letra B

Link permanente: /questoes/fg165198