| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: MV and SQL
Hi
Just a few comments imbedded - mostly to endorse Dawn's comments...
dawn wrote:
> Marshall Spight wrote:
> > dawn wrote:
> > >
> > > > and it seems that some of the
> > > > features of a Pick MV system are:
> > > > - dynamically typed data
One of the liberating aspects of the Pick environment. When you start from there you can decide for yourself, as a developer, whether you want to impose your own rules - and exactly what you'd like those rules to be. It all depends on the application. You can also choose not to impose rules - and parameterise things so that users can decide the rules (regarding data types and other things) for themselves by tweaking parameter settings - if it is prudent to allow that. Freedom. Once you get used to it it's oh so hard to give it up. Users tend to like a taste of it too - but then they often get hooked and develop an app of their own.
> > >
> > > Yes, I think that is an accurate term for it. It has a different
> > > approach to typing, or lack thereof, than any other environment I've
> > > been in. Everything is a string and you can convert it for output or
> > > processing to another type (similar to casting it).
> >
> > TCL also works this way. You could perhaps draw some
> > comparisons with Perl, but TCL would be the closest comparable.
> >
OT :- Were you aware that the Terminal Control Language - or TCL - is also the name of the language used at the command prompt in most Pick and Pick-like implementations? UniData - and probably Prime before it - had a number of petty differences to distinguish it from genuine/generic Pick, one of which was to call the MasterDictionary the VOCabulary file, and another was to call TCL ECL. I can't quite remember how they came by ECL - or what it is supposed to stand for. All veteran Pickies can say they "came from" either the generic Pick or the Prime side of the family. I'm from generic Pick and Dawn is from Prime - so maybe Dawn can shed more light on the origin of the name "ECL" and why it was seen to be an improvement on "TCL". There are a lot of little differences like that between implementations - most of which are irritatingly pointless. [Hmm... Almost deleted this paragraph.]
> > Note that "dynamic typing" hasa fairly specific meaning
> > (which I think applies here), which is that type correctness
> > is not pre-checked, but instead checking is deferred
> > until runtime.
>
Did to me. A string is a string is a string. Unless you want it to be something else. ;)
> > Dynamic typing has some significant benefits,
> > the biggest of which is probably getting generic programming
> > "for free" as it were, since all variables are generic. Other
> > advantages are ease of implementation and simplicity. (Consider
> > how complicated Java generics are, for comparison.)
>
>> > code. I believe that the value of this latter thing will only increase
> > Also note that it is harder to realize the advantages of static
> > typing in a client-server world.
> >
> > However, dynamic typing has some downside, as well. (Which
> > is the same thing as saying that static typing has some upside.)
> > Dynamic typing loses the documentary value that type annotations
> > bring. Also, you can't do "typeful programming" where the programmer
> > leans on the type system as a "proof assistant" for writing correct
>
>> > or MV vs. RM, which is that there must be a higher order truth
> > My opinion on the dynamic/static type split continues to be the
> > same as my feeling about other splits, such as RM vs. OOP
>
>> > >
> >
> > > > - persistence of data and procedures/libraries
> > > > - integrated development system
> > > > - portability
> > > > - parsimonious use of computing resources
There's that word again. The old double-edged sword. Wield it with care and it'll be your friend. It's the single most important aspect behind the success of so many Pick applications. It's also the reason many Pick apps are thrown together without a lot of thought and end up absolute garbage - and yet often succeed in spite of their shortcomings.
> >
> > Mmmmm, that's really more of a derived benefit, rather
> > than a feature. (Small point.)
>
>> > > > formal semantics.
> > > > I don't know anything about the "query languages" of these systems and their
The query language in Pick is just that - a query language. No great importance is placed on it. It's just one of a number of tools. No one would ever consider building entire applications around it. Powerful but not omnipotent. SQL is available with Pick as well, but again, it's considered as just another option. Unlike SQL-Relational. A significant difference that - imo.
> > > The LIST statement mentioned in the SOFACards is analogous to the SQL
> > > SELECT. The simple format is
> > >
> > > LIST filename fieldname fieldname
> > >
> > > It does not have only simple tables (rows & columns all populated) as
> > > output, but includes output like the one that will be in the example in
> > > my blog tomorrow.
> >
> > Yah, I really would like to see more *specific examples* of queries
> > from the MV people.
>
>
>
>> > like to have a better idea of what they are. This has been one of
> > and I'd
I recognise that. Many people with a background in, or at least more familiarity with, SQL-relational seem to me to place an inordinate amount of importance on the query language. The seperation between the logical and physical design is apparently demarked by SQL. In Pick there is no such clear-cut demarkation. The layer represented by SQL in an SQL-relational environment is represented by aspects of the application itself in a Pick enviroment. A Pick application consists of every layer from user interface down to IO-handling code. You can write a set of reusable modules once and deploy them with many different apps. Parameterisation then becomes a byword - even though you won't find it in the dictionary. At one end we can choose to use Java or dynamic HTML or VB (old-style) or .Net or... whatever. At the other end we can add all sorts of smarts into the file handling - including a DataAbstractionLayer, our own lock-handling mechanisms to supplement the standard pessimistic lock-handling, our own data publisher-subscriber schema, more levels of nesting than comes as standard with out-of-the-box Pick, integrity checking, anything... It's that freedom thing again.
>
>
>
>
>
>
>
>
>
>> > Note that here we tend mostly to discuss "SQL" without specifying which
> >
> > > > I'm particularly interested if they offer some kind of declarative query
> > > > language.
> > >
> > > Yes. Take a look at the poster at
> > > http://www.tincat-group.com/mv/familytree.html Along the right hand
> > > side are all of the names for this query language that I could find.
> > > Oddly enough, this language is quite consistent across all of these
> > > names, perhaps more standardized than SQL across vendors, although
> > > there is no standards body (there was an attempt at such in the 80's).
> > > Some people just call it ENGLISH, while most call it whatever their
> > > preferred vendor calls it. For example, I use UniData from IBM where I
> > > call it UniQuery and more recently OpenQM from Ladybridge Systems where
> > > I think they call it QMQuery. I think it would be great if I could
> > > refer to it by some one name. I was calling it MV Query, but there is
> > > a product named mvQuery. Ugh.
> >
> > I don't think we care so much about the name; any generic term will do.
>
>> > > > not only the data structures.
> >
> > > > If you want to compare the "data models" you need to compare the LANGUAGES,
I think we need to clarify this. On the one hand you have SQL - which underpins the whole of SQL-relational. On the Pick side you have a completely different toolkit - which includes SQL and the Pick query language - and many more tools, not least significant of which is DataBasic. I know people see the name "DataBasic" and learn that it was based on Dartmouth Basic and that it's a procedural language - and write it off. Don't. It's really very powerful in a Pick context. There's a synergy between the Pick environment and the language developed expressly for use in that environment. When people talk about the productivity of developers in a Pick environment and the rapidity with which they can adapt to changing requirements, they are not talking about the power of the query language (generally) - they are talking about applications written in DataBasic.
> > > Yes, indeed. I'm pretty sure I have a year's worth of blogs just on
> > > topics related to data modeing.
> >
> > You mean, already posted? URL please.
>
>> >
> > > > Some links that might interest you:
> > > > http://en.wikipedia.org/wiki/Plural_quantification
> > > > http://en.wikipedia.org/wiki/Second-order_logic
> > > > http://en.wikipedia.org/wiki/Regular_language
> > >
> > > I'll take a look. I haven't read these yet, but before I look at the
> > > second order language link, I'll note that Monadic Second Order Logic
> > > is provable, so it is not essential that a query language stick with
> > > first order logic.
> >
> > Although I see advantages to having an always-halting query language,
> > I don't consider it a requirement. There might be circumstances where
> > we'd like the additional power and are willing to take on the
> > additional
> > risks. (That risk is pretty small anyway.)
> >
Cheers
Mike.
Received on Tue Jan 17 2006 - 21:04:03 CST
![]() |
![]() |