Since conceptual models can be implemented in different ways, multiple Data Models can be derived from a single Information Model.
Information model proposals can be split into nine historical epochs:
1. Network (CODASYL): 1970’s
2. Hierarchical (IMS): late 1960’s and 1970’s
3. Relational: 1970’s and early 1980’s
4. Entity-Relationship: 1970’s
5. Extended Relational: 1980’s
The next sections discuss some of these models in more detail.
In 1969, CODASYL (Committee on Data Systems Languages) released its first specification about the network data model. This followed in 1971 and 1973 with specifications for a record-at-a-time data manipulation language.
The hierarchical model organizes its data using a tree structure. The root of the tree is the parent followed by child nodes. A child node cannot have more than one parent, though a parent can have many child nodes.
A Hierarchical model
In a hierarchical model, a collection of named fields with their associated data types is called a record type. Each instance of a record type is forced to obey the data description indicated in the definition of the record type. Some fields in the record type are keys.
The first hierarchical database management system was IMS (Information Management System) released by IBM in 1968. It was originally built as the database for the Apollo space program to land the first humans on the moon. IMS is a very robust database that is still in use today at many companies worldwide.
The relational data model is simple and elegant. It has a solid mathematic foundation based on sets theory and predicate calculus and is the most used data model for databases today.
A threefold proposal:
1. Store the data in a simple data structure (tables)
2. Access it through a high level set-at-a-time Data Manipulation Language (DML)
3. Be independent from physical storage
With a simple data structure, one has a better chance of providing logical data independence. With a high-level language, one can provide a high degree of physical data independence. Therefore, this model allows also for physical storage independence. This was not possible in either IMS or CODASYL.
In the mid 1970’s, Peter Chen proposed the entity-relationship (E-R) data model. This was to be an alternative to the relational, CODASYL, and hierarchical data models. He proposed thinking of a database as a collection of instances of entities. Entities are objects that have an existence independent of any other entities in the database. Entities have attributes, which are the data elements that characterize the entity. One or more of these attributes could be designated to be a key.
Lastly, there could be relationships between entities. Relationships could be 1-to-1, 1-to-n, n-to-1 or m-to-n, depending on how the entities participated in the relationship. Relationships could also have attributes that described the relationship.
The Object-Relational (OR) model is very similar to the relational model; however, it treats every entity as an object (instance of a class), and a relationship as an inheritance. Some features and benefits of an Object-Relational model are:
1. Support for complex, user defined types
2. Object inheritance
3. Extensible objects
Object-Relational databases have the capability to store object relationships in relational form.
Other data models
The last decade has seen a substantial amount of work on semi-structured, semantic and object oriented data models.
XML is ideal to store semi-structured data. XML-based models have gained a lot of popularity in the industry thanks to Web 2.0 and service-oriented architecture (SOA).
Object oriented data models are popular in universities, but have not been widely accepted in the industry; however, object-relational mapping (ORM) tools are available which allow a seamless integration of object-oriented programs with relational databases.