Hi,
It is not easy for me to answer the issues you raise without it
appearing a total cop out. But I will try:)
My view is much, much smarter people than me have been writing about
this subject and advocating it. With very little effect in my view.
Why not try a different approach to the subject matter and by
implication accept the fact that even significant matters will at the
very least be given short shrift, at the very most be ignored (at any
given time). After all I think it can be argued that Bol is a mile
wide and an inch deep. So how do you 'distill', how do you reduce
concepts and ideas to their lowest levels and still convey their
precise meaning in this somewhat challenging material so it will
register with the average Sql Server/Access user?
For better or worse I do not make use of the language of relations,
I not use relvars, tuples or generic types. Though intellectual
significant this language is perceived as the language of a 'theory'
and hence of little 'practical' significance. I do not talk of
or about the TTM prescriptions per se. And as a result of trying
to convey and make simple points I run the risk of making catagorially
incorrect statements, As such as:
'And a type does not exist without a declared variable.'
In the article I had no intention of going into the idea of the generic
types or generators or trying to explain the idea of a type literal.
All your points are of course valid (now that I more clearly understand
what your saying:) The bottom line is that no one could write documentation
alone the lines of bol for this stuff. There is way to much the user
has to infer from basic ideas (for example the use of basic types to
construct more complex types). You must give people the most basic
and simple knowledge to make these inferences of what is valid and
and what isn't. How do you convey this stuff in a 'practical' way to
make people see it as not a bunch of theoretical mumbojumbo. But I am
always open to suggestions:)
Anith is way too atypical for my approach. But how many Aniths do you
think there are? But your nits are always welcome :-)
best,
steve
[quoted text, click to view] "Anith Sen" <anith@bizdatasolutions.com> wrote in message
news:ev7qUrI9HHA.5980@TK2MSFTNGP04.phx.gbl...
> Steve,
>
>>> You seem to be raising the question of which comes first the chicken or
>>> the egg :) I'd prefer to take the most basic common sense approach and
>>> communicate that the variable and its type definition are one construct.
>
> I am focusing on the subtle difference between a scalar type and an
> unencapsulated type ( specifically a tuple type or a relation type ).
>
>>> And a type does not exist without a declared variable.
>
> Are you sure? I would say a variable cannot exist without a type, however
> a type exists independently of any variables. One declares a variable of a
> given type only to associate it with an operation defined on that type --
> obviously possreps and expressions follow.
>
>>> Now 'maybe' your on the subject of instantiating the variable. If so
>>> here's my attempt at it.
>
> No, I am referring to the explicit need for a type generator for tuple and
> relation types which is different from having a declared type built-in.
> Integer does not need a generator, the set of all integers and its
> associated operators exist as they are. On the other hand, relation and
> tuple are generic types with generic operators like UNION, JOIN etc. TTM
> defines it under prescriptions 6 & 7.
>
> Consider two relation variables, A{a, b} and B{x, y, z}. The type of A is
> distinct from the type of B though they are both of the generic nonscalar
> type relation. You'd need the language support to define explicit types
> for A and B so that you can subsequently declare corresponding relation
> variables. Your article did not touch on this point which I thought might
> be important.
>
> However, I do agree that is SQL you have no type generator concept that
> you can apply on tables and hence it may be irrelevant. As you said, the
> type definition and variable declaration in the same construct is the only
> way to go.
>
> --
> Anith
>