dbTalk Databases Forums  

header part of the value?

comp.databases.theory comp.databases.theory


Discuss header part of the value? in the comp.databases.theory forum.



Reply
 
Thread Tools Display Modes
  #341  
Old   
Jan Hidders
 
Posts: n/a

Default Re: header part of the value? - 03-02-2008 , 02:08 PM






On 29 feb, 15:49, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote:
Quote:
On Feb 29, 1:23 am, Jan Hidders <hidd... (AT) gmail (DOT) com> wrote:



On 29 feb, 08:02, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote:
On Feb 27, 11:56 pm, Jan Hidders <hidd... (AT) gmail (DOT) com> wrote:
On 24 feb, 19:48, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote:

Occasionally the question has come up as to whether a
relation value is the body, or the body+the header. In the past
I've sided with the just-the-body approach, but today I decided
that I don't think that anymore.

Consider the algorithm to perform a natural join on two
relation values. Just values: not tables in a database
with a known schema or whatever. Just two plain relation
values. The natural join specification *requires* the header;
it is defined (in part) in terms of the header. So the header
must be part of the value.

That is not correct. The natural join can be defined without referring
to the header.

I am skeptical, however my intuition is that we might not be
speaking the same language here.

Natural join is defined to be an equijoin on pairs of attributes
in each operand with the same name, yes?

Depends on your definition of equijoin. The natural join leaves only
one of the homonymous columns, equijoins do not under all definitions
do that.

Sure.

So how do you
know which attributes have the same name without access
to the header? How do you even know that there *are*
attributes, without the header?

Since we are working in the named perspective, they are included in
the tuples. I'm frankly a bit surprised that I have to point this out
to you. See the standard definitions in the Alice book.

This point was addressed earlier in the thread. My perspective
is that if you are going to say you can produce the header
by examining the tuples, and the tuples are part of the
relation, then if you have the tuples you have the header:
header-is-part-of-value.
I'm not sure how you mean this exactly. If the relation is empty, i.e,
there are no tuples, then you cannot derive the header from that empty
set. That's why for the relational lattice, where you really need the
header to define the semantics, you cannot get around defining
relations formally as consisting of both a separate header and a body
that contains a set of tuples.

-- Jan Hidders


Reply With Quote
  #342  
Old   
Jan Hidders
 
Posts: n/a

Default Re: header part of the value? - 03-02-2008 , 02:08 PM






On 29 feb, 15:49, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote:
Quote:
On Feb 29, 1:23 am, Jan Hidders <hidd... (AT) gmail (DOT) com> wrote:



On 29 feb, 08:02, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote:
On Feb 27, 11:56 pm, Jan Hidders <hidd... (AT) gmail (DOT) com> wrote:
On 24 feb, 19:48, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote:

Occasionally the question has come up as to whether a
relation value is the body, or the body+the header. In the past
I've sided with the just-the-body approach, but today I decided
that I don't think that anymore.

Consider the algorithm to perform a natural join on two
relation values. Just values: not tables in a database
with a known schema or whatever. Just two plain relation
values. The natural join specification *requires* the header;
it is defined (in part) in terms of the header. So the header
must be part of the value.

That is not correct. The natural join can be defined without referring
to the header.

I am skeptical, however my intuition is that we might not be
speaking the same language here.

Natural join is defined to be an equijoin on pairs of attributes
in each operand with the same name, yes?

Depends on your definition of equijoin. The natural join leaves only
one of the homonymous columns, equijoins do not under all definitions
do that.

Sure.

So how do you
know which attributes have the same name without access
to the header? How do you even know that there *are*
attributes, without the header?

Since we are working in the named perspective, they are included in
the tuples. I'm frankly a bit surprised that I have to point this out
to you. See the standard definitions in the Alice book.

This point was addressed earlier in the thread. My perspective
is that if you are going to say you can produce the header
by examining the tuples, and the tuples are part of the
relation, then if you have the tuples you have the header:
header-is-part-of-value.
I'm not sure how you mean this exactly. If the relation is empty, i.e,
there are no tuples, then you cannot derive the header from that empty
set. That's why for the relational lattice, where you really need the
header to define the semantics, you cannot get around defining
relations formally as consisting of both a separate header and a body
that contains a set of tuples.

-- Jan Hidders


Reply With Quote
  #343  
Old   
Jan Hidders
 
Posts: n/a

Default Re: header part of the value? - 03-02-2008 , 02:08 PM



On 29 feb, 15:49, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote:
Quote:
On Feb 29, 1:23 am, Jan Hidders <hidd... (AT) gmail (DOT) com> wrote:



On 29 feb, 08:02, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote:
On Feb 27, 11:56 pm, Jan Hidders <hidd... (AT) gmail (DOT) com> wrote:
On 24 feb, 19:48, Marshall <marshall.spi... (AT) gmail (DOT) com> wrote:

Occasionally the question has come up as to whether a
relation value is the body, or the body+the header. In the past
I've sided with the just-the-body approach, but today I decided
that I don't think that anymore.

Consider the algorithm to perform a natural join on two
relation values. Just values: not tables in a database
with a known schema or whatever. Just two plain relation
values. The natural join specification *requires* the header;
it is defined (in part) in terms of the header. So the header
must be part of the value.

That is not correct. The natural join can be defined without referring
to the header.

I am skeptical, however my intuition is that we might not be
speaking the same language here.

Natural join is defined to be an equijoin on pairs of attributes
in each operand with the same name, yes?

Depends on your definition of equijoin. The natural join leaves only
one of the homonymous columns, equijoins do not under all definitions
do that.

Sure.

So how do you
know which attributes have the same name without access
to the header? How do you even know that there *are*
attributes, without the header?

Since we are working in the named perspective, they are included in
the tuples. I'm frankly a bit surprised that I have to point this out
to you. See the standard definitions in the Alice book.

This point was addressed earlier in the thread. My perspective
is that if you are going to say you can produce the header
by examining the tuples, and the tuples are part of the
relation, then if you have the tuples you have the header:
header-is-part-of-value.
I'm not sure how you mean this exactly. If the relation is empty, i.e,
there are no tuples, then you cannot derive the header from that empty
set. That's why for the relational lattice, where you really need the
header to define the semantics, you cannot get around defining
relations formally as consisting of both a separate header and a body
that contains a set of tuples.

-- Jan Hidders


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.