As we had more complex real-world problems get created, there needed to be data models that helped represent the real world. During the fourth generation starting in the mid-1980s, the object-oriented and object-object relational data models were used. The object-oriented data model (OODM) stores both the data and the relationships in a single structure within an object. The OODM is the basis of the object-oriented database management system (OODBMS). The OODM has the objects containing the factual content but unlike the relational model, it also contains the information about the relationships between the facts all in the same object so the facts within the objects have greater meaning.
The OODM was based on objects being an abstraction of a real-world entity. In many ways, the object can be equivalent to an entity relationship’s entity. The object more so reflects a single instance of an entity (a record). The attributes describe the properties of the object that contains them. This would be similar to the columns within a table. Objects that have similar characteristics are grouped into classes where they have a shared structure of attributes and behaviors or methods. These methods define a real-world action related to the object. For example, it could be finding an artist’s name or setting the artist’s name within the object. In many ways, they are similar to procedures or functions in other programming languages.
These classes are then organized in a class hierarchy where it resembles an upside-down tree. Each class would have a single parent but a parent can have multiple children. Notice that this is quite similar to the structure in the hierarchical data model.
With more needs to handle complex data representations, object/relational and XML was evolved from the relational model as part of the fifth generation starting in the mid-1990s. Many of the relational model vendors created the extended relational data model (ERDM) as a way to add the OO model features in a simpler relational database structure. This gave birth to a new generation of relational databases that would be able to support object-oriented features like objects. Many of those databases that we see today will fall under this realm to be object/relational.
The Extensible Markup Language (XML) was used as the standard to store and exchange structured, and unstructured data. With O/R databases being able to add support for XML-based documents, it made the use of these files more efficient. Although the relational and object/relational databases do meet most of the current processing needs, there is a new generation of databases that have been emerging to address very specific business criteria.
The emerging data models starting in the 2000s and still growing that we discussed briefly due to big data and NoSQL. These fall under the key-value store and column store examples that we looked at. There are mountains of data that are stored and it’s not always possible to fit some of the unstructured or social media data in the conventional structure of rows and columns. Many of these needs are unique and there isn’t a single solution to meet all of the needs of the organizations with how that data is managed. In the current NoSQL databases, JSON has emerged as a replacement to XML as the main means to store structured and unstructured data.