Re: Foreign keys

From: Kira Yamato <kirakun_at_earthlink.net>
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?

-- 

-kira
Received on Wed Jan 16 2008 - 06:09:20 CET

Original text of this message