In one aspect, a method of storing data includes receiving instances of
data and storing the instances in an entity instance table, allocating a
unique identifier to each instance of data received for storage in the
entity instance table, such that each instance can be uniquely referred
to, and providing a relationship definition table for storing
relationship definitions. Each relationship definition has three data
fields. The method also includes receiving three unique identifiers of
selected instances of data stored in the entity instance table and
storing the three unique identifiers as a relationship definition in the
relationship definition table. A relationship is defined by the unique
identifiers of exactly three instances of data and each of the three
unique identifiers is contained in a respective one of the three data
fields of the relationship definition.