Re: Hierarchical Model and its Relevance in the Relational Model

From: James K. Lowden <jklowden_at_speakeasy.net>
Date: Wed, 28 Jan 2015 21:09:05 -0500
Message-Id: <20150128210905.8a136636.jklowden_at_speakeasy.net>


On Wed, 28 Jan 2015 01:52:59 -0800 (PST) Derek Asirvadem <derek.asirvadem_at_gmail.com> wrote:

Hello Derek,

Thank you. I accept the bait^W invitation. ;-)

> A. ____the Hierarchical Model rests on a theoretical void____
>
> You did not state it, but the implication is, the HM is dead, gone
> the way of the NM. Therefore (again, I paraphrase):
>
> B. ____the HM is dead, it has no relevance wrt the Relational Model___

I accept your paraphrase.

> > ... mathematical exactitude ...
>
> I had a good laugh at that one.

I suspect I wanted "seeming exactitude". We need a complement for "exact" that expresses the same relationship as certainty/certitude.

> Therefore "exactitude" is not a reasonable term to use in the
> existing, evidenced, context. But let's not get distracted.

Fair enough.

> 1. I take issue with your proposal [A]. I charge that it is
> completely and totally false. But that is not as important as the
> implication [B], which is totally and completely false.

Regarding [A], it was Codd's observation. He had to invent the term "hierarchical model" ex post facto to name the thing he was comparing the relational model to. It's not even a "model", though, insofar as it has no mathematical foundation.

He was never so inartful as to put it in so many words, but the argument for the relational model might be boiled down to, "Look, here's math, and there's a set of commonly accepted engineering practices. Which is a better foundation?"

The RM has an algebra and a calculus, as you know. What is the equivalent (or even analog) in the hierarchical model? There is no "graph algebra", no set of operations closed over the domain. Graph theory offers no sets, bears no connection to predicate logic.

What we have in graph theory is a taxonomy and a giant collection of algorithms. I would say that puts it about where biology was before germ theory: a museum of classification and observed behavior.

I wouldn't think that observation controversial on c.d.t.

Regarding [B], I suppose it depends on what we mean by "dead" and "relevance".

> I declare, the Relational Model is not a replacement for, or a
> substitution for the Hierarchical Model; it is a progression of it.

Evidence, please. I can think of no way in which the hierarchical model informs the relational model except as antithesis. Codd contrasted the RM with "noninferential systems", which hardly sounds like a source of inspiration.

I think you will recognize this, from the abstract:

        "Existing noninferential, formatted data systems provide users with tree-structured files or slightly more general network models of the data. In Section 1, inadequacies of these models are discussed."

(I hereby propose that on c.t.d. we refer to this source as RMDLSBD.)

Is the hierarchical model relevant? Not to me. Dead? Not dead enough.

It never dies because it never lived. It's the zombie of database theory, preying on the unsuspecting and eating their brains. IBM still sells IMS, presumably to someone, presumably at a profit. And there's a cadre of Facebook-wannabes who think "graph databases" are the cat's meow for finding out who's within 6 degrees of separation from Kevin Bacon. It would seem that once you introduce the average programmer to a hierarchical filesystem, you can never wean him of the notion that that's the "natural" structure for data.

Returning to your points,

> A. ____the Hierarchical Model rests on a theoretical void____
> B. ____the HM is dead, it has no relevance wrt the Relational Model___

No theory informs the so-called hierarchical model. It is in every way irrelevant as a theoretical database construct. That doesn't prevent many naïve people from believing it has something to offer. Every lousy idea has its ardent supporters.

In trying to fathom why you raised the subject (you being an advocate of the relational model, I would say), I noticed:

> [Implementation of Data Hierachies is] simple for me,
> difficult-to-impossible for those who are victims of the suppression
> of Hierarchies,

among whom I'm included. :-(

I think we could say that assertion is not even wrong.

As you well know, tables can represent graphs, ergo hierarchies. On a few occassions I have implemented them. For example, a SQLite virtual table representing a directory hierarchy (http://www.schemamania.org/sql/sqlite/udf/). Now that SQLite supports recursive queries, you can implement find(1) in SQL, if you like.

So I would appreciate it if you would exclude me from the set of people for whom the concept is "difficult-to-impossible". Please do count me among those who usually find it needless, though.

Representing a hierarchy is one thing, and basing a DBMS on data-as-hierarchy something else. Hierarchies exist. The hierarchical model does not.

--jkl Received on Thu Jan 29 2015 - 03:09:05 CET

Original text of this message