Questão nº 49
Questão de Tecnologia da Informação · FGV TCE-TO 2022 (nº 49)
No contexto da Teoria de Projeto de bancos de dados relacionais, analise o script de criação de uma tabela.
CREATE TABLE T(A int not null UNIQUE,
B int not null UNIQUE,
C int)
Considere ainda as seguintes dependências funcionais acerca dos atributos A, B e C.
A → B
B → A
A → C
B → C
As dependências necessárias para que o esquema relacional acima esteja normalizado até a Forma Normal Boyce-Codd são:
- Atodas, exceto a primeira;
- Btodas, exceto a segunda;
- Ctodas, exceto a terceira;
- Dtodas, exceto a quarta;
- Etodas. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Boyce-Codd Normal Form (BCNF) é uma forma de normalização de banco de dados que exige que, para toda dependência funcional (DF) não trivial X → Y, o lado esquerdo (X) seja uma superchave da tabela. Uma superchave é um conjunto de atributos que identifica unicamente cada linha da tabela.
No script CREATE TABLE T(A int not null UNIQUE, B int not null UNIQUE, C int), as cláusulas UNIQUE indicam que A é uma chave candidata e B também é uma chave candidata. Como chaves candidatas são superchaves por definição, tanto A quanto B são superchaves.
Para que a tabela esteja em BCNF, é necessário que todas as dependências funcionais que a descrevem satisfaçam a condição de BCNF (ou seja, o lado esquerdo de cada DF deve ser uma superchave).
Vamos analisar as DFs fornecidas:
- A → B: O lado esquerdo (A) é uma superchave. Esta DF satisfaz BCNF.
- B → A: O lado esquerdo (B) é uma superchave. Esta DF satisfaz BCNF.
- A → C: O lado esquerdo (A) é uma superchave. Esta DF satisfaz BCNF.
- B → C: O lado esquerdo (B) é uma superchave. Esta DF satisfaz BCNF.
Como todas as DFs listadas já possuem uma superchave no lado esquerdo devido às restrições UNIQUE da tabela, todas elas satisfazem a condição de BCNF. Para que o esquema esteja em BCNF, é necessário que cada uma dessas DFs que existem no esquema esteja em conformidade com a definição de BCNF. Se qualquer uma delas não estivesse, o esquema não estaria em BCNF.
(A) Incorreta: Se a primeira DF (A → B) existisse e A não fosse uma superchave, a tabela não estaria em BCNF. Portanto, é necessário que A → B satisfaça a condição de BCNF.
(B) Incorreta: Se a segunda DF (B → A) existisse e B não fosse uma superchave, a tabela não estaria em BCNF. Portanto, é necessário que B → A satisfaça a condição de BCNF.
(C) Incorreta: Se a terceira DF (A → C) existisse e A não fosse uma superchave, a tabela não estaria em BCNF. Portanto, é necessário que A → C satisfaça a condição de BCNF.
(D) Incorreta: Se a quarta DF (B → C) existisse e B não fosse uma superchave, a tabela não estaria em BCNF. Portanto, é necessário que B → C satisfaça a condição de BCNF.
(E) Correta: Para que o esquema relacional esteja normalizado até a Forma Normal Boyce-Codd, é necessário que todas as dependências funcionais que o descrevem (neste caso, as quatro listadas) satisfaçam a condição de BCNF, ou seja, que seus lados esquerdos sejam superchaves. Como A e B são superchaves (devido às restrições UNIQUE), todas as DFs fornecidas já cumprem esse requisito. A armadilha aqui seria pensar que "necessário" se refere a um subconjunto mínimo de DFs ou a DFs "não redundantes", mas para BCNF, cada DF existente deve ter uma superchave no lado esquerdo.
Fonte: FGV TCE-TO 2022 Analista Técnico - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.