Bank transaction table design
The typical design here is to have a Transaction table and an Account table

The Account table has the current balance, as of the last transaction that has "posted".  A modern "online" system will post transactions immediately, but older systems would capture transactions online, but run "batch" to post the transactions later.

PK on the transaction table would normally be (AccountId,TransactionId), which balances the cost of insert and the cost of pulling the transactions for a single account.

I don't think there's a rule controlling whether you also store the running balance on the transaction table.  Normalization does not require you to recalculate the account balance or the running balances.  Balance is a proper attribute of Account, regardless of whether it can be derived from rows in another table.  And you don't necessarily have to perform these calculations as you insert transactions.