June 10th, 2012, 02:34 AM
How to design a framework for 'what-if' scenarios
I hope I am posting this in the correct sub-forum.
We have a large information system software that runs on several types of databases (Oracle, sqlServer and more). We want to enable 'what-if' scenarios, I will explain what I mean:
Let's say the system manages information on maintenance of vehicles, like when the next service is for every part of every vehicle, and shows reports on what vehicles will need service when. The management wants to know, for example, what would happen if they change some maintenance policy - how will it effect the availability of vehicles, etc. Of course they can change the policy, look at the reports, and then switch it back, but this is dangerous, we do not want to change production data.
I can think of two solutions:
1) Create a copy of the database (or a part of it), and open a separate server that works with it. Then the management can do their projections on this server without affecting real data. The problem is that it will take lots of effort to implement this solution.
2) Have the management make one change in the data, recalculate its effects, do the reports, and then rollback the transaction. This solution is simpler, but it enables to foresee the consequences of only one action, and I also do not like the idea of intentionally causing a rollback.
I am sure that we do not ask for something new and that 'what-if' frameworks exist, yet I do not manage to find anything on it in google. I will be most grateful if you can reference me to articles about this subject!