If we examine the advanced database applications that are emerging, we find they make
extensive use of many object-oriented features such as a user-extensible type system,
encapsulation, inheritance, polymorphism, dynamic binding of methods, complex objects
including non-first normal form objects, and object identity. The most obvious way to
remedy the shortcomings of the relational model is to extend the model with these types
of feature. This is the approach that has been taken by many extended relational DBMSs,
although each has implemented different combinations of features. Thus, there is no single
extended relational model; rather, there are a variety of these models, whose characteristics
depend upon the way and the degree to which extensions were made. However, all
the models do share the same basic relational tables and query language, all incorporate some
concept of ‘object’, and some have the ability to store methods (or procedures or triggers)
as well as data in the database