Hmm, then my serious db courses at the uni weren't very 'serious'
then!
If you don't know that I am afraid they were a little disaster.
Nothing rare, by the way.
NO law states that BL has to be IN the DBMS.
No law, but it is a well stablished principle in the database
community. You might check the first chapter of any popular
introductory book like Date, Elmasri & Navathe, Korth & Silverschatz,
etc.
BL is a data-consuming tier, not part of the relational model. If you
pick up a book by Nijssen or Halpin, or Yourdon for that matter, you'll
learn that relational theory, e.g. the schema setup in your DBMS, is
not a theory which states anything about business rules.
None of them is an expert on relational theory.
You should read Codd, Date or Fabian Pascal to get a clue. Business
rules support is one of the main components of any database model.
In a 1981 paper entitled "Data Models in Database Management" Codd
defined a data model to consist of a combination of three components:
1. A collection of data object types, which form the basic building
blocks for any database that conforms to the model;
2. A collection of general integrity rules (business rules), which
constraint the set of occurrences of those object types that can
legally appear in any such database;
3. A collection of operators, which can be applied to such object
occurrences for retrieval and other purposes
Source:
http://www.amazon.com/exec/obidos/tg/detail/-/0201612941?v=glance
It only gives
context to the data its format it defines, no logic whatsoever.
The Relational Model is nothing but a direct application of set theory
and predicate logic to the data management field. If you don't know
that then you know practically nothing about it.
Codd's genial insigth was to use the mathematical logic for the
business logic. The Relational Model is a small branch of mathematical
logic.
One researcher once made a list of how many client-server
architectures there were, he came to 7 if I'm not mistaken. Your
proposed setup is one of them, but far from the only one.
My proposed "setup" might have infinite architectural forms. Client
Server is only an special kind of distributed system. A distributed
DBMS composed by zillions of servers still is a single DBMS.
What you suggest is typically a big-iron box in the basement, and thin
clients connecting to it, where all the software is written by DBA's.
All the business logic code is written by DBA's or database
programmers, but all presentation logic still needs to be written by
application programmers.
I hope I don't have to drop the word 'scalability' on you.
Scalability has nothing to do with this. There are many ways to scale
a well designed Information System where all the business logic is
ensured by the DBMS.
Regards