Re: Foreign keys
Date: Wed, 16 Jan 2008 00:09:20 -0500
Message-ID: <2008011600092016807-kirakun@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 Tue Jan 15 2008 - 23:09:20 CST
