Cristian,
O seu raciocínio é logico e sua dúvida é pertinente. Porém tem um detalhe que somente a experiência pode te trazer...
...O TEMPO... abaixo uma frase bonita pra um causar impacto bacana:
"Com organização e tempo, acha-se o segredo de fazer tudo e bem feito. Pitagoras"
Agora sério!!!
- Vamos supor que houve uma deflação e os produtos baixaram de preço para manter a competividade entre as empresas concorrentes.
Bom, pediram para você RECALCULAR o valor de uma nota fiscal de 11 meses atrás pois ocorreu uma devolução de um produto em garantia e o cliente precisa ser ressarcido e blá-blá-blá... segue todo aquele papo furado bastante enfadonho que os usuários descarregam em nossa áreas auditivas como se estes fossem fossas assépticas...
Você sabe qual é o valor que o produto foi vendido na época? Hum... entendeu?
ENTÃO...
1º) O valor unitário na tabela de vendas permanece como o valor vendido na época.
2º) O valor do subtotal pode ser novamente calculado, a única necessidade de armazenar esse valor é para poupar PROCESSAMENTO de MÁQUINA. Antigamente o processamento de máquina (CPU) era mais caro monetariamente que o armazenamento de dados físicos (WHINCHESTER ou HD), mas a partir dos anos 70 (eu estimo) esse jogo virou.
Abaixo alguma documentação bacana que sugiro você ler para completar seus estudos:
==========================================================
Formas Normais
Juliana Jenny Kolb - julho 21, 2017
...
Terceira forma normal (3FN): eliminação da dependência funcional transitiva
“Uma tabela estará na 3FN quando estiver na 2FN e não houver dependência funcional transitiva entre seus atributos.”.
Assim como para estar na 2FN é preciso estar na 1FN, para estar na 3FN é preciso estar também na 2FN. 3FN define que todos os atributos dessa tabela devem ser funcionalmente independentes uns dos outros, ao mesmo tempo que devem ser dependentes exclusivamente da chave primária da tabela. 3NF foi projetada para melhorar o desempenho de processamento dos banco de dados e minimizar os custos de armazenamento. Exemplo: FUNCIONARIO = {ID + NOME + VALOR_SALARIO + VALOR_FGTS}. Como sabemos o valor do FGTS é proporcional ao salário, logo o atributo normal “VALOR_FGTS” é dependente do também atributo normal “VALOR_SALARIO”. Para normalizar, é necessário:
Identificar os dados dependentes de outros (nesse exemplo “VALOR_FGTS”);
Removê-los da tabela. Esses atributos poderiam ser definitivamente excluídos — e deixando para a camada de negócio a responsabilidade pelo seu cálculo — ou até ser movidos para uma nova tabela e referenciar a principal (“FUNCIONARIO”).
...
https://jkolb.com.br/formas-normais/
==========================================================
As cinco formas normais e porque você deve utilizá-las
Sep 22, 2017 - 8 min read
Luiz Guilherme Fonseca Rosa
Computer Science BSc, fullstack developer.
https://medium.com/@luizguilhermefr/cinco-formas-normais-8f238bc30189
==========================================================
Boyce Codd até 5 Forma Normal
https://1library.org/article/boyce-codd-forma-normal-princ%C3%ADpios-sistema-base-dados.zw0wx90y
==========================================================
Banco de Dados descomplicado: Resumo de normalização ou formas normais.
por Cristiane Selem Ferreira
Tempo de leitura aproximada: 10 a 15 minutos
https://www.estrategiaconcursos.com.br/blog/banco-dados-forma-normal/
==========================================================
Consegui te ajudar?
[]'s,
Fabio I.