Re: On formal HAS-A definition

From: Tegiri Nenashi <tegirinenashi_at_gmail.com>
Date: Wed, 12 May 2010 09:12:06 -0700 (PDT)
Message-ID: <82734220-268e-4767-83aa-40fd2857d387_at_t34g2000prd.googlegroups.com>


On May 12, 4:31 am, Erwin <e.sm..._at_myonline.be> wrote:
> See for example "Applied
> mathematics for database professionals", which builds on the work from
> the authors' tutor, Bert De Brock.

Page#, please? In foreword Date & Darwen say that there is only one empty relation (when ignoring types). This indicates that by "empty relation" they meant something else, I suspect R00 (aka DUM). I thought standard definition for an empty relation requires it to have empty set of tuples only (with no constraint on the header).

BTW, here is algebraic characterization of an empty relation x

x < R00

that is

x ^ R00 = x

> A body is a set of tuples.  Tuples themselves are a set of ordered
> triples (attributename, typename, value).  For a body to conform to
> the prescriptions of the RM, it is required that in each tuple
> appearing in the body, the set of attributename/typename pairs that
> appear in the tuple is the same.  That set of attributename/typename
> pairs is the heading.
>
> Now there is a view of relations that a relation 'has' both a body and
> a heading, and that the body 'must conform to' the "other component"
> of the relation, i.e. the heading.

I support it. Here is algebraic characterization (Fundamental Decomposition Identity)

x = (x ^ R00) v (x ^ R11)

We can interpret relation x as being [generalized] union of the two parts: the header -- x ^ R00 -- that is relation with empty content, and the body -- x ^ R11 -- which lost all information about attributes.

To lighten up FDI within a more familiar context, here is Boolean Algebra identity (which name escaped me at the moment)

x = (x ^ y) v (x ^ -y)

Given that R00 and R11 are "inverse complements" of each other, that is

R11 = R00`' = R00'`

one can expect that Generalized FDI in the form:

x = (x ^ y) v (x ^ y'`)

and

x = (x ^ y) v (x ^ y`')

and indeed one of them is RL identity (and, curiously, the other one is not!)

> There is another view of relations in that a relation does not 'have'
> a heading as such.  With the consequence that "obtaining the heading"
> can only be achieved by "actually doing the heading extraction
> operation" on the body. That "heading extraction operation"
> consisting of taking each tuple, taking each attribute of such a
> tuple, "projecting away" the value from that attribute, retaining only
> {attributename typename}, adding that set to a pair to form the "tuple
> type" of the tuple under inspection, adding the tuple type so obtained
> to some set (the set of tuple types found in the body), and at the end
> verifying that that set is a singleton (and for the nitpickers : all
> of this is modulo type inheritance issues).

So how exactly is it done for an empty relation? There is no tuples! Received on Wed May 12 2010 - 18:12:06 CEST

Original text of this message