Historical Development of Databases (Cont.)


Third Generation (since mid 1990s)
Object-oriented, object-relational, and extended-relational databases aim at an appropriate integration of programming languages and databases. The object-oriented data model does not need to follow the first normal form rule of the relational model: A table cell must contain a single, unstructured value.
Object-oriented data model
It includes two kinds of databases: (i) object-oriented databases and (ii) object-relational databases.

Object-oriented databases (Jasmine, GemStone, ...)
It is a system offering DBMS facilities in an object-oriented programming environment. Data is stored as objects and can be interpreted only using the methods specified by its class. For example, a relational query to know whether an employee named Pokemon is employed in the Detroit subsidiary of the Ford company is
  SELECT  EmplNo
    FROM  Company, Subsidiary, SubsEmpl, Employee
    WHERE  Company.Name = 'Ford'
       AND  Company.CompanyID = Subsidiary.CompanyID
       AND  Subsidiary.Location = 'Detroit'
       AND  Subsidiary.CompanyID = SubsEmpl.CompanyID
       AND  Subsidiary.NameSubs = SubsEmpl.NameSubs
       AND  SubsEmpl.Empl = Employee.EmplNo
       AND  Employee.Name = 'Pokemon';
This query could be stated in an object-oriented adaptation of SQL using path expressions:
  select  e
    from  e in Employee, c in Company, s in Subsidiary
    where  c.Name = 'Ford' and
           s in c.Subsidiaries and
           s.Office.Location = 'Detroit' and
           e in s.Employees and
           e.Name = 'Pokemon';



      Never argue with a fool, they will lower you to their level,    
      and then beat you with experience.