Analise as seguintes dependências funcionais: a ...
Analise as seguintes dependências funcionais:
a → b
b → a
Considerando-se que a constraint UQ estabelece o que é
equivalente a uma chave candidata, assinale a opção que
apresenta um esquema relacional normalizado até a FNBC à luz
das dependências mostradas.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - create table R ( a int not null, b int not null, constraint PK primary key (a) , constraint UQ unique (b) )
Para abordar esse tema, é necessário compreender o conceito de Formas Normais no contexto de bancos de dados relacionais. As formas normais são regras para a organização de tabelas de modo a reduzir redundâncias e evitar problemas como anomalias de inserção, atualização e exclusão. A questão trata especificamente da Terceira Forma Normal (3FN ou FNBC), onde uma tabela está na 3FN se estiver na Segunda Forma Normal (2FN) e todos os atributos não-chave forem mutuamente independentes, isto é, cada atributo não-chave deve depender apenas da chave primária.
As dependências funcionais apresentadas na questão são:
a → b
: o atributob
é funcionalmente dependente dea
.b → a
: o atributoa
é funcionalmente dependente deb
.
Essas dependências indicam que a
e b
são mutuamente dependentes, o que implica que qualquer um deles pode ser considerado uma chave candidata, já que um determina unicamente o outro. Portanto, para satisfazer a 3FN, devemos garantir que a tabela tenha apenas uma chave primária e que os atributos sejam independentes entre si.
A alternativa C é a correta porque define a
como chave primária (PK
) e b
como uma chave única (UQ
). Ao fazer isso, estabelece-se que tanto a
quanto b
são capazes de identificar unicamente um registro na tabela, sem redundâncias ou dependências funcionais transitivas que violariam a 3FN. A construção constraint UQ unique (b)
impede que haja mais de um registro com o mesmo valor para b
, o que, junto com a
sendo a chave primária, assegura que a tabela esteja normalizada até a FNBC.
As outras alternativas falham em respeitar as dependências funcionais ou em satisfazer as condições para a 3FN:
- A alternativa A define apenas
a
como chave primária, ignorando queb
também poderia ser uma chave candidata. - A alternativa B faz o inverso, considerando apenas
b
como chave primária. - A alternativa D não define nenhuma chave primária, o que é necessário para estabelecer uma tabela normalizada.
- A alternativa E define uma chave primária composta por
a
eb
, o que seria redundante dado que cada um pode, individualmente, funcionar como chave.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Alguem poderia explicar a diferença entre a letra B e a letra E?
Acredito que se a coluna B tem valor único, ela consegue identificar unicamente cada tupla da tabela, sendo portante uma chave candidata. a FNBC institui que todo determinante deve ser chave candidata, não sendo necessário portanto que B seja uma chave primária para que a relação atenda a regra dessa forma normal.
Lembre-se que a chave primária deve ser constituída pelo menor conjunto de atributos possível.
As instâncias "a" e 'b" são chaves candidatas, "a" foi escolhida para ser chave primária e "b" chave alternada, logo, esse esquema está na forma normal FNBC, pois ambos os determinantes podem ser chaves candidatas.
At.te
Foco na missão ❢
FNBC, todo determinante deve ser chave candidata.
Quem pode ser chave, quem é "not null" e "unique".
create table R (
a int not null,
b int not null,
constraint PK primary key (a) ,
constraint UQ unique (b) )
Gab. C.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo