SóProvas


ID
1827091
Banca
FGV
Órgão
DPE-RO
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Considere um projeto de bancos de dados relacional onde asseguintes dependências funcionais se verificam.

C1 → C2

C1 → C3

C3 → C4

Uma tabela T de atributos C1, C2, C3, C4, na qual C1 é umidentificador, verifica a terceira forma normal somente se: 

Alternativas
Comentários
  • Sabemos que:

    C1 determina C2

    C1 determina C3

    C3 determina C4

     

    Como C1 determina C3 e C3 determina C4, pela regra de transitividade, C1 acaba tb determinando C4.

     

    Para atender a 3FN - somente C1 (PK da relação) teria que determinar os demais termos (C2,C3,C4). Porém, como temos uma dependência transitiva ao saber que C3 (termo não primário) tb determina C4, a forma de eliminarmos esse problema seria considerar C3 como determinante de C1, assim teríamos:

     

    C3 determina C1 e C1 determina C2, logo, C3 acaba determinando C2;

    Como C3 já determina C4;

    C3 acaba sendo o determinante único de todos os demais termos eliminando a dependência transitiva da questão: 

    C3 - C1

    C3 - C2

    C3 - C4 

     

    Resposta C

  • @Vinicius Nomelini

    Temos C1 determinando C2, C3 e por transitividade C4. Para verificar a 3FN temos que acabar com a transitividade, mas com  C3-> C1, continuaríamos com dependência transitiva C3->C2. Acabamos com a dependência transitiva de C1->C4 e criamos outra DT C3->C2?

  • Não seria C3 -> C4? Se eu tenho:

    C1 → C2

    C1 → C3

    C3 → C4

    Uma tabela T de atributos C1, C2, C3, C4, na qual C1 é um identificador(ou seja, a PK), para verificas a terceira forma normal, não deveria eliminar a transitividade, criando-se uma segunda relação, e pondo C3 como determinante. Não seria assim?

    T(C1, C2) e T2(C3, C4)

  • Como dizia Jack, vamos por partes:

    Essa é uma questão bastante difícil e a redação do examinador não é boa! Deve-se assumir que ele está substituindo as dependências em vez de acrescentando-as. Certo? Vamos lá...

    (a) Errado, ainda teremos uma dependência funcional transitiva (C1 → C3; C3 → C4; C1 → C4), o que viola a 3FN;

    (b) Errado. Se, em vez de C3 → C4, tivermos C4 → C3, teremos um atributo não-chave (C3) dependente de outro atributo não-chave (C4), o que viola a 3FN;

    (c) Correto. Se, em vez de C3 → C4, tivermos C3 → C1, então teremos C1 → C3 e C3 → C1, que é uma dependência mútua e não viola a 3FN;

    (d) Errado, ainda existirá uma dependência funcional transitiva (C1 → C3; C3 → C4; C1 → C4), o que viola a 3FN;

    (e) Errado, teremos um atributo não-chave (C2) dependente de outro atributo não-chave (C1), o que viola a 3FN.

    Estratégia