We present techniques for deriving types from existing object-oriented
types using the relational algebraic projection operation and for inf
erring the methods that are applicable to these types. Such type deriv
ation occurs, for example, as a result of defining algebraic views ove
r object types. We refactor the type hierarchy and place the derived t
ypes in the type hierarchy in such a way that the state and behavior o
f existing types remain exactly as before. Our results have applicabil
ity to relational databases extended with object-oriented type systems
and to object-oriented systems that support algebraic operations.