CUSTOMERS Fundamentally, banking is about managing the capital or money of a customer. It is important to note that all the capital in the system is accounted for, ie. there is no money that belongs to no one. Of course, if you drop 20 dollars in the garbage and no one ever finds it, then that money is unaccounted for, but that money is not in a bank and hence not in the financial system and hence not part of our data considerations. Some edge cases exist due to death or fraud, but ultimately, money finds its way back to a customer pretty quickly or is withdrawn from the system/written down by the bank. So every piece of money in the financial system needs a customer. A bank will not accept a deposit without a customer. A fund will not do a trade with a customer not in their system. A customer can take many forms as a person, group, company or other legal entity, but ultimately, without a customer, the money has no place to go. So the customer sits at the top of our hierarchy.
PRODUCTS Once the customer is in the system, the customer can buy/sell a financial product. Products can take many forms as well, some simple, like deposits and savings accounts and others more complicated like swaps, derivatives and collateralized debt obligations. The way we represent products is on their current state, a bit like a snapshot at a point in time. This form of data representation works well for banks as it falls in line with their accounting and balance sheet processes. So for a given date-time, you have a current status of a product and the customer to which that product belongs. A product can have many customers and customers can have many products.
TRANSACTIONS & CASH FLOWS Once a product has been created and assigned a customer, it needs a way of getting from its current state today to its current state tomorrow in an auditable fashion. So while cash flows represent predicted changes to the state of a product, transactions represent the actual change. If you have a savings account with a balance of 100 that receives 5 of interest, your products balance goes from 100 to 105 and you have a corresponding transaction of 5 that describes what caused that change in state of the product.
The way banks then differentiate products is based on the risks they represent or potential future state. A current account is no different from a savings account if you have no concept of time. Therefore, different products have different cash flow consequences which can be predictable (like savings or fixed-rate mortgages), conditional on other known variables (like share prices or derivatives) or completely unexpected (like defaults). Based on this, we can associate a table of future cash flows to a product using any number of fun risk modeling and forecasting techniques.