Re: Constraints and Functional Dependencies

From: Cimode <>
Date: 24 Feb 2007 10:17:19 -0800
Message-ID: <>

On 24 fév, 09:01, "Marshall" <> wrote:
> Questions, comments, corrections, criticisms? Anyone have any
> alternate formulas for functional dependencies or candidate
> keys?

> With such a system, a relation R with attribute a (which I will
> write as R(a)) having a as a foreign key into S(b) is expressed
> as follows:
> forall R(a): exists S(b): a = b
> So we can express foreign keys this way.

First: If I apply the above definition, all relations R that have the same values than S will be considered primary key for S. One does not define foreign keys according to other foreign keys values but only to degree one relations.

Consider R, S, P relation with P being the pk of R and S R
a0 a1

1, A
2, A
3, B
4, C

b1 b2

10, A
20, A
30, B
40, C


replaced a by a2 and b by b2

forall R(a2): exists S(b2): a2 = b2 --> Satified for both R and S a foreign key of R: no.

Second reason: the formalism R(a) *may* lead to the confusion between relation variable and attribute...

I prefer the following formalization.

Given Relation R and relation P, the definition of R *including* a foreign key of P

x being a tuple of R,
y being a tuple of S,

for all N degree relation*s* R AND all respective empty sets of R defined as R(0): there exists one and only one 1st-degree S: for all x in R: R(x) /\ S(y) <> R(0)

Additional critiscism coming tomorrow on candidate keys and fd(on next formal expressions) Received on Sat Feb 24 2007 - 19:17:19 CET

Original text of this message