The object manager will enforce consistency of data in the database and provide appropriate error messages if the user tries to do anything that will render data inconsistent. Security restrictions normal prevent users from gratuitously changing schemas, particularly the metaschema. Nevertheless, in some applications it is important to be able to dynamically create, destroy, and update schemas, as well as object instances, even in multiuser environments. Matisse supports this. Matisse maintains versions of all objects, including schemas.
Users can see a consistent view of any historical state of the database.
All objects in Matisse have a unique immutable identifier and know what type they are. This includes metaclasses, class schemas, and object instances. The next release of Matisse with support ANSI SQL92 with object extensions. The evolving SQL3 specification will be fully supported as it stabilizes. The Matisse API is a set of C library functions that can be bound into any language that supports an external C function call.