Forum members,
Suppose I want to design a database in which the data will be imported from Excel every day or two. The data will come from a portfolio (investment) accounting/management system that contains multiple clients and each portfolio will contain multiple securities, each of various asset classes (cash, fixed income, equity), security types (agency bonds, corporate bonds, common stock), industries (materials, capital goods, consumer non-durable), and sector types (health care, industrials, information technology).
Multiple transactions will occur in multiple portfolios every day among multiple securities. Consider that a draft ERD for this database might look like this.
My question is two-fold:
1. With the exception of “ClientRep” in the Clients table (because there can be a 1:M relationship between ClientRep and Clients, does this look like a normalized database? I also recognize and concede that the "TotalCost" attribute in the "PositionsOwned" entity is a calculated value (UnitCost x SecQuantity) and should (could) be removed and calculated dynamically. If this is not a good ERD, how might the normalization be improved?
2. Given that this data is maintained in a separate portfolio accounting system with many transactions among many clients per day, and that a table or multiple tables will be exported from this accounting system into Excel and that these Excel tables will then be imported into the Access database every day or two (not appended, but entirely replaced), at what point does the normalization process result in diminishing returns?
The way I have it structured now is with two entities, Clients with its respective attributes, and another entity called Master that contains every attribute not already in Clients and some that are (there is obviously much data duplication in this structure). I have this set-up working on several queries now that provide much needed information.
I want an Access database with this information because the portfolio accounting system will not do some of the calculations and data display that I would like to see as a portfolio manager. I do not need to see from this database transactional information over time, but rather point in time data that is current, but updated frequently.
So, is the ERD sound and stable and would I gain more from this normalization than the effort would require given the dynamic nature of the underlying data?
Thanks in advance for any ideas/comments/suggestions.
Glenn