[
Lists Home |
Date Index |
Thread Index
]
> Hierarchical model had to represent all relationships using
> parent-child. There was no concept of foreign keys. Hence
> redundancy cannot be avoided, if you want to represent m:n
> relationships.
There was never a single definition of the hierarchical data model. Most
writers equated it with the model implemented by the IBM product
variously known as IMS or DL/I. Other writers (incorrectly) use the term
to embrace the network data model (Codasyl) as well.
I was never a fan of hierarchical databases myself (I worked extensively
with Codasyl databases) but the statement that "redundancy cannot be
avoided" is quite wrong. I've just been re-reading the relevant chapter
from Tsichritzis and Lochovsky's "Data Models" (1982) which has an
extensive discussion of the various techniques developed by vendors and
users to support m:n relationships without redundancy: the most
comprehensive solution being "spanning trees" which allowed multiple
hierarchic views over the same data records. And although "foreign keys"
were not part of the model, they were widely used in practice at the
application level (just as they are in XML). The solutions seem rather
ad-hoc (I said I'm not a fan), but it's quite wrong to say that they
don't exist.
It would actually do us no harm as a community to relearn some of this
stuff. XML is hierarchical for a very good reason: it is optimized for
data interchange. Data that is sent from A to B has to be encoded as a
sequence of bits, and hierarchies lend themselves well to such
serialization. This absolutely gives you a design challenge because the
models that you get from your data analysis are graphs rather than
trees. We certainly need a much more mature understanding of the
methodology of translating between the graph object models that come out
of data analysis and the hierarchic representation of these models as
XML, and I would love to see something that gives you the ability to get
multiple hierarchic XML views over the same network data model.
Michael Kay
|