IBM Skip to main content
  Home     Products & services     Support & downloads     My account  
  Select a country  
Journals Home  
  Systems Journal  
  ·  Current Issue  
  ·  Recent Issues  
  ·  Papers in Progress  
  ·  Search/Index  
  ·  Orders  
  ·  Description  
  ·  Author's Guide  
Journal of Research
and Development
  Staff  
  Contact Us  
Systems Journal  
Volume 35, Number 2, 1996
Object technology
 Table of contents: arrowHTML       arrowCopyright info
   

Storing and using objects in a relational database

by B. Reinwald, T. J. Lehman, H. Pirahesh, and V. Gottemukkala
In today's heterogeneous development environments, application programmers have the responsibility to segment their application data and to store those data in different types of stores. That means relational data will be stored in RDBMSs (relational database management systems), C++ objects in OODBMSs (object-oriented database management systems), SOM (System Object Model) objects in OMG (Object Management Group) persistent stores, and OpenDoc™ or OLE™ (Object Linking and Embedding) compound documents in document files. In addition, application programmers must deal with multiple server systems with different query languages as well as large amounts of heterogeneous data. This paper describes SMRC (shared memory-resident cache), an RDBMS extender that provides the ability to store objects created in external type systems like C++ or SOM in a relational database, coresident with existing relational or other heterogeneous data. Using SMRC, applications can store and retrieve objects via SQL (structured query language), and invoke methods on the objects, without requiring any modifications to the original object definitions. Furthermore, the stored objects fully participate in all the characteristic features of the underlying relational database, e.g., transactions, backup, and authorization. SMRC is implemented on top of IBM's DB2® Common Server for AIX® relational database system and heavily exploits the DB2 user-defined types (UDTs), user-defined functions (UDFs), and large objects (LOBs) technology. In this paper, the C++ type system is used as a sample external type system to exemplify the SMRC approach, i.e., storing C++ objects in relational databases. Similar efforts are required for SOM or OLE objects.