Re: On formal HAS-A definition
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.
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