Re: A question for Mr. Celko

From: Paul <paul_at_test.com>
Date: Wed, 21 Jul 2004 23:40:29 +0100
Message-ID: <40fef0dd$0$96012$ed2619ec_at_ptn-nntp-reader03.plus.net>


John Jacob wrote:

>>>>[...] What about UNNESTing a relation-valued attribute is different
>>>>from extraction? [...]
>>>
>>>UNNESTing is part of the relational engine whereas extraction is part of
>>>the type engine?
>>>
>>>So from the point of view of the relational engine the value should be
>>>atomic, but from the viewpoint of the type engine this doesn't have to
>>>be the case.
>>
>>Well put! :-) Do you require more explanation John?

>
> I think I got more out of the other branch than this one. I'm not at
> all sure I see how something could be in the "type engine" and not in
> the "relational engine." Seems to me the relational engine is the
> implementation of the type engine, the two are inseparably connected,
> and if I could model extraction of RVA's in the type system, certainly
> I would have to provide an implementation for that functionality in
> the relational engine.

The way I see it, to the relational engine, all values are just black boxes. When it needs to perform some non-relational operation on some values it just passes the problem on to the type engine.

Now in the special case where the type itself is "relations", the type engine has its own little RDBMS that it uses to perform relational operations within the context of the type. But this RDBMS is logically totally separate to the orginal external RDBMS. i.e you shouldn't be able to join a relation-value with a "real" relation in your main RDBMS: the only communication between the two should be via the type engine.

As an analogy I think of a programming language say BASIC being implemented in assembly language. Now then you could use your BASIC language to write another assembly language compiler. But this second assembly language is separate to the original one; you can't share variables etc.

Paul. Received on Thu Jul 22 2004 - 00:40:29 CEST

Original text of this message