| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Constraints and Functional Dependencies
Marshall wrote:
> mAsterdam wrote:
>> Of course. But then several subthreads (contributions by paul c, >> Cimode and Marshall) would be irrelevant. I am sure Marshall >> would have had the courtesy to point that out.
Take it easy. The posts will still be here next week. Thank you for starting this thread.
>>> If S(b) is actually a shorthand notation for
>>> S(b,b0...bn) then one can express that b is a ck by:
>>> forall b: exists c0,...cn: forall b0...bn:
>>> S(b,b0...bn): b0 = c0 ... bn = cn
>>> Correct?
>> In Marshall's notation that would be
>> (1) {b} -> {b0,...bn} =def=
>> (2) forall S(b, b0,...bn): forall S(b, b0'...bn'):
>> (3) b=b' => b0 = b0' ... bn = bn'
>>
>> I think.
Check.
> Note that for this
> to be a key definition {b, b0, ... bn} must be every
> attribute of S.
!
> This is not the case for the definition of referential integrity
> I posted earlier, in which attribute a of R is restricted to
> values of attribute b of S
>
> forall R(a): exists S(b): a = b
>
> In this case, both R and S may have additional attributes;
> all we're saying is that R projected over a is a subset of
> S projected over b.
>
> Of the three lines I quoted above, line (1) is just the standard
> notation for functional dependencies as best I understand
> it. The "=def=" is also a fairly standard shorthand for
> "is defined to be equal to."
On the blackboard: three horizontal lines above each other, a kind of thick equals sign. Does this (unicode 2261) come through: ≡ or does it look like gibberish?
> In other words, what I was
> doing was *defining* how a functional dependency would
> be encoded into a relvar-range-restricted FOL constraint.
> Lines (2) and (3) are the constraint itself; only these would
> be passed to the system.
>
>
>> Note that for instance "exists c0,...cn:" simply disappears, >> because of >> >>> We can use the existing attribute >>> names as the names of the logic variables. >> , a chosen ambiguity I already pointed out: >> P(a) denotes both 'P has an attribute a' as well as a value for a. >> >> This is just how I understood it. >> To be sure you shouldn't ask me.
Yes, thanks. The only little thing left to do
is to convince DBMS vendors and the SQL
committee that references should not require
keyness at the referenced side :-)
Received on Mon Feb 26 2007 - 17:22:34 CST
![]() |
![]() |