Apoio Especializado - Tecnologia da Informação - Desenvolvimento de Sistemas
Considere uma tabela relacional criada a partir do script SQL a seguir.De acordo com as formas normais das tabelas relacionais, o conjunto de dependências funcionais que deve necessariamente ser verificado é:
Aa -> b, a -> c, a -> d;
Ba -> b, b -> c, c -> d;
Ca -> b, c, d;
Db -> a, c -> a, d -> a;
Eb, c, d -> a.
Revelar gabarito e comentário▾
GabaritoA — a -> b, a -> c, a -> d;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Dependências Funcionais e Formas Normais
Gabarito: letra A. Em uma tabela relacional, a chave primária determina funcionalmente todos os demais atributos. Como o script SQL (não exibido) define a como chave primária, as dependências a -> b, a -> c e a -> d são as que necessariamente devem ser verificadas — é a definição de chave primária no modelo relacional.
Uma dependência funcional (DF) é um vínculo entre dois conjuntos de atributos: se X -> Y, então, para cada valor de X, existe exatamente um valor de Y. Em outras palavras, conhecendo o valor de X, é possível determinar o valor de Y. Essa é a base do processo de normalização, que organiza as tabelas para evitar redundâncias e anomalias.
A chave primária é o atributo (ou conjunto de atributos) que identifica de forma única cada linha da tabela. Por definição, a chave primária determina funcionalmente todos os outros atributos da relação. Se a é a chave primária, então a -> b, a -> c e a -> d são dependências funcionais obrigatórias — não há como uma tabela relacional existir sem que sua chave primária determine os demais campos.
As demais alternativas apresentam dependências que podem existir, mas não são necessárias — elas dependem da semântica dos dados, não da estrutura da tabela. Por exemplo, b -> c só seria verdadeira se, para cada valor de b, houvesse um único valor de c correspondente, o que não é garantido pela definição da chave primária.
A pegadinha da banca está em confundir o que é obrigatório (a chave determina tudo) com o que é possível (outras dependências podem existir). A questão pede o conjunto que "deve necessariamente ser verificado" — e isso só inclui as dependências da chave primária.
Alternativa A — ✅ Correta ⟵ GABARITO
Esta é a única alternativa que lista exatamente as dependências funcionais que decorrem da definição de a como chave primária. Se a é a chave, então a -> b, a -> c e a -> d são obrigatórias — a chave primária determina todos os demais atributos da tabela. É a propriedade fundamental de uma chave primária no modelo relacional.
Alternativa B — ❌ Incorreta
Apresenta uma cadeia de dependências (a -> b, b -> c, c -> d). Embora seja possível que tais dependências existam em uma tabela, elas não são necessárias — a existência de b -> c depende dos dados, não da estrutura. A única dependência garantida pela chave primária é a -> b; as demais são suposições sem fundamento na definição da tabela.
Alternativa C — ❌ Incorreta
A notação a -> b, c, d é uma forma compacta de dizer a -> b, a -> c e a -> d, que é exatamente o que a alternativa A afirma. No entanto, a alternativa C está incompleta — ela não explicita as três dependências separadamente, o que pode gerar ambiguidade. A banca espera que o candidato reconheça a forma expandida como a correta.
Alternativa D — ❌ Incorreta
Inverte o sentido das dependências: b -> a, c -> a, d -> a. Isso significaria que os atributos não-chave determinam a chave primária, o que é impossível em uma tabela relacional — a chave primária é única e não pode ser determinada por outros atributos (a menos que sejam superchaves, o que não é o caso). A chave primária é o determinante, não o determinado.
Alternativa E — ❌ Incorreta
Afirma que a combinação b, c, d determina a. Isso é uma superchave — um conjunto de atributos que identifica unicamente cada linha. Embora seja possível que b, c, d seja uma superchave, isso não é necessário — a chave primária a já é suficiente. A existência de uma superchave não é obrigatória, e a questão pede apenas as dependências que devem necessariamente existir.