Questão nº 47
Questão de Banco de Dados e Gestão da Informação · FGV SEFAZ-AM 2022 - Prova I (nº 47)
Considere uma tabela T de um banco de dados relacional formada pelas colunas A, B, C e D.
Sabe-se que as dependências funcionais
A → B
C → A
C → D
D → C
se verificam para qualquer instância de T.
Assinale a declaração de constraints do tipo UNIQUE que deve ser empregada na criação da tabela T de modo que o esquema relacional atenda aos requisitos da Forma Normal Boyce-Codd.
- ACONSTRAINT ... UNIQUE (A, C)
- BCONSTRAINT ... UNIQUE (A, C, D)
- CCONSTRAINT ... UNIQUE (A, D)
- DCONSTRAINT ... UNIQUE (C)
CONSTRAINT ... UNIQUE (D) - ECONSTRAINT ... UNIQUE (A)
CONSTRAINT ... UNIQUE (C).
CONSTRAINT ... UNIQUE (D). (alternativa correta)
Resposta comentada
Gabarito Alternativa E
A Forma Normal Boyce-Codd (BCNF) exige que, para cada dependência funcional (uma regra que diz que o valor de uma coluna determina o valor de outra) X → Y, o lado esquerdo (X) seja uma superchave (um conjunto de colunas que identifica unicamente cada linha da tabela). As UNIQUE constraints são usadas para declarar superchaves.
- (A) Incorreta: Se apenas (A, C) for única, A, C e D individualmente não são superchaves. Assim, as dependências A → B, C → A, C → D e D → C violariam a BCNF, pois seus determinantes (A, C, D) não seriam superchaves.
- (B) Incorreta: Se apenas (A, C, D) for única, A, C e D individualmente não são superchaves. Assim, as dependências A → B, C → A, C → D e D → C violariam a BCNF, pois seus determinantes (A, C, D) não seriam superchaves.
- (C) Incorreta: Se apenas (A, D) for única, A, C e D individualmente não são superchaves. Assim, as dependências A → B, C → A, C → D e D → C violariam a BCNF, pois seus determinantes (A, C, D) não seriam superchaves.
- (D) Incorreta: Esta é a alternativa mais tentadora. Se C e D forem declaradas
UNIQUE, elas se tornam superchaves. Isso satisfaz as dependências C → A, C → D e D → C. No entanto, a dependência A → B ainda violaria a BCNF, pois A não é uma superchave (o fecho de A é apenas {A, B}, não todos os atributos). Para que A → B esteja em BCNF, A também precisa ser uma superchave. - (E) Correta: Para que o esquema relacional atenda à BCNF, o lado esquerdo de cada dependência funcional deve ser uma superchave. As dependências são A → B, C → A, C → D e D → C. Isso significa que A, C e D devem ser superchaves. Declarar
UNIQUE (A),UNIQUE (C)eUNIQUE (D)garante que A, C e D são superchaves, satisfazendo a condição da BCNF para todas as dependências funcionais fornecidas.
Fonte: FGV SEFAZ-AM 2022 - Prova I Analista de Tecnologia da Informação da Fazenda Estadual (Caderno Tipo 1). Reproduzida para fins de estudo.