| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: more closed-world chatter
"Marshall" <marshall.spight_at_gmail.com> wrote in message news:1178846755.641936.72930_at_l77g2000hsb.googlegroups.com...
> On May 10, 4:30 pm, "Brian Selzer" <b..._at_selzer-software.com> wrote:
>
> The definition of join:
>
> R1{a, ab}
> R2{ab,b}
>
> (Here, a, ab, and b are *sets* of attributes)
>
> R1 join R2 =
> {(a, ab, b) | (a, ab) in R1 and (ab,b) in R2}
>
> Note that no type system need be present. Note
> that even if pi_ab(R1) intersect pi_ab(R2) is empty,
> this is still the definition. There isn't any special
> handling for any special cases.
>
>
You're absolutely right. I agree with you. Domains are not types.
>> >> Each and every value must have one and
>> >> only one most specific subtype.
>>
>> > Yeah, everyone says that. It's common point in type
>> > theory. But it's not true in set theory, unless we
>> > consider it in the degenerate case where every
>> > values belong most specifically to the set containing
>> > only itself.
>>
>> > Programming language types are usually expressed as
>> > named sets of values with some common structure, but
>> > neither consideration exists in set theory. I speculate
>> > that we could just use unrestricted axiomatic set theory
>> > instead of type theory, and be able to express much
>> > more sophisticated theorems about source code.
>>
>> > Of course, this comes at a cost in complexity and
>> > decidability, but I think it's worth exploring.
>>
>> I think domains and types are orthogonal. A domains is a set of values,
>> and
>> each value in a domain has a type, but that doesn't mean that every value
>> in
>> a domain must have the same type. If that is a requirement, then it can
>> be
>> stated in the schema.
> > Interesting! >
Indeed. Domains are sets of values; types are sets of constraints.
>
> > It makes perfect sense to me. Can you be more specific about > your objection than "it doesn't make sense." I also mention > that the result *value* will be the same regardless of whether > a has type t1 or t2 in the result. >
After further reflection, I've discovered that you're right: the subtype definition between t1 and t2 indicates that the set of all values that have type t1 is a subset of the set of all values that have type t2. Since t2 defines a larger set of values than t1 does, the dependencies,
a:t2 --> b
a:t2 --> c
would be too broad for the result of the join.
> > Marshall >Received on Thu May 10 2007 - 23:37:45 CDT
![]() |
![]() |