By your training, your education, your professional work, your use of MS technologies, in fact everything in IT today still revolves around the historical client-server model in one way or another. The vocabulary of IT reflects this, ie. database as distinct from presentation as distinct from business layer. The idea of 'tiers' is the same abstraction. As a result not only are there distinct technologies associated with the physical breakdown of the client-server model but their are logical anomalies with the model as general rules are never set in stone (what logic goes where). Unfortuneately all the vocubulary is grounded in the model. Even the significant historic problems that result from the attempted communication between disjointed technologies (net->sql), ie. impedance mismatch.
Given this history there is a true lack of vocabulary to describe
a system that is intended to do what the client-server model does but
does not fit within that model. In the system I blog about there is
*only* the database. There is no technology that can be labelled the
'presentation' layer, a layer that is a 'distinct' technology from
the database technology. There is no distinct technology that can be
called a business layer that is a distinct technology from the
presenation and database technologies. Presentation, instead of
a unique technology, is an *inference*, something derived by the
system (database) itself from various objects (table,constraints,references,views,procedures etc). There is no 'client' technology that understands complex types (arrays,lists etc) as distinct from the database technology. There is only a 'database' that understands and can operator on complex object types and hence there is no such thing as a 'net' type vs. a database (sql) type and hence there is no such thing as a channel of 'communication' been two distinct technologies. There is only a single system, a *database*, that accomplishes all the things that client-server technologies
do but in a much different (and much simple and efficient) way.
The logical questions of client-server even morph. There is no such
question as to 'where' to put logic, ie. in the database or in the
business layer as there is no such distinct entity as a 'business' layer
vs. a database layer. As I hope you can imagine, it is no trival matter
to communicate these ideas, let alone illustrate new problem solving
techniques so they make sense to many users.
So when you state:
>The type of activety that you've both described should probably be done
>in the database by the database... not in either the presentation
>or business layers.
You are correct! As there is only 'the' database! 🙂
Of course some may guess that there is an adjective for the database
I am describing. And there is, it's a 'relational' database. And we have
little experience with a true relational database. But I'm trying 🙂
Hopefully down the road, as I write new material these ideas
will make more sense. I hope you and others will bear with me 🙂