[comp.databases] Ingres 6.3 Object Management Extension

cpl@bhpmrl.oz.au (Paul Lloyd) (08/07/90)

Some weeks back I posted a query re Ingres' Object Management Extension.  I was
basically after someone who may have it, or have trialled it in beta, to pass
on their comments on how it worked and its strengths and weaknesses.  One major
concern that I had was that I had heard that the objects had to be linked into 
the dbms's kernel.  For me this seemed to make it difficult to determine where 
a problem might lie - in the object itself or in the dbms - and I was concerned 
that this confusion may result in a poor, or at least very iffy, software 
maintenance situation.  My responses were meagre, but at least they were 
consistent.  In between time, I have contacted Ingres here in Australia, and 
have done a bit of searching for myself.  I pass on here a summary of my 
findings, with some comments which may be of help to you.  I stress, however, 
that I have no practical experience of this product.

Object Management Extension licence fees are around 50% of the base product's 
fee.  It appears that you have to define your objects and its operators in a 
supported 3GL - I have only seen C mentioned, so far.  For the licence fee you 
get a manual with (I am told) copious examples and the tools to link the new 
object and its operators into the Ingres kernel so that it is recognizable by 
the SQL query analyzer.  In this way you can have your own data types (as 
complex as you can manage?) and the operators to process them just as 
recognizable to SQL as date and time data types are now.  Note that you can 
redefine the standard SQL operators for your object.  In addition to the tools, 
you get the services of a consultant from Ingres who will review your data type 
definitions and operators to ensure that they conform to the Ingres object's 
requirements as given in their manual.  I am not sure whether you can go ahead 
and link your object in without this consultant; it would seem prudent to me to 
avail yourself of this consultancy service since you have paid for it and it 
should be a hedge against problems later.  At present I have no indication of 
how effective the support is, and whether the issue of confusion over sources 
of dbms problems is easily resolvable.

By way of a critique, allow me offer the following comments:
(1)  This product does not make Ingres an object-oriented database (and I think
     Ingres is careful not to suggest this).
(2)  The "objects" you define provide a form of data abstraction and
     encapsulation, but do not have inheritance and (therefore) polymorphism.
(3)  The encapsulation of the "methods" (operators) is not standard practice
     for object-oriented systems.  You, in fact, bind them to the dbms kernel,
     not to the "objects" themselves.  This is tantamount to binding the
     methods to the compiler rather than binding them to the objects in a
     typical object-oriented programming language.
(4)  The placing of the "objects" in the kernel has the distinct advantage of
     allowing those objects and their associated operators to be available
     across all of databases, and hence, across all applications.  The problems
     associated with global data types are generally lower than with global
     data variables in application development.  However, I can see some
     disadvantages in this approach which would require careful management:
     (i) A priority on careful definition of these objects is required so that
         conflicts do not occur where logically similar objects may need
         different definitions in different databases and applications - you
         would need to define them with different names even though one would
         normally use/think of them by the common logical name.  For example,
         one may use a POINT object to represent Cartesian coordinates in one
         system, and Polar coordinates in another.
    (ii) As should always be the case, full and careful documentation of the
         objects and their operators is required, and therefore should only be
         handled by the dbms system manager's staff - you may run into problems
         if you have more than one dba with authority to generate "objects",
         and it should never be offered to "knowledgeable/experienced" users
         without careful supervision and coordination.
(5)  These "objects" do, however, provide a means of implementing the domain
     concept of the relational data model (RDM), and possibly extending it.  In
     this way, Ingres' move seems appropriate as it represents a positive step
     by a RDBMS vendor towards full support for the RDM.  This point is made
     also by Pascal in Database Programming & Design, May 90, p.73.  When this
     is taken in association with their Knowledge Management Extension product
     which supports referential integrity and business rules in the database,
     Ingres is looking quite progressive - where vendors should have been some
     time ago, particularly for decision support applications?

 
While I have made a number of reservations about the approach used by Ingres 
in their Object Management Extension product, I find it attractive and would 
like to explore it further!  However, the price might be prohibitive just at 
the moment, let alone the resources and time to do it justice.  I have no 
idea how this Extension might affect performance.  Can anyone enlighten, or 
add further comment??
--
     /\/\       Paul Lloyd, EDP Systems Superintendent 
    / / /\      BHP Melbourne Research Laboratories
   / / /  \     245 Wellington Rd Mulgrave Vic 3170 AUSTRALIA
  / / / /\ \    Phone   :  +61-3-560-7066 ext:7375
  \ \/ / / /    Fax     :  +61-3-561-6709
   \  / / /     ACSnet  :  cpl@bhpmrl.oz.au
    \/\/\/      Internet:  cpl%bhpmrl.oz.au@uunet.uu.net