Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Constraints and Functional Dependencies
On 24 fév, 09:01, "Marshall" <marshall.spi..._at_gmail.com> 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.
Critisicm.
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.
Proof:
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
S
b1 b2
10, A 20, A 30, B 40, C
P
c
A
B
C
replaced a by a2 and b by b2
forall R(a2): exists S(b2): a2 = b2 --> Satified for both R and P...is 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,
Additional critiscism coming tomorrow on candidate keys and fd(on next formal expressions) Received on Sat Feb 24 2007 - 12:17:19 CST