Object-oriented programming (especially in Java, C++, or C#) has become the dominant software-development methodology.
This led to the development of an object-oriented data model that can be seen as extending the E-R model with notions of encapsulation, methods (functions), and object identity. The object-relational data model combines features of the object-oriented data model and relational data model.