This is a draft paper about a lightweight data modelling framework that I am developing as a home project, for use in other home projects of mine. It is incomplete; I will be amending it as I find time to write more and as my understanding evolves of what this framework is supposed to do.
Introduction
Every single software project in existence deals in one way or another with data. Some projects have small amounts of data, some have large amounts of data, some even have "big" data. The data almost always exhibit a certain well defined structure, known as the Schema, and the loosely defined term Data Model is used to refer either to the data, or to the schema, or non-specifically to both.
In virtually all cases, the data model is highly application-specific, but many characteristics and operations are common or even ubiquitous across data models.