In this paper we investigate the relation between object identifiers (oid’s), object classification and class change. We give a precise definition of a concept of oid that solves the problems with DB merges and with the representation of historical informati on. We also extensively treat the differences between these oid’s, keys, surrogates and pseudo-oid’s, which are the object identifiers often used in practice. We distinguish object classes from role classes by defining roles (instances of role classes) to be part of the state of objects (instances of object classes). An advantage of distinguishing classes from roles is that we can avoid migration of objects between classes and thus the problems associated with it. Furthermore, we show that roles as well as objects must be represented by globally unique and unchangeable identifiers. As a consequence, there are two distinct taxonomic hierarchies, one for object classes and one for role classes. In both hierarchies, the inheritance mechanism at the instance level is based on identity. There is also inheritance between these two hierarchies, though, and a natural mechanism for this is delegation from roles to objects. Finally, we argue that pure oid’s cannot be implemented in practice, but that they serve a useful purpose as ideal towards which practice should be oriented.
|Name||Technical Report / Faculty of Mathematics and Computer Science|
|Publisher||Free University, Faculty of Mathematics and Computer Science|