Especially banks really need to maintain the transaction log. One could also argue that keeping the aggregated balances could be some DB side trigger on update operations for separate "balances" table or generated with some kind of hourly/daily batch job to not put too much load on the operational DB with every customer browsing the online bank.
Triggers get a lot of hate because of separation from application level version control etc., but these are also long discussions to get into.
edit: This article's contents are good to be included with all the most junior level application design/development training material.