1NF - atribut nesmí být dále dělitelný, součet hodnot je dělitelný na jednotlivé podsoučty
3NF - atribut musí být závislý pouze na primárním klíči, vypočítané hodnoty v balance tabulce jsou závislé na datech v transakcích, nikoliv pouze na svém primárním klíči
když už se bavíš o normálních formách, tak tabulka balance by měla mít primary key (account_id, datetime), unique je pak implicitní, aby se dodržela 2NF.
Balance u účtů můžeš uchovávat, pokud takový údaj ale pochází z venku a nikoliv ze samotných transakcí, tj. záleží jaká je vlastně vazba mezi hodnotami. V bankovních systémech se extra počítá účetní stav k nějakému dni, ten je dán aplikační logiku a nepřímo pochází z transakcí (ovlivňuje ho ale třeba i zaokrouhlování, tj. nikoliv jen transakce), ten stav je pak materializován v databázi a denní změny jsou k němu připočítávány za provozu. Tím se samotná normalizace neporušuje.
Je pak otázka jestli takové cachování v balance tabulce není předčasná optimalizace.