Re: Object-relational impedence
Date: Thu, 06 Mar 2008 17:52:59 +0000
Yagotta B. Kidding wrote:
> S Perryman <q_at_q.com> wrote in news:fqp6ip$bje$1_at_aioe.org:
YK>Does "the semantics of "joins" are an issue for OO" mean that YK>relational joins cannot be implemented in principle in an YK>object-oriented way ?
YK>IMHO most things can be implemented in principle. YK>Efficiency etc is another (important) matter.
>>My unease about joins is that in the ADT/OO sense, for your example
>>etc we effectively create instances of a new type whose properties
>>actually belong to multiple (existing) object instances. Properties
>>that may be realised as computational operations.
>>I feel that prevailing impls of OO are not up to the job of doing the
>>above (although having a consistent Relational infrastructure that
>>apart from joins - works is and is programmed the same way for both
>>ADT-based and "data value only" types/tuples - is something I have
>>long wanted) .
> That was refreshingly honest ! Thank you.
Which is in the main, only opinions. Nothing objectively provable etc.
> However, without joins what is left of the RM ?
The ability to construct arbitrary set/predicate-based expressions to access entities in some given info base is still very valuable, is it not.
> I think that even projections are not very palatable to the OO model.
Projection is covered by type substitutability at the basic level. It is only a problem for specific substitutability models (the Simula model being a case in point) .
>>I similarly feel that Functional programming may have the answers to
>>the problems (the execution engines in particular) .
> There are some ( http://www.csd.abdn.ac.uk/ > ~pgray/graduate_course2004/monad.pdf ) but they have a bunch of their own > issues, mainly related to join performance (not surprisingly). But, I > agree, FP way may still bear some relational fruits as opposed to the > barren OOP tree ;)
From my undergrad times, the things about FP execution envs that impressed me was the organisation of programs as directed graphs, sharing the same program graphs, lazy evaluation etc. A lot of this looks to me like it may provide some of the performance gains needed for a 'Relational OO' system to perform comparably to your typical SQL engine etc.
But again, merely opinion.
Steven Perryman Received on Thu Mar 06 2008 - 18:52:59 CET