Dúvida: qual a diferença entre a 2FN e 3FN?

Estou estudando as formas normalizadoras de bancos de dados, porém não consigo entender a diferença entre o que pede a segunda forma normal e a terceira forma normal, parece que ambas pedem para extrair um campo que depende de uma chave primária para outra tabela.

Alguém consegue explicar a diferença entre os requisitos dessas 2 formas?

Posso dizer que, na prática, é basicamente a mesma coisa mesmo.

A 2FN diz que, ao criar uma tabela para relação many-to-many de outras 2 tabelas, você deve por nela apenas dados que são ligados às chaves primárias de ambas tabelas. Ou seja, se for uma tabela com as notas de alunos (por exemplo), a coluna das notas precisa se relacionar com o ID do Aluno e o ID da Matéria para fazer a identificação correta. Se nesta tabela tiver uma coluna com o 'nome' do aluno, ela deverá ser removida, pois o nome se relaciona apenas com ID do Aluno, e não com o da Matéria, logo, é um dado que deveria existir apenas na tabela Aluno.

A 3FN dá basicamente a mesma ordem, mas para uma tabela única. Imagine, que estamos criando uma tabela de Funcionários, e uma das colunas terá o ID do Cargo. Se houver uma outra coluna com o 'nome' do Cargo, ela deverá ser removida, pois ela não tem relação nenhuma com o Funcionário, logo, este dado deverá existir apenas na tabela de Cargo.

Ou seja, na prática a gente acaba fazendo um procedimento semelhante, só se diferencia a situação aplicada.

caracaaa muito obrigado, eu fiquei pensando por horas e não tinha conseguido chegar numa diferença entre elas!
[Aqui](https://pt.stackoverflow.com/q/151323/112052) tem uma explicação bem detalhada.
Muitoooo completa essa resposta, li inteira, muito obrigado por compartilhar!