Back in 1988 I was working with a brand new Oracle 8 database building a billing application for a major telco and we came up with an architecture which had two databases, one for logging the billing information and then one which was updated from this transactional system for reporting. This was my first exposure to the whole area of Business Intelligence and the configuration and tuning of databases for query.
So for the last 15 years I have always thought of two database usages, Transactional and BI. Recently I have been looking at a lot of really big web sites (multimilion users) and have been getting more and more uncomfortable with this model. This was bought into focus by Adam Bosworth's blog over Christmas but I just didn’t agree with his examples.
Then yesterday I was reading an analyst report about MySql and the whole issue came into focus for me. There are actually 4 database usage types not 2, Transactional, BI, Single user state and Organizational state.
Single user state is the information held by a big web site on a per user basis. It is row level based, very performance critical but has little or no relational, indexing or locking requirements. It holds the attention data of a user.
Organizational state is used by SaaS systems to hold multi tenancy information. It is closely linked to the transactional databases and is mainly metadata.
The single user state database has a very different database usage characteristics than the other three and so we will start to see databases configured and built for this usage.