Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — FGV 2023

Banco de DadosBanco de Dados Relacionais
Código
fg068148
Banca
FGV
Órgão
SEDUC-SP
Ano
2023
Nível
Superior
Cargo
Professor de Ensino Fundamental e Médio (Educação Profissional) - Eixo 5 - Informação e Comunicação
No contexto do projeto de bancos de dados relacionais, considere uma tabela T composta pelas colunas “A”, ”B”, “C” e “D”. Verificam-se para essa tabela as dependências funcionais a seguir.A -> BA -> CB -> AB -> DAssinale o conjunto de constraints que devem ser aplicadas à tabela referida, de modo que a mesma atenda plenamente às formas normais.
  1. ACONSTRAINT XPTO UNIQUE (A, B)
  2. BCONSTRAINT XPTO UNIQUE (A, B, C, D)
  3. CCONSTRAINT XPTO1 UNIQUE (A)CONSTRAINT XPTO2 UNIQUE (B)
  4. DCONSTRAINT XPTO1 UNIQUE (A, B, C)CONSTRAINT XPTO2 UNIQUE (A, B, C)
  5. ECONSTRAINT XPTO1 UNIQUE (A, C)CONSTRAINT XPTO2 UNIQUE (B, C)
Revelar gabarito e comentário

GabaritoC — CONSTRAINT XPTO1 UNIQUE (A) CONSTRAINT XPTO2 UNIQUE (B)

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 e chaves candidatas

Gabarito: letra C. Para que a tabela T atenda plenamente às formas normais (especialmente BCNF), é necessário que cada chave candidata seja declarada como UNIQUE. As dependências funcionais fornecidas (A→B, A→C, B→A, B→D) indicam que tanto A quanto B são chaves candidatas (cada um determina todos os demais atributos, direta ou transitivamente). Portanto, devem ser aplicadas duas constraints UNIQUE: uma sobre a coluna A e outra sobre a coluna B. A alternativa C é a única que apresenta exatamente essas duas restrições.

A banca testa o conceito de chave candidata a partir das dependências funcionais. Como A e B se determinam mutuamente, ambos são chaves, e a unicidade de cada um garante a integridade e a normalização.

erDiagram
    T {
        A PK
        B PK
        C
        D
    }
    T ||--o| T : "A determina B, C"
    T ||--o| T : "B determina A, D"

Alternativa A — ❌ Incorreta

UNIQUE (A, B) não garante que A seja único isoladamente; permite que um mesmo valor de A apareça com valores diferentes de B. Como A é chave candidata, cada valor de A deve ser único.

Alternativa B — ❌ Incorreta

UNIQUE (A, B, C, D) impõe unicidade sobre a tupla completa, mas não garante que A ou B sejam individualmente únicos. Além disso, é uma restrição excessiva: a chave não precisa ser composta por todas as colunas.

Alternativa C — ✅ Correta ⟵ GABARITO

UNIQUE (A) e UNIQUE (B) definem exatamente as chaves candidatas identificadas. Com isso, a tabela está em BCNF (toda dependência funcional é de uma superchave) e atende plenamente às formas normais.

Alternativa D — ❌ Incorreta

Duas constraints UNIQUE (A, B, C) idênticas são redundantes e, além disso, a chave não é composta por A, B e C. A unicidade de A e B individualmente não é garantida.

Alternativa E — ❌ Incorreta

UNIQUE (A, C) e UNIQUE (B, C) são combinações que não correspondem a chaves candidatas. Embora A e B sejam chaves, a presença de C na combinação é desnecessária e pode permitir repetições de A ou B (desde que combinados com C diferentes).

PEGA ESSA DICA!

Para resolver questões de normalização, identifique primeiro as chaves candidatas pelas dependências funcionais. Se um atributo ou conjunto determina todos os demais, ele é chave. Depois, verifique quais constraints UNIQUE são necessárias para garantir a unicidade dessas chaves. Neste caso, as DFs A→B e B→A mostram uma equivalência entre A e B, tornando ambos chaves simples.

Gabarito: letra C

Link permanente: /questoes/fg068148