Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> comp.databases.theory -> Re: abnormal forms
paul c wrote:
> Bob Badour wrote:
>
>> ... >> Asssuming that sva means an attribute with any type not a relation, an >> rva and an sva have different types. One is a relation and the other >> isn't. Thus one can never express an rva as an sva, and cardinality is >> meaningless for a generic sva.
I assume by relation you mean relation variable.
> 1. SP{{S},P} with value
>
> {S} P
> ---- -
> {1,2} 1
>
> is this relationally comparable to
>
> 2. SP{{S},P} with value
>
> {S} P
> ---- -
> {1} 1
> {2} 1
>
> ?
If you mean 'comparable' in the sense of the relational equality operator that compares two relations for equality, then the answer is yes. The result of the comparison is false.
> and is it relationally comparable to
>
> 3. SP{S,P} with value
>
> S P
> = - (where the '=' underscore means S is a 'key')
> 1 1
> 2 1
>
> ?
That would depend on the definition of the equality operator. Because the two relations have different types, the equality operator can either return false or cause a compile-time error.
I further note that with your explanation of the = underscore, your earlier examples are not relation variables at all. #1 might be a relation variable with an empty candidate key, but #2 certainly is not a relation variable at all.
> By 'relationally comparable' I guess I mean logically equivalent in a
> narrow sense of being susceptible to the relops without inferring any
> more from whatever predicate is chosen on a tuple-by-tuple basis. For
> example, unknown to a RDBMS, in the mind of a user, a predicate might
> have disjunctive connectors, such as "or". And it might not.
If such a simple predicate exists in the mind of the user but not in the catalog of the DBMS, one or both is incorrect.
Legitimate constraints amenable to symbolic representation using predicate calculus are properly handled by declaration to the dbms or by derivation by the dbms.
> I'd like to be able to say that #2 and #3 are equivalent in this sense
> even though #2 is talking about S being sets and #3 is talking about S
> being single values.
Two is derivable from one using operations defined on natural numbers. That does not make two equivalent to one. In the cases you mention above, each at first glance appears derivable from the others using the relational algebra or calculus. However, the relations are not equivalent no matter how much you would like to be able to say they are.
To decide whether one can even derive one from the others, one has to consider the whole predicate of each and whether the derived predicate matches the original.
> For sure, #3 is in a kind of canonical form as
> far as Codd was concerned.
I disagree that #3 is a canonical form of either #1 or #2. Both #1 and #2 allow {{},1} but #3 does not.
Assuming that the rest of your post is based upon the misconceptions already addressed above, I stopped reading. Received on Thu Apr 20 2006 - 15:23:53 CDT