The end of database-centric design?
As I write this, it is early June. Early June is a period that strikes
fear into school-going Irish teenagers as it ushers in the season for
high tension, high drama, all-or-nothing examinations.
For those taking examinations in the Irish language at this time of
year, two words are sufficient to drain the blood from their faces. The
words are "conditional mood" or, in Irish "modh conniolach".
The conditional mood in the Irish language is a grammar tense used to
express something that may or may not happen in the future. It causes
irregular verbs - which are hard enough to deal with at the best of
times - to go completely ga ga.
It struck me that I spend a lot of time in this future conditional mode
of expression. Not in the Irish language but in a variety of computer
languages. Like all other enterprise application developers, I worry a
lot about how to deal with things that may or may not happen in the
future. It's hard. Indeed, unlike natural languages, the mainstream
languages that are used to talking to computers do not even have a way
of expressing "may or may not happen".
It is as if programming languages are basically stuck in the present
tense. In other words, given this set of circumstances, right now, do
the following things. Unfortunately, As we all know, when the set of
circumstances changes, programs cease to function and require the
application of that great misnomer 'maintenance'. A costly exercise.
Perhaps programming languages of the future will give us modes of
expression for handling the unknown, the change which typifies business
processes. Until that happens, if it ever does, we need to proactively
take steps to prepare for the inevitability of change in our systems. We
have a word for it - flexibility.
Looking across the vista of enterprise applications, one word stands out
as being very problematic when it comes to flexibility. That word is
'database'. A working database is essentially a set of nouns and verbs
created to model a business process in the present tense. What happens
to the database when the business process changes? We typically see a
technology meltdown. Tables need to change which means that the data
entry screens break, the SQL statements break, the business logic
breaks, the reports break etc. Database's are something of a flexibility
train wreck. Can we do better?
Back to Irish language students for a moment. Students of the Irish
language, when faced with the complexities of the conditional mode, soon
pick up a trick. By using more words than strictly necessary - by adding
a level of indirection - they can avoid the need for the conditional
mode. It's not beautiful but it works. Beauty and raw speed are
sacrificed in return for getting the job done.
Is there an oblique lesson there for enterprise application development?
I believe there is. The levels of indirection take the form of loose
coupling between the component parts of a system.
Sign up for ITworld's Daily newsletter
Follow ITworld on Twitter @IT_world
jfruh
Apple syncing patent can't come soon enough
pasmith
New Twitter features borrow from 3rd party clients
Esther Schindler
Open Source Changes the Software Acquisition Process
mikelgan
How to set up continuous podcast play on the new iTunes
David Strom
Five important Windows 7 mobility features
sjvn
Guard your Wi-Fi for your own sake
Sandra Henry-Stocker
Grepping on Whole Words
Sidekick: The Good News & the Bad News
Either way you look at it Microsoft Data Center management did not follow standards or best practices in this failure. In which case it makes me wonder more about the outsourcing of corporate data much less personal data.
- mburton325
Join the conversation here
Quick, practical advice for IT pros. Made fresh daily.
Want to cash in on your IT savvy? Send your tip to tips@itworld.com. If we post it, we'll send you a $25 Amazon e-gift card.












