# Re: The Theoretical Foundations of the Relational Model

Date: Tue, 2 Jul 2002 15:05:01 +0200

Message-ID: <3d21a4fc$0$223$4d4ebb8e_at_read-nat.news.nl.uu.net>

I always hear about the well founded mathematics of the relational model, but if I look at the basics I only see stripped OO models. From a OO point of view a relational database implements its relations only unidirectional, it only has what we call a backward reference. In a OO model you can have a forward unidirectional relation a backward or a bidirectional relation. Most of the time people are not aware of this and during implementation they make a selection. In order to improve forward navigation or to phrase it differently, improve some typical kind of SELECT use, additional (binary) index trees are used. All this tree stuff happens behind the scene, but it is there to get decent performance. So if I look at the table/colomn level and the class/member level I must say that the relational model is a subset of the OO model. So the mathematics applicable on the relational model should also be applicable to the OO as well. A resticted OO model which only uses relational constructs, is as well founded by mathematics as the relational model. The problem is that there are additional constructs possible and for that part there is not (yet) a well founded set of mathematics. But is goes a bit to far as to say that the relational world has well founded mathematics and OO not. It is not to say that anybody in this thread has made this statement, the thread is to large to check it all, but I have the feeling that it is often implied. So I'm aware about the mathematics and there is nothing wrong with it, but are you aware that the same mathematics are also valid for OO, if they limit themselves to relational constructs only? A more interesting topic would be of how to come to a unified mathematical model, where one subset would be relational and another subset would be OO. If we had this knowledge we could also have a clue of how to extent the relational stuff with some nice features from OO, e.g. inheritance.

Jimmy Venema

"Jan.Hidders" <hidders_at_hcoss.uia.ac.be> wrote in message
news:3d15da07$1_at_news.uia.ac.be...

*> In article <3d14cc88.13948837_at_news.verizon.net>,
**> JRStern <JXSternChangeX2R_at_gte.net> wrote:
**> > A nice essay overall, but I have quibbles about some, and am afraid you
**> > were a bit unsympathetic to the claim that the object model has to
*

utility

*> > and truth outside of the relational model.
**>
**> I don't think that this is what was claimed. The point is that the
**> relational model is well founded in mathematics, logic and philosophy when
**> it comes to modelling a universe of discourse. If OO people claim that
*

they

*> have a better model for this then they need to be at least aware of this
*

and

*> show what is wrong with this foundation.
**>
**> However, for other things than modelling universes of discourse such as
**> programming the (there's only one?) object model might be fine, Paul's
**> article didn't claim anything about that.
**>
**> >> When we point to a group of propositions with an identical structure
**> >> (refering to the same kinds of things in the same relationship to one
**> >> another) we label that group a 'relation'. It doesn't really matter
**> >> what order they appear in, or what order the elements appear in.
**> >
**> > An oversimplification popular amongst relational theorists. Doesn't
**> > matter to whom?
**>
**> Yes, it doesn't matter to whom. It is a fundamental assumption in logic
*

that

*> all your information is in you predicates; the world is described by a set
*

of

*> statements ("Die Welt ist alles, was der Fall ist") and nothing else. If
*

you

*> introduce some kind of order over statements you introduce predicates over
**> predicates and you step into the wonderful world of higher order logic.
*

That

*> is a big step that introduces a whole new range of complexities.
**>
**> >> Why? Because we can reason about the propositions contained
**> >> within relations in an orderly, deterministic fashion.
**> >
**> >Not unless you order them first.
**>
**> You don't need to presume order to be able to reason in first order logic.
**> Of course you will have to order things if you want to represent them in a
**> computer or on paper, but that is besides the point.
**>
**> >> The whole sum of Ted Codd's great insight is that all of the
**> >> programming language stuff about 'references' and 'identity' and
**> >> 'order' can (and should) be eliminated without losing any
**> >> representational power.
**> >
**> > And that's the big, black hole in relational theory: identity.
**>
**> No it isn't. It's dealt with by the requirement that relations need a
**> primary key and that domain values are identified by their representation.
**> Clear and simple. (Perhaps too simple, but that is another discussion.)
*

The

*> way that OO models usually deal with identity is introducing all kinds of
**> equalities such as shallow equality, deep equality, structural equality or
**> even allow the user to redefine equality for certain classes as he or she
**> sees fit.
**>
**> > And it's not clear that relational theory people are interested in
**> > anything but relational theory, that's just human nature.
**>
**> As Paul's article showed, the relational model rests upon a long tradition
**> of trying to represent and reason about the world, and that is what the
**> "relational theory people" are interested in. I could just as well claim
**> that it is not clear that "OO people" are interested in anything but OO
**> programming. That is also not really true, but I believe it is not a
**> coincidence that you were talking about OO programming where you should
*

have

*> been talking about OO *modelling*.
**>
**> Kind regards,
**>
**> -- Jan Hidders
**>
**>
*

Received on Tue Jul 02 2002 - 15:05:01 CEST