# Re: Is a function a relation?

From: Brian Selzer <brian_at_selzer-software.com>
Date: Tue, 23 Jun 2009 12:26:16 -0400
Message-ID: <Im70m.1622\$Wj7.1075_at_nlpi065.nbdc.sbc.com>

"Brian Selzer" <brian_at_selzer-software.com> wrote in message news:PX30m.509\$kA.392_at_nlpi068.nbdc.sbc.com...
>
> "David BL" <davidbl_at_iinet.net.au> wrote in message
>> On Jun 23, 1:09 pm, Keith H Duggar <dug..._at_alum.mit.edu> wrote:
>>>
>>> You considered the wrong relation values having the wrong
>>> attribute names. Here are the correct values
>>>
>>> f(x) = x+1 -> { (domain,range) | range = domain + 1 }
>>> g(y) = y+1 -> { (domain,range) | range = domain - 1 }
>>>
>>> corresponding to the f(x) and g(y) you gave.
>>
>> So you're suggesting that a function is a relation where a special
>> convention has been followed in the choice of attribute names? Yes
>> that's one way of looking at it. That would in fact suggest the
>> interesting idea that one can use the RA to define functions. E.g.
>> start with some n-ary relation and use projection to get a binary
>> relation, and rename as required according to this special naming
>> convention.
>
> I think that it is not names but roles. Instead of domain and range,
> think determinant and dependent. A function is a relation that has
> defined in its schema at least one dependent attribute that does not
> belong to all determinants. Put it another way: a function is a relation
> that satisfies at least one nontrivial functional dependency.

After thinking about this for a moment, I realized that I neglected to consider pathological cases, such as relations that are not at least in 3NF. So, with that qualification: a function is a 3NF relation that has defined in its schema at least one dependent attribute that does not belong to all determinants; a function is a 3NF relation that satisfies at least one nontrivial functional dependency. Received on Tue Jun 23 2009 - 18:26:16 CEST

Original text of this message