Avi wrote: Come on, I'm not "bemoaning" anything, nor do I think the "only" is necessary. As I said, an algebra of binary relations is a natural approach for what you're doing, but it's rather awkward to model a set of Oracle tables that way (or at least, it seems so in my ignorance - feel free to enlighten me).
I want to point out that the purpose of my BinaryRelation class is *NOT* to model a set of Oracle tables but simply to plug a gap in the data structures available to *programmers* for in-memory programming. Over many years I have learned to think of relations as a valuable tool for my own programming and design *without* any reference to relational databases as such.
(BinaryRelation now includes #converse, #reachableFromSource[s]:, #reachableFromTarget[s]:, and #* .)
E. F. Codd has published a list of 12 criteria for what makes something a relational database. (At the time, SQL did _not_ qualify...) Amongst other things, persistence, audit/recovery, and authorisation control are important. These things must be dealt with in any Smalltalk modelling of Oracle tables. They are completely irrelevant to a set of pairs data structure for internal programming use.
On Tue, 1 Apr 2003, Richard A. O'Keefe wrote:
Avi wrote: Come on, I'm not "bemoaning" anything, nor do I think the "only" is necessary. As I said, an algebra of binary relations is a natural approach for what you're doing, but it's rather awkward to model a set of Oracle tables that way (or at least, it seems so in my ignorance - feel free to enlighten me).
I want to point out that the purpose of my BinaryRelation class is *NOT* to model a set of Oracle tables but simply to plug a gap in the data structures available to *programmers* for in-memory programming.
Completely understood. That was in fact precisely the point of what I was saying - that the relational algebra work I was doing *was* trying to conform to Codd's definitions, whereas the work you are doing (and to some extent the work Brian is doing) has different goals, and hence a very different design. This is as it should be.
Avi
squeak-dev@lists.squeakfoundation.org