I was having a quick browse through the Google App Engine documentation. I found one thing in particular very interesting, and that was the App Engine’s Datastore. Data is not stored like a traditional relational database. Data is stored as “entities” which have a key and a set of properties.
Why is this interesting? Because I think it’s a great time re-think the concept of “data” and what it really means in this brave new world of SOA, mashups, services, SaaS, PaaS and Web 2.0.
The vast majority of corporate data is stored on mainframes or in relational databases. I don’t have any statistics to prove it, but from my experience and anecdotal evidence, I would say that ‘object relational databases’ never really took off. I don’t know enough about them to speculate on why that is. The Google App Engine Datastore is an object data store – albeit a very simplistic one.
When thinking about “data” it’s very easy to fall into the trap of thinking “relational data”. I must confess that when I’m talking to the business about a problem domain I’m mentally drawing ER diagrams in my head. It’s years of conditioning I guess. I need to force myself to forget ‘physical’ and stick with ‘logical’.
The reality is – some data isn’t relational. And even if it was, does it necessarily mean that it has to be modelled/stored that way physically in a relational database?
Something to think about.
I often say that you have to challenge your assumptions – to put everything ‘under pressure’. When it comes to enterprise architecture, this isn’t just a “good idea”. It’s an important part of your job.
For those interested here’s the documentation: http://code.google.com/appengine/docs/datastore/