Re: Does Codd's view of a relational database differ from that ofDate&Darwin?[M.Gittens]

From: vc <boston103_at_hotmail.com>
Date: 6 Jul 2005 06:55:52 -0700
Message-ID: <1120658152.656310.54650_at_z14g2000cwz.googlegroups.com>


Jan Hidders wrote:
> VC wrote:
> > "Jan Hidders" <jan.hidders_at_REMOVETHIS.pandora.be> wrote in message
> > news:EtCye.138094$Px7.7310395_at_phobos.telenet-ops.be...
> >
> >>VC wrote:
> >>
> >>>"Jan Hidders" <jan.hidders_at_REMOVETHIS.pandora.be> wrote in message
> >>>news:64hye.137293$VX3.7329860_at_phobos.telenet-ops.be...
> >>>
> >>>>VC wrote:
> >>>>
> >>>>>OK, we want specifically an algebra (RA) primarily for two practical
> >>>>>reasons.
> >>>>>
> >>>>>(A) It's trivial to compose relational algebra operators (create nested
> >>>>>queries) thanks to the closure property. One can create arbitrarily
> >>>>>complex queries by using several simple and easily understood relational
> >>>>>operators (join, projection, etc). I imagine similar freedom is not
> >>>>>available to the user even with modern network/graph query languages
> >>>>>(whatever those might be).
> >>>>
> >>>>Well, it is available, most of those languages are orthogonal.
> >>>
> >>>For example ? One non-relational language example would suffice.
> >>
> >>XQuery and OQL spring to mind. Here is a nice overview:
> >>
> >>http://citeseer.ist.psu.edu/heuer91principle.html
> >
> > The article you referenced says:
> >
> > "As a very important feature of OOQLs we introduced the notion of
> > object-preserving
> > operator semantics"
> >
> > My note: apparently to make up for the lack of closure.

>

> It has nothing to do with lack of closure, it has to do with
> completeness and expressive power. You can have closure but still not be
> able to express certain operations.

I wonder if you really read the article you are referring to. Instead of talking about completness and expressive power, the article sez:

"The relational model is closed[...] each operation yields a relation. This is important for a lot of database features such as composite queries, query optimization, and views[...]"

and further they claim that "simply extending an object-oriented database model by relations makes the query language closed if we generate relations as query results." However, they say, closure over relations is not adequate for a OO q.l. So they introduce the notion of "adequacy" and say that "adequacy complements closure" and among other things, "[they] have to introduce object-preserving operations" (see my previous comment on object-preserving ops).

So the notion of closure (or its OO cousin "adequacy") is critical to implementing views, composite queries, contrary to your belief.

"

>

> > And further:
> >
> > "That is rather than returning relations [...] we must be able to express
> > queries that return
> > existing objects. Views [...] are the most evident reason for this
> > requirement, called adequacy.
> > To our knowledge, none of the OOQL proposals found so far deals
> > satisfactorily with this requirement"
> >
> > And elsewhere in the same article:
> >
> > "If we have only object generating operations [...] we cannot use the
> > constructs like views, updates of views,
> > and the equivalence of queries for optimization purposes"
> >
> > That's essentially the issues with non-relational query languages I
> > mentioned in my earlier message.
>

> Yes, but as you can see, these problems have been addressed and not only
> by them.

I see the problem as having been addressed but not solved. At the time the article was published they were going to implement all this adequacy stuff, among other things, but do not know whether it was or not.

>

> >>They also mention a few algebras, by the way.
> >
> > They do, don't they, but do not provide any example.
>

> The paper gives the references, you can look them up in the literature
> yourself. I don't think this is the place nor do I have the time to give
> you an introductory course on query optimization in object-oriented
> databases.

I did not ask you about an intro, did I ? I asked about an example of an object-oriented/network/whatever algebra. Say, something similar to "the relational algebra operations are closed over relations". I hope, by now, you are convinced that the algebraic closure property is not just a whim. Why, the very article you've referenced essentially repeats my words on the importance of closure (which [the importance] you denied in one of your previous messages).

>

> >>>>>>>Well, apparently, I am not as smart as most of your students are.
> >>>>>>>Please provide a definition of "conceptual object type".
> >>>>>>
> >>>>>>A unary predicate.
> >>>>>
> >>>>>If so, what would it mean to say that object O is of conceptual type T
> >>>>>given that T is a unary predicate ?
> >>>>
> >>>>T(O) holds.
> >>>
> >>>What does it mean ? What's the "T(O)" domain of interpratation ?
> >>
> >>All the objects in the universe of discourse that is supposed to be
> >>described by the data model. This set is defined by the modeler, just like
> >>the exact meaning of the predicate in question.
> >
> > If the set/universe of discourse consists of all the objects defined by the
> > modeller, then there is no point in talking about the type since there is
> > only one data type -- the whole universe of discourse.
>

> Are you a buddhist, by any chance? :-) Just because all objects belong
> to a single type doesn't mean we cannot or should not discern subtypes.
>

But that's exactly what you are doing: not discerning subtypes. You just say O is_a_member of T where T is the universe of discourse. So T is the single type unless I am missing something. If I do, please elaborate.

> >>>>>>>Cannot we just use the notion of data type (aka domain) instead ?
> >>>>>>
> >>>>>>We can, with the additional restriction that the elements of the
> >>>>>>domains must have some kind of lexical representation.
> >>>>>
> >>>>>Please define "lexical representation".
> >>>>
> >>>>A finite string over some finite alphabet.
> >>>
> >>>Why do we care about a finite string over some finite alphabet
> >>>representing a value ?
> >>
> >>It ensures that we can show it to the user and the user can enter it via a
> >>keyboard.
> >
> > What's that got to do with a logical model ?

>

> The purpose of a logical model is to describe information that can at
> least in principle be stored and communicated. So objects that cannot be
> communicated should not be in there.

OK, I am not sure what "lexical representation" gives you in addition to the old boring data type notion, e.g. varchar(32). As I said before, what's the use of the finiteness property, in practical, terms if it does not do even what varchar(32) already does ?

>
> -- Jan Hidders
Received on Wed Jul 06 2005 - 15:55:52 CEST

Original text of this message