forthe construction of such a system. These should also be used as the set of features that onehas to check in order to find out if a system is really an OODBMS. The features of theOODBMS can be divided as follows: mandatory features: these are the features that one system should have in order to deservethe title OODBMS. optional features: these are the features that if one system has, should be consideredbetter than another that does not have them, provided that both have all the mandatoryfeatures. open choices: these are features that a designer of a system can choose if and how toimplement. They represent the degrees of freedom left to the system designers.An OODBMS should be a database management system and at the same time an objectoriented system. The first characteristic is translated to the following features: persistence,concurrency, recovery, secondary storage management, and ad hoc query mechanisms. Thesecond characteristic is translated to the following: composite objects, object-identity,encapsulation, inheritance overriding and late binding, extensibility, and computationalcompleteness of the database language used.Composite objects can be built recursively from simpler ones by applying constructors tothem. These simpler objects can be integers, characters, strings, booleans, and in generalobjects of types that all the programming languages possess. There are various constructorssuch as list, set, bag, array, tuple, etc. The minimal set of constructors that a system musthave is: set (to represent unordered collections of real world objects), list (to representordered collections of real world objects), tuple (to represent properties of real worldobjects). A system that supports composite objects and therefore constructors for theirbuilding, should also support operators for the retrieval, insertion, and deletion of theircomponent objects. That means that the database language should be extended in a waythat these operat...