Operational databases are made to store current transactional data whereas the data warehouse is usually made to store historical data with its changing behavior for different analytical purposes. This can create big challenges for the modeler to implement the keys of business nature into the data warehouse. Theoretically speaking, the entities of any data warehouse should be made as per the defined business objects. But, practically speaking, as a data warehouse pulls out data from the existing and future operational system(s), to some extent the warehouse models become dependent on the nature of existing or future generated data.
A challenge for a modeler appears when the definition of a business object doesn't directly match with the nature of the available data. For example -- a 'Customer' is one who pays, a 'Client' is who has paid for the last 2 years and a 'Contact' is who is a potential target for the business. The decision support mechanism needs to know from the warehouse via an OLAP cube what percentage of Contacts are becoming Customer, what percentage of Customers are becoming Clients and how long it takes for a Contact to become a Customer.
But in the existing system, there exists details of 'Company' and 'Individual'. Company can purchase the service just as an Individual can but Company can also purchase the service for its selected employees, who then become 'Individuals'.
Continued in part 2 tomorrow.
This was first published in March 2002