Re: Foreign keys
Date: Wed, 16 Jan 2008 00:09:20 -0500
Message-ID: <2008011600092016807-kirakun_at_earthlinknet>
On 2008-01-15 22:05:24 -0500, "Brian Selzer" <brian_at_selzer-software.com> said:
>
> "Kira Yamato" <kirakun_at_earthlink.net> wrote in message
> news:2008011514331750073-kirakun_at_earthlinknet...
>> On 2008-01-15 14:16:32 -0500, "Brian Selzer" <brian_at_selzer-software.com>
>> said:
>>
>>>
>>> "Kira Yamato" <kirakun_at_earthlink.net> wrote in message
>>> news:2008011512561916807-kirakun_at_earthlinknet...
>>>> On 2008-01-15 11:51:43 -0500, "Brian Selzer" <brian_at_selzer-software.com>
>>>> said:
>>>>
>>>>>
>>>>> "Kira Yamato" <kirakun_at_earthlink.net> wrote in message
>>>>> news:2008011510320716807-kirakun_at_earthlinknet...
>>>>>> On 2008-01-15 04:37:23 -0500, "Brian Selzer"
>>>>>> <brian_at_selzer-software.com>
>>>>>> said:
>>>>>>
>>>>>>>
>>>>>>> "Kira Yamato" <kirakun_at_earthlink.net> wrote in message
>>>>>>> news:2008011502240916807-kirakun_at_earthlinknet...
>>>>>>>> On 2008-01-14 21:18:57 -0500, "Evan Keel" <evankeel_at_sbcglobal.net>
>>>>>>>> said:
>>>>>>>>
>>>>>>>>> [...]
>>> What if
>>> both the determinant and the dependent draw their values from the same
>>> domain? For example, EmployeeId --> ManagerId, since managers are also
>>> employees.
>>
>> What about it? How does that require surjectivity on the domain of
>> PartNo?
>>
>> Conceivably, the domain of PartNo would include all possible integers.
>> But the relation will not necessarily have all tuples where *every*
>> possible values of PartNo are in some tuple of the relation.
>>
>
> I think you're confusing what is possible and what is actual. What is
> represented by the domains and the intension of a database specifies /what
> can be/, but due to the domain closure assumption, what is represented by
> values in the extension of a database states /what is/. A functional
> dependency does not limit the possible values in each domain: it instead
> controls which combinations of values are possible. Lets take that one step
> further, a functional dependency A --> B does not directly limit the
> possible values for A or for B; instead it limits the possible combinations
> of values for A and B.
So, a functional dependency does not limit the possible values in each domain. Ok.
Rather, it limits the possible combinations of A x B. Ok.
> Since A --> B only limits AB combinations, then for
> each value for B there must be at least one value for A, otherwise there
> wouldn't be an AB combination, would there?
I still don't see the surjectivity requirement.
In mathematics, a function is not necessarily surjective. For example, let R be the set of real numbers. Then the function
f : R --> R
defined by
f(x) = x^2
is not a surjective function because f(x) can never be a negative number.
In relational algebra, say I have a relation Person(Name, Age). Then there is functional dependency
Name --> Age.
Now, the domain for Age can be any non-negative integer. However, the
extensional relation will not have a tuple for every possible value of
Age.
Are you saying that Name --> Age is not a functional dependency because it is not surjective?
-- -kiraReceived on Wed Jan 16 2008 - 06:09:20 CET