My first Publication Agile-Data-Warehouse-Design-eBook | Page 132

Modeling Business Processes 111 Figure 4-11 Adding shipment dimensions to the matrix Generalization: Model Spoiler Alert Role-playing dimensions, such as EMPLOYEE [RP] , are examples of generalization: Generalization a technique frequently used in data modeling to increase the flexibility of a model to creates smaller represent more varied things, and in database design to reduce the number of more flexible data database objects that need to be created and maintained. models that work well for packaged Generalized data models work well for packaged application vendors, because they applications want to create databases that do not need to be changed for each new customer or industry. Generalization removes customer or industry-specific meanings and business rules from the data model and places them in reference data-driven application logic. A common generalization design pattern is the use of a single Party entity to repre- Party and Party sent all who details (persons and organizations), with an associative entity Party Role are common Role to represent their various types, positions, titles, and responsibilities, ( e.g. examples of customer, employee, supplier, etc). This database pattern is capable of recording generalized entities the multiple positions that people might hold throughout their lives or the multiple used to model all responsibilities they might have simultaneously, but is it a good generalization to types of people and make when modeling a data warehouse? If BI stakeholders are explicitly looking for organizations people who change roles—such as spies and criminals who change identities, or government regulators who become political lobbyists—then a generic who dimen- sion that plays multiple roles might be exactly what they need. However, if stakeholders are not terribly concerned about role switchers, or the Stakeholders may available data sources simply lack any reliable means of capturing role changes, not see any obvious then this design flexibility is wasted. Worse still, it can get in the way of what BI benefit in stakeholders really want to do. For example, a single dimension representing generalization Customers and Employees containing every possible who related attribute would be very confusing to use compared to separate dimensions containing customer and employee specific attributes.