No Batteries Required - Home
Data Modeling
Ray Kahn
FEB 19, 2013 09:12 AM
A+ A A-

A few years ago I joined a very well known financial services company. During my employment with the organization a group of us started working on a new piece of SaaS. It was a top-down design and development effort: gather business requirements, design, build (code), test and then of course release and maintain the software. Nothing fancy there. But the part that took us the longest, and I dare say the most pain, was the data modeling phase.

Of course I can’t get too much in the details of the said software but needless to say it had some very specific requirements:

·         SaaS

·         Catering to Education industry, specifically on-line universities

·         Massive amount of data – mining data profiles of 250 million US consumers

·         Quick response time – less than 2 seconds

·         Authentication & authorization

·         Data sanitation

·         Data standardization

·         XML response

·         Public API for CRM integration

We also had to make sure that we did not fall afoul of Federal laws governing personal financial information.

Why the pain!?

It is one thing to determine what the “current” business requirements of an organization are and quite a different story when it comes to “future” needs. So the question that we had to grapple with the most was how to architect a data model that meets the current and future needs of the organization without having to do a major overhaul of the software later down the road if and when those requirements changed. After all software overhauls are costly. Add to that complexity the realities of the business: for one, all software efforts remain under constraints of time and ought not to take too long, or else competition will eat your lunch.

Off to the tracks

First and foremost it always helps to have a seasoned data modeler, or at least a very senior DBA with expert level knowledge of using modeling tools. Of course business stakeholders must be present at the table during this phase. In fact the major drivers of this exercise are business owners who understand the true value of data as a resource and its relationship to other datasets. Remember data modeling is an exercise and a progressive one at best; it is an iterative work which at times may seem arduous and boring, however designing an efficient data model helps the business visualize data in a holistic way and help IT build a better data repository. During this phase a couple of artifacts will emerge (in fact there will be three artifacts but I only mention the two which are important to the discussion):

 

·         Conceptual model: data takes a form and specification, AKA attributes.

·         Logical model: how data relates to other data elements.

I can’t emphasize enough the fact that business should be vigorously engaged during every step of this phase and IT must make sure that it understands business’s priorities. IT’s role at this stage is to lay the foundations of an efficient information system, and a well designed data model speaks volumes to that end.  Of course efficient has different meaning to different people and contexts. When designing a data model it is important to remember a few things:

·         Make it simple: Complex data models will make your information system expensive to build and maintain.

·         Decouple: Always try to separate business rules from your data model (here I mean the structure of your data). Doing so will make the information system so much more scalable as business requirements and priorities change. 

·         Understand/Engage your costumer: If you don’t know what business values in data and what their priorities are then you will have designed an information system that is useless to business.

·         Standardize: Others may want to use or access your data repositories. Make sure you build a data model that is easily sharable with your trusted partners.

Data must take a format and a structure to be useful; it also has relationship with other data elements. The way you define and construct those attributes through the modeling process will impact the efficiency of your organization’s business processes. An information system that is difficult to use and understand by business is a greater risk to the survivability of that business because responding to challenges will be long in coming and ineffective. Remember IT’s fundamental role is to reduce risk to an organization: if you fail at that basic responsibility then IT becomes just another cost center sucking away precious resources.

Conclusion

Since data models are used as a blueprint for designing and developing information systems, care must be applied during this process to ensure a scalable and efficient model is produced. And that can only happen in engaging business owners and understanding their needs and priorities. Data modeling is an exercise that organizes data into a useable resource.

As always document your work, it may save your career one day.

 

Ray Kahn
Director of Information Technology & Services
IEEE Computer Society

FIRST
PREV
NEXT
LAST
Page(s):
[%= name %]
[%= createDate %]
[%= comment %]
Share this:
Please login to enter a comment:
 
RESET