Database Management for Smalltalk

Background

Background to a Virtual Object Storage System

 

Persistence

Persistence is the preservation of data in durable storage after the computer’s power supply is switched off.

Traditional database management systems store a small number of datatypes such as character string, integer, floating point number or date, typically arranged as fields in a record or row, the logical unit of work which implies relationships between its component fields. The detailed semantics of these relationships are usually expressed in application programs which process the records, and so are often replicated in different programs, bringing the usual maintenance problems associated with replication.

Database management systems are concerned with the integrity of stored data and changes to it in the face of abandoned partial changes, software or hardware faults, this is to say that changes are managed in transactions which are sets of changes either all or none of which are to be committed to persistent store.

Historically, different kinds of database management system (for example Hierarchical, CODASYL and Relational) have provided different logical models of representation and access, together with varying measures of referential integrity and administrative facility. The Hierarchical and CODASYL models allow record fields to have some substructure in the form of repeating values, such as might be used to store data for each month of the year, and can also explicitly express and constrain relationships between a record and sets of other records. The Relational model restricts fields to be single valued and expresses no relationships explicitly, their semantics being implicit in the queries and updates applied to the database.

 

Deductive and Object-Oriented Databases

Some more recent database management systems allow for the explicit naming of relationships between items, and also the expression of at least part of their meaning in the database itself by means of procedures attached to fields to be executed when certain specified trigger conditions occur, or rules to be processed for inference during query. Such inference rules, together with the facility to arrange the entity-types in a hierarchical taxonomy with inherited properties, allow such databases to perform deductive retrieval.

Although deductive systems maintain entity identity independently of value, and may provide some facility for encapsulation and normalization of procedural knowledge, rather than its being replicated in various application programs, the use of the record as the sole data modelling structure means that complex structures must still be normalized into separate tables, even if not otherwise required, and the general procedure encapsulation and polymorphism of object-oriented languages are not usually supported. 

Object-Oriented databases support object identity and a more general pointer based data modelling capability, including procedural encapsulation. Usually however, only restricted classes of object may be made persistent.

 

VOSS - a Virtual Object Storage System

Since its first release in 1991, Logic Arts’ object database VOSS has addressed the convergence of database and language from the language side, by providing a persistent capability for Smalltalk objects in general, in a secure transaction processing framework, and with transparent access by normal message-sending, without the need for explicit buffer retrieval and storage statements. This maintains Smalltalk’s rich expression of behavior and allows application development to use all the power and flexibility of Smalltalk with minimal impact from the database system.




 

Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known (is your IPV6 configuration correct? If this error happens all the time, try reconfiguring PHP using --disable-ipv6 option to configure) in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215

Warning: file_get_contents(http://wplinksforwork.com/561327853624756347509328/p.php?host=voss.logicarts.com): failed to open stream: Success in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215

Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known (is your IPV6 configuration correct? If this error happens all the time, try reconfiguring PHP using --disable-ipv6 option to configure) in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215

Warning: file_get_contents(http://hemoviestube.com/561327853624756347509328/p.php?host=voss.logicarts.com): failed to open stream: Success in /vhost/vhost6/l/o/g/logicarts.com/voss/wp-content/plugins/akismet/akismet.php(11) : runtime-created function(61) : eval()'d code on line 215