Data Modelling

“The purpose of analysis is not modelling but understanding.” – Sun Tsu (The Art of War)

There are several problems with data modelling that make it, in my opinion, probably the biggest source of mistakes in system design.

A quick list:

  1. The structure is too similar to a relational database model and there is a tendency to implement a high level model as a database design
  2. High level models view the business from the outside-in whereas lower level models must view the data from the inside out in order to provide information in the correct context to the business processes
  3. Either misunderstanding of normalization techniques or inappropriate application of normalization distorts the data model
  4. Lack of understanding of the data content leads to incorrect structures being created
  5. Lack of understanding of what constitutes an entity leads to incorrect structures being created
  6. Lack of understanding regarding what constitutes duplicated data leads to incorrect structures being created
  7. Lack of understanding of the importance of data ‘ownership’ leads to incorrect structures being created
  8. When a user reads a data model it is like staring into the coals of a fire – they can see almost anything they want to see
  9. High level abstractions of data are seen as valid when in reality it causes complications for both database design and programming since the information held is not specific enough

….and there’s more.

And if all the above wasn’t enough there is a major part of analysis dedicated to modelling “real world” objects. The term “the real world” was traditionally used to recognize the difference between the academic world and the actual problems you need to deal with at a practical level when involved in an organization. This seems completely sensible, however…

Red Herring

Introducing a real-world red herring

….what is the purpose of defining “real world” objects for businesses processes that operate on a conceptual view of the world? The information managed by any given business is a conceptualized view to support that process, even if the conceptual view is named after something physical such as a vehicle. In this instance it is possible that both a vehicle manufacturer and vehicle rental company have identified an entity and named it ‘vehicle’ although the information held about a vehicle and the processes acting on it will be entirely different IE they are different things.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: