Rethinking Agility in Databases - Part VI: Structure and Information, Revisited

Skip Navigation Links

Rethinking Agility in Databases 5/9/2008 6:43 PM

view as multiple pages

By Max Guernsey, III - Managing Member, Hexagon Software LLC

Introduction

Yesterday (May 8th, 2008), I did another Data Structure Metamorphism seminar. At the end, one of the people attending commented on the distinction I draw between structure and information. His contention was that there was value in the design, itself. He actually said that there is more value in the model than the content. Even though he changed my mind a little, I still would not take it that far.

The essence of his argument was correct, though: There is value in the structure. That’s why we have a database structure: it does something for us that we want done. The structure is still not as valuable as the content – so long as the content’s existence is not dependent on its structure – but I don’t think his real contention was with my valuing information over structure. I think it was with the implied effort to demote structure to a “second-class citizen.”

It all got me thinking: “maybe it’s time to reframe that distinction.”

The Hypothesis

Here’s the hypothesis du jour. There are three elements to a database: behavior, content, and information. You might say “Hey! Where did structure go?” Structure is a kind of behavior; it defines how a database formats its content.

Behavior

All the things the database does. This includes structure, triggers, stored procedures, constraints, domain data, et cetera. In short: everything the development team teaches a database.

Content

The set of facts in the database. Everything the database knows about the domain. e.g.: “Customer 1234’s first name is ‘Joe.’” In short: everything a database learns in the course of performing its duties.

Information

Answers to questions. More accurately: what the asker of a question learns from the answer. This is a synthesis of behavior and content.

Simply put: behavior uses content to create information on demand.

Conclusion

It’s not that the value of behavior and of content must be tracked separately. What I wanted to drive home all along is that they are two distinct things. “Valuing them separately,” was just a way of dividing the two kinds of change. Content and behavior are two distinct-but-related things. So long as that difference is recognized and in the forefront of your mind, I don’t really care which one you think of as more important. Although, I think I can pretty easily guess which one your customers value more.

My real point is not that behavior is less valuable than content. It is that information is the goal; that’s why we make databases in the first place. Databases don’t contain information. They create it as needed by combining their two major constituents: content and behavior.

In other words: information is intent whereas behavior and content are implementation.