As it happens, I completed my PhD 47 years ago, and it was on the subject of mappings between relational data models and network (Codasyl) models. The key conclusion was that it's very easy to do a mapping that supports all the same retrieval queries, but doing a mapping that supports exactly the same set of permitted updates is well nigh impossible. One of the issues here is ordering. As soon as you start representing relationships using primary and foreign keys, you lose any natural way of representing order in the relationship, and if you try to represent order for example by using sequence numbers, then it becomes very hard to allow update primitives like "insert a new item at the start" without also allowing other update primitives that you don't want to allow. Michael Kay Saxonica |