No doubt data modeling is a process where you can add a lot of creativity. No doubt there is not a single solution for a business problem with relational model. However, does this mean that data modeling is more art than science? How much creativity is right?I would say that database design is definitely not an art. It is based on science. Of course, you need some creativity. But is creativity limited to artists only? In any profession you need some creativity. However, would you buy a system that your company is going to depend on from an »artist«? A good model has predictable behavior. If the behavior is not predictable, it is not because db designing would be art; it is because the designer does not know her/his profession. I think people abuse word “art” just because they do not know about design enough.

I met so many times very »creative« models. There is a whole branch of modelers I call “inventors”; however, do please note that I mean this in a sarcastic way. It is very simple: if you do not know a lot, you are forced to invent. Interestingly, they mention “theory” a lot as well. Basically, they are “improving” the “theory”. Typical examples would be people who invent “XML databases”, “OO databases” and similar, and by the way they criticize relational model without really understanding it.

However, do we have to follow the established ways, without using brains? There is another kind of modelers I call “theorists”. There are modelers who never use their mind and always follow the authorities in the area, explaining they are following the “theory”. Note that they typically mix the real theory, which has foundations in science, mathematics, with words of well-known authorities. For example, types 1, 2, and 3 for handling the SCD problem have nothing to do with any theory; they are just proposals by Ralph Kimball, and since Kimball is an authority, this kind of modelers does not dare to use own brains to try to find a better solution.

So what is the right mix of established ways vs. creativity? First of all, you should always use your brains and common sense. A real intellectual doubts in everything. Do please doubt in words of authorities, scientists, politicians… Try to find better solutions. However, use extreme caution before you claim you invented something. It was probably already invented for thousand times; it is probably just you who does not know anything about it. Do not forget: if you don’t know, you are doomed on inventing. Or on calling you an “artist”.

Dejan Sarka