What ever data base structure you have you can get a Logical model out of it using Reverse Engineering. Erwin is one data model tool which does it. You should apply normalizing techniques to bring the same to a 3NF (Normal Form) and reduce the redundancy. Creating new entities by breaking up of de-normalized entities. Resolving many to many relationships. Finally create a new database structure (Physical Model) based on 3NF from the logical model.
Once you acheive a model in 3NF you can do Data migration by simple ETVL ( Extract, Transform, Validation and Load) from old data structure to new data structure. Before doing it your High Level Design should have proper Data mapping document and Metadata document so that you do not lose data.
Login to rate this answer.
Rohit
Answered On : Nov 18th, 2012
It purely depends what kind of problem you are facing currently. Performance issue can be dealt in n different ways, you need to see the current configuration of DB, the queries, the hardware etc. If you are facing semantic issue such as incorrect query result, heavy redundancy, anomalies, etc. then I would say the model business needs a re-evaluation. Try to break the model by business function and call them as subject area, e.g. revenue, profit, etc. Slice and dice to the root level where you are facing the issue. Example may be say you are getting a single load of revenue data which is getting dumped into a flat table with no proper key defined etc. this is a case of duplication making an entry. Then check if you can normalize this single table and define proper keys. This narrowing down of problem will reduce the amount of change. I never recommend a total make over for any data model due to certain cost factors. Create a test schema and run the new queries to test the results. Once you are confident with unit and system testing, you can denormalize the table retaining the keys. This is will certainly need some changes in your ETL, but worth the effort. If the DB is solely used for reporting and there is an appetite for slight inconsistency, and performance is the main concern then you can try using the open source big data appliance such as hadoop and hive DB (for DW reporting) or Cassandra for OLTP. The beauty of these application is that they need minimal modeling and is very easy to configure a sand box.
Regards
Bibudesh Rohit
Login to rate this answer.