Subject Re: [Firebird-Architect] Call for ideas - CONNECT BY
Author Jim Starkey
paulruizendaal wrote:

>I would welcome all input:
>- Has anybody looked into this before ?
>- Good recommendations as how to implement this ?
>- Who can explain the meaning of the current rsb_types to me ?
> (they don't look very orthogonal ...)
>
>
Absolutely. It's a bad idea that comes bad every decade.

The first large scale database was IMS. Pure hierarchy. Well, that
didn't work, so they made it a screwed up hierarchy with links all
over. It collapsed under its own weight.

The Datacomputer used a hierarchical model. Gave great demos for early
1970's, but otherwise worthless. It did hold the data that the spooks
screened to miss the Indian bomb, though.

The CODASYL, aka network, data model is based on sets (sic) -- linearly
ordered strings of records with a common owner. Lots os repeating
groups. The world most popular database, IDMS, and the world least
popular database, DBMS-11 (IDMS on a PDP-11) were CODASYL databases. So
was VAX DBMS. The minute relational database demonstrates commerciality
the network dbmses were dropped like a pro-terrorist politician.

Datatrieve-11 (2nd version) and VAX Datatrieve both supported repeating
groups. People got really excited when they saw what they could and
really depressed when they learned the ramifications. I put in a
special "flattening join" out of pity. I knew it was a bad idea, but
customers asked for it. I no longer give customers things that I know
they won't like.

It's a bad idea. No, it's a terrible idea. It's easy to implement --
nested for loops, another RSB type, and some hackery in the record
format. I've done it many times on the same architecture and regretted
it each time.

But go ahead. One of the traditions of computer sciences is that nobody
learns from history. You can prototype it in a week, get a production
version in three or four years. Then you get to explain what a bad idea
it was to the next crop of creative young engineers.

Hint: you'll need to put in field grouping first. Don't call it that.
Call it user defined datatypes. User defined datatype are way cool and
field grouping is a discarded idea from COBOL. Then have a magic
variable to control the number of repeating groups, and Bob's your
uncle. Or get fancy and set it up so you can have any number of
repeating groups per record (Hint: the right number is zero).

Formats is going to bite you. Get leather pants.

Another piece of advice: don't use your friends and relatives as the
sample data. It will go into the book and people will giggle for a
decade. "Hey, Robin! Guess what! I just went to a training class and
you and your entire family is in it!" Robin, Ann's cousin, wasn't amused.

It will also give you an opportunity to invent a whole major sublanguage
to stick a new repeating instance between 2 and 3. You can probably
find a Datatrieve manual somewhere that explains one method that people
hate. I know there are more. I don't know of one they don't hate.
Unless they're trying to convince you to implement something to get the
hell away from the thing they currently are using and hate. Like, for
example, Oracle. They hate Oracle and want something just like it so
they can get away from Oracle and have something new to hate.

I'll help, but only if you are willing to rehearse your version of this
speech for the next generation.

Oh, I can explain RSBs, but not tonight.