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.