Google Web www.tincat-group.com

mewsings, a blog

--dawn

← Previous   Next →

Tuesday, February 28, 2006

The LIST of GIRLS

Dick Pick and Don Nelson

The Relational Model (RM) is neither necessary (see The Naked Model) nor sufficient (see Don't Suffer Impedance). That said, it is useful. There are pros and cons to employing it. In order to be able to compare its usefulness to that of tools based on approaches other than the RM, we need to know what else is out there. This mewsing is not an opinion piece, but includes some things old, some things new, some things borrowed, and some things blue (Big Blue, that is).

GIRLS stands for Generalized Information Retrieval Language & System

While I plan to talk about a variety of possibilities in the future and am particularly curious about the future of XML-DBMS tools, the RM alternative with which I have the most direct experience is the MultiValue or PICK data model. I'll start there with a couple of blog entries.

Codd's papers, including the pdf version of his 1970 paper, are readily available on the web. That is not the case with early papers related to the Nelson-Pick data model. Although my source materials are not-always-easy-to-read copies and my scan, resize, and Adobe skills also leave room for improvement, I spent my time allocated for this mewsing to turn two historical papers into pdfs. I think these papers are available only from this site, but if anyone knows of other sources, please inform me as I would be happy to point to better versions of them. I also provide a link below to Don Nelson's resume, which indicates that he worked under F. George Steele, who invented and developed the Digital Differential Analyzer. After studying under Steele, Nelson developed the GIRLS and GIM-1 specifications at TRW.

What is your preference, GIRLS or SQL?

You might have noticed that GIRLS stands for Generalized Information Retrieval Language & System. Many flavors of Pick have been developed over the years, as indicated in the MultiValue Family Tree poster. Unlike SQL, which has a single name covering many different implementations, GIRLS has had almost as many names as implementations. GIRLS has been named UniQuery, ENGLISH, FRENCH, AQL, ACCESS, Info/Access, jQL, RetrieVe, Vision, RECALL, QMQuery, CMQL, queryON, R/LIST, and INFORM. Current implementations of GIRLS are available from many different vendors, most (all?) of which are listed here, ordered by a complex algorithm.

What is your preference, GIRLS or SQL? There are many differences between them, but I'll save that discussion for next time and just mention a few right now. GIRLS can perform queries with data that is in NF2 (non-1NF), it employs a two-valued logic (no SQL NULLS), and in place of the SELECT of SQL is the LIST of GIRLS.

← Previous   Next →

7 Comments:

At 11:54 AM, March 02, 2006 , Anonymous John Bohner said...

Dawn,

Very attractive presentation. Thank you for the work that has obviously gone into this.

John Bohner

 
At 3:09 PM, March 02, 2006 , Blogger Captain Mike said...

In my experience (most of it with Pick and derivative databases), I've never gotten a Cartesian Product with RECALL, ACCESS, ENGLISH, UNIQUERY, etc. but I've seen it happen more than a few times with SQL.

Nice blog.

 
At 10:04 PM, March 02, 2006 , Blogger --dawn said...

Thanks john & captain mike.

I look forward to someday having your historical collection, including a lot of F. George Steele papers and early hardware, see the light of day, John. Thanks for answering my questions about Steele and Nelson and for getting Nelson's resume online.

And captain, love the picture. You are absolutely right about those cross-product issues that make their way into the life of anyone working with SQL and are nowhere in sight when using those products that are based on GIRLS. I'm working on writing up some differences between SQL and GIRLS right now. It can be a challenge to explain either one of these languages to someone who only knows the other. They look similar, but have significant differences such as joins (set processing) vs links (navigation).

Cheers! --dawn

 
At 2:42 PM, March 11, 2006 , Blogger LouieInSeattle said...

If I had ever had a math teacher explain "Cartesian Product" like this, I might have actually enjoyed the subject:

http://en.wikipedia.org/wiki/Cartesian_product

 
At 2:54 PM, March 11, 2006 , Blogger --dawn said...

Hi Louie -- I'm apparently not being very creative right now as I cannot think how otherwise one would define a cartesian product. Clue me in if you can.

One way to state a difference between GIRLS and SQL is that you never think in terms of cross-products with GIRLS, but SQL JOINS commonplace for SQL queries and JOINS are cross-products hopefully properly restricted to a subset of rows/tuples.

Cheers! --dawn

 
At 3:34 PM, March 11, 2006 , Blogger LouieInSeattle said...

I was referring to the example in Wikipedia where the Cartesian Product of A K Q J 10...2 and 4 symbols makes a deck of poker cards. As an English major, but an avid pinochle player, I appreciate examples like that. The definition on http://mathworld.wolfram.com/CartesianProduct.html was pure gobbledygoook.

 
At 3:44 PM, March 11, 2006 , Blogger --dawn said...

Ah, very good. And if you are the Louie in Seattle for whom I'm doing a talk in June, then perhaps some pinochle would be in order as that is one of my games too. Cheers! --dawn

 

Post a Comment

<< Home

Litter Box

Paw through past Mewsings, a blog about software development, with a focus on data modeling.


Atom feed