Response to Design Challenge #4 - Techniques in reviewing a data model
|
So what are some of the handy techniques we use when reviewing a data model? Click here to read the complete challenge. The more models we review, the more techniques we tend to apply either formally or instinctively. This design challenge contains several of the very useful techniques that were sent to me for reviewing a design, thank you for the great responses! A special thanks goes out to data modeling legend Graeme Simsion for his responses. I placed each of these techniques within categories and there is no priority to the order I listed the categories in or the techniques within each category. They are all important techniques, and this design challenge focused on identifying the techniques rather than rating them. As you read each of the techniques, do you see any new ones you can start using? (The name in parenthesis following each technique is the person who submitted the technique.) [NOTE: Whenever you see notes like this within the square brackets, they are additional thoughts I have on the technique.] Validating the model with the business and functional expertsExpress relationships and subtype hierarchies as business assertions eg "Each Person may hold one or more accounts and each account must be held by one person." Richard Barker's technique was the first I saw; Graham Witt's which incorporates entity and attribute definitions to provide a complete description of the model is the best. The user can work alone on this (initially at least!) ticking off - or querying - assertions serially. (Graeme Simsion) [NOTE: This is a very powerful technique, especially when the business or functional experts prefer to stay clear of the boxes and lines on a data model. We are simply reading them the story on the design. When you do this, I strongly recommend reading them what the relationship includes, as well as what the relationship excludes. For example, in Graeme’s example, if a Person can hold one or more accounts, that would mean a Person can not hold zero accounts. I would ask the business experts whether this is what was intended, and if so, we have it modeled correctly.] Start to gently query the author about some of the non-obvious business rules during a model-walkthrough session. (Ashraf Kandil) Perform transactional analysis. Ensure that each of the target transactions or desired reports can be produced based on the suggested model. (Ashraf Kandil) [This is a very useful technique when designing a data mart where validation can be done by reviewing a report and making sure everything on the report can be represented somewhere in the model. A word of advice here: there is a very good chance your design might require more flexibility than what appears in a given report. For example, if there are four levels of product reporting within a certain report, build your design with enough flexibility to handle the maximum number of levels your experts feel might exist in the near future.] Data element and entity names
Model appearance
Rules of normalization
Definitions
Model flexibility
|