Skip to Main Content
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.
Note: The Institute of Electrical and Electronics Engineers, Incorporated is distributing this Article with permission of the International Business Machines Corporation (IBM) who is the exclusive owner. The recipient of this Article may not assign, sublicense, lease, rent or otherwise transfer, reproduce, prepare derivative works, publicly display or perform, or distribute the Article.