# Re: Is a function a relation?

From: Brian Selzer <brian_at_selzer-software.com>
Date: Tue, 23 Jun 2009 15:32:12 -0400
Message-ID: <05a0m.266\$8r.2_at_nlpi064.nbdc.sbc.com>

"Brian Selzer" <brian_at_selzer-software.com> wrote in message news: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.
>