The OverRelational Manifesto. VOCIFEROUS IGNORANCE vs. NUMB DOGMA.
Date: 17 May 2006 02:29:10 -0700
Message-ID: <1147858150.528052.7550_at_i40g2000cwc.googlegroups.com>
Yes. I've found "TheORM" on dbdebunk.com - of course as VOCIFEROUS IGNORANCE and in "Laugh or Cry" part. I don't think it is a problem, because all things, which are out of numb dogma, look like vociferous ignorance from point of view of this dogma.
But what is a trouble? "TheORM" realize the Relation Data Model and TTM do it too. May be we have two different Relation Data Models? :)
What does TheORM think the relational data model is? I'll repeat it
ones again. Any data model is defined as totality of 1) a collection of
types....2) a collection of operators or inferencing rules...3) a
collection of general integrity rules...". This well-known definition
can differ in different sources but idea is the same - Types &
Operations & Constrains (TOC). It is just kind of mathematics. So when
"TheORM' speaks about relational data model it means 1) relations,
which are defined on a set of scalar domains (any domains as you wish
it they are scalar ones only) 2) operations of relational algebra 3)
keys (at least). The system, which implements RMD, has to fulfil basic
principle of the relational model: all information is represented by
data values in relations. It means that this system have to realize
variables designed to contain relation(values) and all data, which
exist in system, have to exist as values of these variables and to be
accessible in these variables. Of course the system has to implement
operations and constains existing in the data model. It is well-know
idea (very roughly presented here) and from its point of view "TheORM"
describes the system which is true relational system.
Trying to find definition of concept "data model" in TTM you will meet on the first pages very strange definition of something that TTM calls as just "model". This " model" is defined as abstract, confined definition of objects, operations etc. what together represents abstract machine, which end user interacts with (I'm sorry I don't have TTM in English, so I cannot give exact citation - you can find it at chapter "1" where TTM says about big logical difference between the model and the implementation).
As you can see definition of TTM's "model" differs from TOC-definition of data model. Is this difference big?
As I say TOC definition of data model is a mathematical one and I can give very simple mathematical analogy to make this difference clear. Different kinds of mathematics exist - for example arithmetic. Arithmetic operates with integer numbers (i.e. values) and defines some operations on these numbers. Computing system, which implements arithmetic (physically it can be abacus or mechanical calculating machine or electronic calculator or computer or something else but here I'm speaking about very abstract arithmetical computing system), must have variables, which contains values (integer digits here) and must implement integer operations.
If in arithmetical computing system the variables exist, which can contain not arithmetical values, or this system make wrong calculation (2 + 2 = 5) - the system cannot be named as pure and true arithmetical system. So the arithmetic is the criterion of truth, the use of which allows us to assert if some system true or false implementation of this arithmetic.
But can somebody say, that "arithmetic defines abstract, confined definition of objects operation etc. what together represent abstract calculating system, which end user interacts with"? For example in this system operation exists, which create variables of integer type. Let me know the way, in which this operation is defined in arithmetic or show me something else in arithmetic what means this variable! Arithmetic looks like all-sufficient logical formation what manipulates with values only. There are no integer variables in arithmetics - only values are operated with it - and arithmetic doesn't need any implementations, any variables and any languages to be truth. Variables exist only in system, because a variable is the only possibility for system to implement existence of a value. So when somebody says about integer variables and, all the more, about possible ways and expressions, which have to be used to define these variables in system (even if this system is very abstract and the expressions is very common), - he says about implementation of arithmetical system, but not about arithmetic itself.
According to TOC-definition, data model is all-sufficient logical formation what manipulates only with values too (data model defines set of types where each type is a set of values- nothing more). This mathematical formation can act as criterion of truth (for example, SQL systems, which allow duplicate rows in a table, is not true relational systems). Of course the necessity exists to build system, which is true implementation of relational data mode, but this is not RDM's necessity. There are no relvars in RDM, but (somehow or other) the relvars have to exist in the system because relvars is the only possibility for the system to implement existence of relations. And there are no any prescriptions to system in relational data model because this model (in according to TOC definition) is all-sufficient.
All this means that TTM (good few of prescriptions of which concerns to relvars and to possible ways and expressions, which have to be used to define the relvars in system) is more than just data model (according to TOC). Really it defines very abstract implementation of relational data model too. Of course, this is very formal, logical and true relational implementation (and this is TTM's great achievements) - but TTM is not the relational data model according to TOC definition. TTM's ''model" describes "abstract machine" and this " model" differs from RDM as well as some (very abstract) implementation of some TOC data model differs from the data model itself. IMHO it's big difference.
The trouble is that TTM's progeny believe that TTM shows only true way
to only true relational system. It means that TTM's progeny rejects all
doubts about its impeccability, not trying to understand if these
doubts are the ones about relational data model (which is mathematical
formation) or about "the_model" (which describe abstract implementation
of RDM). If TTM's progeny hear something that differs from TTM's
statements they simple shout "this is stupid idea". If TTM's progeny
cannot argue their right they simple call the opponents as ignorant.
Only drop of logic exists in their words but all other is vacant trust
in self-impeccability. TTM's progeny aren't stupid of course but they
cannot understand other ideas only because they cannot imagine that
other ideas can exist or be true. TTM and its " model" become the numb
dogma for these guys. They cannot understand, that idea of
"OverRelational"systems has the foundation what exists in TTM.
Fact is that abstract system defined by TTM is programmable system. Fact is that the language used to program this system is Turing-complete language (I'm sorry again, I don't have TTM in English - in Russian it sounds as "computationally-complete language"). All it means, that programm, which manipulate with this system, can be the result of tranaslation from other programm languages with some translator (which can be programm run by the same system).
There is nothing new here. This way has already passed by von-Neumann's computer evolutionally. All existing OO-programming(and other) systems runned with computers built on von Nemann's principles are results of this evolution. Does these system contradict with von Neumann's principles? No - they are built OVER computers, which realized the ones. Does these system refute simple types, which is realized by these computers? No - they use these types as base types. Does they suppose that data must exist in the computers not as a set of values of variables of base types? No - but they allow users to manipulate with these variables in other way. This way allows to organize simple variables in complex structures and manipulates with these variables as they are a parts of complex structures. This is possible and usual way to use any programmable machine and IMHO nothing prevents to use this way for abstract relational machine. The Over Relational Manifesto have it done.
The Over Relational Manifesto doesn't try change realtional data model and fulfils basic principle of the relational model: all information is represented by data values in relations. But TheORM supposes only, that relvars, which is used to contain these relations, can be defined in other way, not such direct and evident as "CREATE RELVAR RelVarNAME...". ( direct way to create these variables is accessable too: "...TheORM considers as useful and necessary the possibility of defining and using global variables of value types..." where "value type" is one of scalar, tuple or relation types). This indirect way allows describe something, what is more complex than single relation and manipulate with data contained in the relvars as with a part of these more complex structure. This the "something" is named as molecular semantic units in "RM/T" (by E.F.Codd). "TheORM" calls they just as object. Anyway - possibilities to define such complex pieces of data can be really helpful.
Once again: relvars exist, have name and are accessable for users.
"TheORM"'s news is that they can be defined both in direct and indirect
way and their values can be changed both in direct and indirect way. Do
these assumptions contradict relational data model? No, they don't. Do
they contradict relational TTM's "model"? I think "No" because this
"model" can execute "TheORM"'s system.
(but...are you going to answer "yes"? ...then what is a truth here? )
Received on Wed May 17 2006 - 11:29:10 CEST
