Variables, Elements, and Records
The most basic sub structures in the DBOS are also objects. Depending on the implementation, their existence can not be explicit in the implementation. The recursive aspect of a reflective system shows its implications at this sub structure level. DBOS did not implement these objects as primitive because it is rare that they are used directly, despite their necessity. These three concepts as objects add completeness to the requirement that everything is an object.
Variables are defined as an object that holds a value, and is identified uniquely by an Object/Field pair. For an object and a field, from the class that object belongs, there will be a variable that holds a value. For example: The Person_Class has an Age field. An instance of a person, called Kyle, will have a variable that holds Kyle's age. We can say that Object=Kyle, Field=Age
identifies the variable holding Kyle's age, and that variable has a value of 26. A variable is also commonly known as a "slot".
For each database and each class there exists one, and only one, table that stores the attributes for that class.
Table
=
Database, Class
Each record belongs to a table, and holds some of the variable values of a single object.
Record
=
Object, Table
It is interesting to note that a class can be identified by a Field singleton. This simple relationship is essential for proving relationships between the various types of classes. We use the following identity below:
Field, Class
=
Field
Each element can be uniquely identified by the record it belongs to, and the field it represents. Below we find the direct relationship to variables using Space formalism
Element = Record, Field
= Object, Table
, Field
= Object, Table, Field
= Object, Field, Table
= Object, Field,
Class, Database
= Object, Field, Class, Database
= Object, Field, Database
= Object, Field
, Database
= Variable, Database
For each variable there are many elements that are used to represent that variable. We can see that this is useful because many systems, like RAID, need to keep multiple copies of the same object. This one-to-many relationship is strictly limited by the number of databases.
The relationships shown between records, variables and tables are revealing. They show that the object system completely determines the table system inside a single database. The Database concept adds to an object oriented system and allows the application to handle distributed concepts in a clean way.