Overview of the CaosDB Entities’ structure

Warning: This overview may be outdated.

Version: 0.1.0r1

Author: Timm Fitschen

Email: timm.fitschen@ds.mpg.de

Date: 2017-12-17

Introduction

CaosDB is a database management system that stores it’s data into Entities. An Entity can be thought of as the equivalent to tables, rows, columns and the tuples that fill the tables of a traditional RDBMS. Entities are not only used to store the data they also define the structure of the data.

Formal Definition

An Entity may have

  • a domain

  • an id

  • a role

  • a name

  • a data type

  • a Set of Values

  • a Set of Properties

  • a Set of Parents

A domain contains an Entity.

An id is an arbitrary string.

A role is an arbitrary string. Especially, it may be one of the following strings:

  • RecordType

  • Record

  • Relation

  • Property

  • File

  • QueryTemplate

  • Domain

  • Unit

  • Rule

  • DataType

  • Remote

A name is an arbitrary string.

A data type contains an Entity. Note: this is not necessarily a Data Type.

Set of Values

A Set of Values is a mapping from a indices to a finite set of Values.

An index is an interval of non-negative integers starting with zero.

Value

A Value may have a data type and/or a unit.

A data type is an Entity. Note: this is not necessarily a Data Type.

A unit is an arbitrary string.

Data Type

A Data Type is an Entity with role DataType.

Reference Data Type

A Reference Data Type is a Data Type. It may have a scope.

A scope contains an Entity.

Collection Data Type

A Collection Data Type is a Data Type. It may have an ordered set of elements.

Record Type

A Record Type is an Entity with role RecordType.

Record

A Record is an Entity with role Record.

Relation

A Relation is an Entity with role Relation.

Property

A Property is an Entity with role Property. It is also refered to as Abstract Property.

File

A File is an Entity with role File.

A File may have

  • a path

  • a size

  • a checksum

A path is an arbitrary string.

A size is a non-negative integer.

A checksum is an ordered pair (method,result).

A method is an arbitrary string.

A result is an arbitrary string.

QueryTemplate

A QueryTemplate is an Entity with role QueryTemplate.

Domain

A Domain is an Entity with role Domain.

Unit

A Unit is an Entity with role Unit.

Rule

A Rule is an Entity with role Rule.

Remote

A Remote is an Entity with role Remote.

Set of Parents

A Set of Parents is a set of Parents.

Parent

A Parent may contain another Entity.

A Parent may have an affiliation.

An affiliation may contain of the following strings:

  • subtyping

  • instantiation

  • membership

  • parthood

  • realization

Set of Properties

A Set of Properties is a tripple (index, set of Implemented Properties, Phrases).

An index is a bijective mapping from an interval of non-negative integer numbers starting with zero to the set of Implemented Properties.

Implemented Property

An Implemented Property contains another Entity.

An Implemented Property may have an importance.

An Implemented Property may have a maximum cardinality.

An Implemented Property may have a minimum cardinality.

An Implemented Property may have an import.

An importance is an arbitrary string. It may contain of the following strings:

  • obligatory

  • recommended

  • suggested

  • fix

A maximum cardinality is a non-negative integer.

A minimum cardinality is a non-negative integer.

An import is an arbitrary string. It may contain of the following strings:

  • fix

  • none

Phrases

Phrases are a mapping from the cartesian product of the index with itself to a predicate.

A predicate is an arbitrary string.