No contexto do projeto de bancos de dados relacionais, cons...

Próximas questões
Com base no mesmo assunto
Q2287679 Banco de Dados
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 -> B A -> C B -> A B -> D

Assinale o conjunto de constraints que devem ser aplicadas à tabela referida, de modo que a mesma atenda plenamente às formas normais.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - CONSTRAINT XPTO1 UNIQUE (A) CONSTRAINT XPTO2 UNIQUE (B)

Neste contexto, o aluno deve dominar os conceitos de dependências funcionais e de normalização de bancos de dados relacionais. As dependências funcionais informadas ("A -> B", "A -> C", "B -> A", "B -> D") indicam quais colunas são determinadas unicamente por outras colunas. Para que uma tabela esteja bem normalizada, ou seja, atenda às formas normais, é necessário que as chaves identifiquem de maneira única os registros sem redundância ou dependências indesejadas.

As formas normais são regras que guiam a estruturação de tabelas de forma a minimizar redundâncias e dependências, evitando assim problemas com inconsistência, atualização, inserção e deleção de dados. A primeira forma normal (1NF) exige que os valores nas tabelas sejam atômicos (sem grupos repetitivos ou arrays). A segunda forma normal (2NF) requer que a tabela esteja na 1NF e que todos os atributos não-chave dependam integralmente de uma chave candidata. A terceira forma normal (3NF) exige que a tabela esteja na 2NF e que não existam dependências funcionais transitivas de atributos não-chave em relação a qualquer chave candidata.

Com base nas dependências funcionais fornecidas, percebe-se que tanto "A" quanto "B" podem funcionar como chaves para os outros atributos, indicando uma relação de interdependência. Por "A" determinar "B" e "C" e "B" determinar "A" e "D", cada um desses atributos ("A" e "B"), por si só, é suficiente para identificar um registro único na tabela. Portanto, para atender às formas normais, basta definir restrições de unicidade (UNIQUE) tanto para "A" quanto para "B".

Isso é feito na alternativa correta através da criação de duas constraints de unicidade, o que impõe que os valores de "A" e "B" sejam únicos em todo o conjunto de registros da tabela. Dessa forma, se um novo registro tentar inserir um valor de "A" ou "B" já existente, isso violaria a constraint e o sistema de gerenciamento de banco de dados (SGBD) rejeitaria essa inserção, garantindo a integridade dos dados conforme as dependências funcionais declaradas.

Esta é a configuração que mais apropriadamente reflete as dependências funcionais e assegura que a tabela esteja de acordo com as formas normais requeridas, explicando assim por que a alternativa C está correta.

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

A dependência funcional X -> Y significa que, se t1[X] = t2[X], então t1[Y] = t2[Y], onde t1 e t2 são duas tuplas com os atributos X e Y, Ou seja, se o valor de X em uma tupla for o mesmo que em outra tupla, então o valor de Y em ambas as duplas deverá ser igual.

Na relação apresentada, o atributo A determina funcionalmente B, C e D (transitivamente, porque A -> B e B -> D). Por sua vez, o atributo B determina funcionalmente A, C (transitivamente, porque B -> A e A -> C) e D.

Vamos considerar um exemplo:

Exemplo 1 - A = {1, 1, 2, 3, 3, 2, 4}, B = {João, João, Maria, José, José, Maria, Ana}, C = {Triângulo, Triângulo, Quadrado, Triângulo, Triângulo, Quadrado, Triângulo} e D = {Prego, Prego, Parafuso, Prego, Prego, Parafuso, Parafuso}

Observa-se um problema. A e B determinam os demais atributos, portanto poderiam ser a chave primária da relação. No entanto, eles se repetem. Para que elas possam ser chave primária, precisamos usar a restrição de valor único para ambos os atributos, conforme o exemplo abaixo:

Exemplo 2 - A = {1, 2, 3, 4}, B = {João, Maria, José, Ana}, C = {Triângulo, Quadrado, Triângulo, Triângulo} e D = {Prego, Parafuso e Prego, Parafuso}

Gabarito: C

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo