Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Dúvida] Terceira Forma Normal (3FN)

No Para saber mais está falando isso a repeito dessa forma:

Terceira Forma Normal (3FN)
Requisito: A tabela deve estar na 2FN e não deve haver dependências transitivas de atributos não chave em relação à chave primária.
Foco: Eliminar dependências transitivas, onde um atributo não chave depende de outro atributo não chave que, por sua vez, depende da chave primária.

Na aula nos exemplos vi que no 3FN o atributo não chave dependia da FK e a mesma dependia da PK, mas a FK não é um atributo chave?

1 resposta
solução!

Olá William! Tudo bem?

Na 3FN, o objetivo é eliminar dependências transitivas. Isso significa que um atributo não chave não deve depender de outro atributo não chave. Para estar na 3FN, uma tabela deve primeiro estar na Segunda Forma Normal (2FN), o que significa que todos os atributos não chave devem depender totalmente da chave primária.

Agora, sobre a FK: uma chave estrangeira é um campo (ou um conjunto de campos) em uma tabela que é usado para criar um link entre os dados de duas tabelas. Ela refere-se à chave primária de outra tabela. No contexto de normalização, a FK pode ser vista como um atributo não chave na tabela que a contém, mas que tem uma relação direta com a chave primária de outra tabela.

O que você viu na aula, onde um atributo não chave depende da FK e a mesma depende da PK, é um exemplo de como as FKs podem participar de dependências transitivas. Mas, na 3FN, estamos focados em eliminar casos onde um atributo não chave depende de outro atributo não chave dentro da mesma tabela, que por sua vez depende da chave primária dessa tabela.

Por exemplo, imagine uma tabela de "Pedidos" com os campos: PedidoID (PK), ClienteID (FK), e ClienteNome. Se ClienteNome depende de ClienteID, que por sua vez depende de PedidoID, temos uma dependência transitiva. Para resolver isso e alcançar a 3FN, ClienteNome deveria estar em uma tabela separada, talvez na tabela "Clientes", onde ClienteID é a chave primária.

Ficou mais claro com esse exemplo? Você consegue identificar alguma outra situação onde uma dependência transitiva poderia estar ocorrendo?

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!