Entity Modelling

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

This website is an online book, part written as yet, in which entity modelling and data design, both relational and hierarchical, are described from first principles so as to harmonise with and benefit from mathematical type theory and category theory. It features a new theory of relational design supported by open source software implementing the physical data design transformation and other model transformations accompanied by code generators to support a variety of programming languages.

I give the reader the challenge, as I have given myself, of understanding and articulating entity modelling and the whole business of representation of the world in data from first principles and without reliance, recourse or reference to any particular technology - neither any programming language nor any database system. I wish the reader to be open to the discovery of previously unrecognised patterns of concepts and data in their own areas and of a kind that can be exploited in database design and software development.

Entity modelling is saying what is and *doing so purposefully*— it's a technique and a notation for describing
and communicating *what is* in the
world and we set out to present it here from first principles.
It enables the representation of conceptual models;
its practitioners represent types of entity as labelled boxes and relationships
as annotated connections between boxes:

There is no standard notation for entity modelling - different authors
use different diagramming styles and models are variously known as entity models,
entity-relationship (ER) models or entity relationship attribute (ERA) models.
This site promotes a notation that is an extension of the data modelling notation
used in
the SSADM^{1} software design methodology
and which is described in a book by Richard Barker^{2}. This is sometimes described as the Barker-Ellis notation and
it is used in a number of data modelling tools including Oracle's SQL Developer Data
Modeler.

Compared to the many books, web pages and lecture notes on this subject, key differentiating features of the presentation here are

- we describe concepts from afresh and, as part of the deal, neither rely on nor promote some established terminology which we judge to be not fit for purpose,
- a distinction is made between composition relationships and reference relationships,
- diagrams are laid out top-down,
- there is the concept of the scope of a relationship which is then utilised in data design and code generation,
- database design is right first time — the normalisation step from relational data design is eliminated,
- the pullback concept from category theory is incorporated and feeds into code generation.

These differences in approach represent a significant and valuable^{3}
change from established practice.

Perspective —*
Entity Modelling — An Introductory Perspective*

Tutorial Part One —*
The Entity Modelling Tutorial Part One — Entities, Relationships and Attributes*

Examples One —*
Examples and applications of the notation of Tutorial One*

Tutorial Part Two —*
Entity Modelling Tutorial Part Two - Representing Data*

Blog —*
Data Modelling, Entity Modelling and Logic*

ER Script Software —*
ER Script — Concept to Code*

Theory —*
The mathematics of dependent types, category theory and entity modelling*

The Author —*
About the Author*