til a long time after their initialimplementation. For this reason it should be possible to do the following: the old data shouldnot be overridden by new ones but should be kept and coexist as older versions of the sameobject and not as independent objects; and in case of schema changes, the data thatcorrespond to previous schemas should not be thrown away but should evolve following theschema evolution.There is a set of features, finally, for which the designers can choose among differentimplementations that are not equivalent, but they have certain advantages anddisadvantages. There are plenty of programming models (C++, Lisp, Smalltalk, etc.), butnone of them should be considered better than the others. The designers choose theprogramming model of their system according to the kind of applications that the system isgoing to serve. The choice of the programming style is open as well. The one that bettersuits the applications should be chosen. The representation system is the set of the types orclasses provided by the system as well as the set of constructors that can be applied onthese classes. As long as the system provides support for extensibility and compositeobjects, there is no restriction of which member the representation should contain. There aresystems that support the highest degree of uniformity, which means that everything in thesystem including classes, methods, messages, etc. is treated as an object. Uniformity hasconsequences at the level of the implementation of the system and at the level of theapplication programming and the user interface as well. Although uniformity is a nice featureand simplifies the implementation of the system, it can sometimes confuse the users since inreality there is no absolute uniformity.The design of the relational database system and the mechanisms that they use have beenmathematically founded. Most of them are the result of long research periods that lead to thesuccessful solving of the...