Entity Modelling

www.entitymodelling.org - entity modelling introduced from first principles - relational database design theory and practice - dependent type theory


Relational Data Design

The technique of logical ER modelling can be argmented by documenting commutative diagrams of relationships. The additional information makes possible the automatic generation of relational data designs that are in normal form. For anyone following this approach two most immediate benefits are :

  • it is no longer necessary to carry out a normalisation step as part of logical to physical relational database design
  • it is no longer necessary to make a choice between either ditching logical designs after the initial software development stage or expending effort maintaining logical and physical designs in parallel.

This is recent research work and it is ongoing. An early implementation of a logical to physical translator have been implemented in xslt 2.0 and it has been used on its first project.

The early methodology and the background to the approach are described in this draft paper:

Formalising this work has led me to a mathematical description which constitutes an alternative formulation of the by now classical database normaalisation theory. The i's are not dotted yet and the t's not crossed but the gist is described in the following paper which with some debugging of the definitions and with accompanying mathematical proofs to support the assertions should work out:

In using these ideas and accompanying software meta-models and translators to model and code generate a recent project it became apparent that some commuting diagrams of relationships didn't fall into the patterns described in the Part One paper above. It turned out that the the exceptional patterns had simple descriptions in the language of category theory using the category theory notion of a pullback. These patterns are things of beauty I will describe them here in future:

  • Part Three - Advanced Methodology - Pullbacks, Diamonds and Double Diamonds (in preparation)