Metasafe - an erDBMS

A few years ago it seemed that the discussion about databases has come to a standstill due to the overwhelming presence of the RDBMS. The situation has dramatically changed with completely new approaches, with new experiments and new requirements. We choose the well known definition of Wikipedia as a point of reference to explain the main points of Metasafe as a DMBS.

The example shows a comparison between a rather physical model (from Wikipedia) and the conceptual model as implemented by Metasafe. It takes only a few minutes to define such a model using the Metasafe metaModeler and to have a fully functional database ready for operation. Then instance data can be imported or entered using metaEditor. Reports can be created with metaEditor or with BIRT to verify if the model is complete.

Metasafe explained with reference to Wikipedia

Wikipedia (definition of a DBMS)

Metasafe – as a DBMS:

W: A database management system (DBMS) is a software package with computer programs that control the creation, maintenance, and the use of a database.

M: Metasafe is such a "software package". The package contains tools beyond the "standard tool set", as e.g. the integrated tools for data modeling and model documentation.

W: It allows organizations to conveniently develop databases for various applications by database administrators (DBAs) and other specialists.

M: The metaModeller allows to conveniently design a data model, including fine grained access rights.
     Data model created –> database is operational. It does not really require a "specialist" to create a Metasafe database. "DBA" is a role defined by access rights.

W: A database is an integrated collection of data records, files, and other database objects.

M: A metasafe database is an integrated collection of data models (Schemas) and instance data.
    Any number of Submodels (Views) can be cloned from the Master model which describes the entire data base.
    The instance level contains an integrated collection of entities and relationships between entities (actually entity manifestations).
    Entities may exist in several manifestations (Revisions, Variants). Entities and relationships have strongly typed attributes, as e.g. string, integer, float, blob, string array etc.
   All types are described by metaattributes as e.g. description, widget, sequence, style.

A DBMS allows different user application programs to concurrently access the same database.

M: Different user programs can concurrently access a Metasafe database via a submodel.
     The submodel defines which subset of the data (entities, relationships, attributes) can be accessed (read, updated) by the program.

W: DBMSs may use a variety of database models, such as the relational model or object model, to conveniently describe and support applications.

M: The Metasafe DMBS uses an extended entity-relationship model as its core model. It is, as Peter Chen once called it an "executable conceptual model".

W: It typically supports query languages, which are in fact high-level programming languages, dedicated database languages that considerably simplify writing database application programs.
       Database languages also simplify the database organization as well as retrieving and presenting information from it.

M: Metasafe supports the erSQL-query language which is directly related to the conceptual model and can be understood and used by end users.
     It provides the facility to navigate in the database along the relationships and collect typed attributes.
     This is in contrast to the (physical) view of "joining" data and retrieving strings.

W: A DBMS provides facilities for controlling data access, enforcing data integrity, managing concurrency control, recovering the database after failures and restoring it from backup files, as well as maintaining database security.

M: Metasafe controls the data access with submodels with fine grained access rights for the model level and the instance level.
     It enforces data integrity: e.g. it rejects the deletion of an entity as long as this entity is still connected by relationships.
    All update operations run under transaction control. Metasafe uses an RDBMS as persistence engine and consequently also the utilities of the underlying RDBMS on the physical level.