← Questões de Banco de Dados

Banco de Dados · FGV · 2021

Questão comentada de Banco de Dados

Considere um projeto de banco de dados no qual há uma tabela T com colunas a, b, c, d. Sabe-se que, para essa tabela, são verificadas as seguintes dependências funcionais: a → b a → c a → d b → c c → a Com relação às restrições de integridade decorrentes do processo de normalização da tabela T, as constraints incluídas no comando create table devem ser equivalentes a:

Gabarito: E

Aqui a ideia central é descobrir quais colunas identificam unicamente cada linha da tabela, ou seja, as chaves candidatas. Pelas dependências funcionais, a determina b, c e d, então a sozinho já identifica toda a tupla. Além disso, c determina a, e como a determina tudo, c também identifica tudo; por fim, b determina c e, por consequência, b determina a, b, c e d. Resultado: as colunas a, b e c são chaves candidatas. Em termos de restrição de integridade no CREATE TABLE, isso se traduz em constraints UNIQUE sobre cada uma dessas colunas. No banco relacional, UNIQUE garante que não existam dois registros com o mesmo valor na coluna, o que é exatamente o efeito esperado para uma chave candidata simples. Não é preciso juntar colunas em uma chave composta, porque cada uma delas, sozinha, já resolve. Por isso, a alternativa E está correta: UNIQUE(a), UNIQUE(b) e UNIQUE(c). A coluna d não entra isoladamente porque não há nenhuma dependência que permita concluir que d identifica os demais atributos. Em linguagem de normalização, o ponto aqui é reconhecer as chaves candidatas a partir do fecho dos atributos, antes de sair marcando UNIQUE por impulso.

Continue treinando

Questões relacionadas