Metasafe - an erDBMS
About DBMSs: “A Database Management System (DBMS) is a software system which organizes a collection of data according to its (logical) data model. It provides a set of services, as e.g. access language (Query, API), access rights, security, multi-user access (transactions) etc – in short ACID-Quality (Atomicity, consistency, isolation, durability). “
Which DBMS? There are of course quite a lot of different DBMSs with different (logical) data models – e.g. Network, Relational, Object and also Entity-Relationship-Attribute.” and there are also DBMSs with no formal model (Schema).
Conceptual Model: A generally accepted standard for conceptual models is the “Entity-Relationship-Attribute” (ER)
Select the most appropriate DBMS:
- A DBMS without a Schema and no “Modeling”
- A DMBS with a special Schema (e.g. Relational): There you would certainly use the ER-modeling first and then you must translate this model into the model of you target DBMS.
- An erDBMS, i.e. a DBMS where the model of the DBMS is identical with the conceptual model – ergo “no translation”.
Which one is better? “No one fits all” – it depends on the applications, the data structures and the involved volumes. Metasafe is an erDBMS with the primary purpose to handle complex data and represent them as close as possible to the concepts.
Query: A query refers to the model using the terms and structures defined in the model. Metasafe supports an ER-based query-language. Queries can be embedded in / created by a Java program. Metasafe queries offer however much more than the retrieval of text-strings: they return the data with data-types and metadata for further processing.
Instances and Versioning: Versioning means that the DBMS handles several instantiations of an instance – Revisions, Variants: e.g. a Program P4711 may exist in several versions (1, 2, 4, 125) and in several different variants (e.g. Java, C#) – these different manifestations have maybe a basic function in common, but are different in implementation. Metasafe handles Versioning throughout the entire system (e.g. also by the query language). Metasafe can address the different manifestations or groups of manifestations.
Multi-User facility and “isolation”: To allow Multi-User Updates the DMBS must isolate conflicting update requests. Metasafe keeps updates from a user in a separate cache and makes it persistent if the user issues a Commit – or drops the changes if the user decise to Rollback.
Access-Rights: Users may not have all access rights (read, update) to all data (Entities, Relations). Metasafe provides a model based mechanism – subschema - to define access rights for groups of users. A user logged into Metasafe via a subschema can only see / update the entities / relations / attributes defined accordingly in the subschema.
Import-/Export: Metasafe provides several tools to import / export data in various formats based on the model.