Object-oriented features of DB2 client/server

Relational DBMSS (RDBMS) have considerable penetration in the DBMS marketplace where users heavily rely on them for mission-critical applications. Many users of RDBMS are expanding toward nontraditional object-oriented (00) applications, requiring more effective handling of text, voice, image and financial data within RDBMSS. This trend has been accelerated by client/server tools and 4GLs with powerful user interfaces for nontraditional data. Users expect to obtain these new services without compromising the essential industrial-strength features of RDBMSS that they already rely upon. Such features include robustness, high performance, standards compliance and support for open systems (particularly in client/server environments), security, support for utilities (such as loading, reorganizing, etc.), tools for monitoring performance, bulk 1/0 capabilities, and different levels of concurrency and isolation. The next version of DB2 Client/Server will offer extensive, new support for nontraditional applications in addition to its support for traditional ones. Such features include User-Defined Types (UDTS), User-Defined Functions (UDFS), Large OBjects (LOBS), ~onstraints, and triggers. UDTS allow users to define new data types, which are represented in the database using built-in types. A simple example of this is Money, which is represented in decimal and inherits +, – and comparisons from decimal but does not inherit *, UDTS are first-class types, hence, just like built-in types, can be used for columns of tables as well as parameters of functions, including UDFS. One can define a data type such as domicile and define a set of UDFS on it, such as give.directions. These features allow hiding of the representation of the data and provide a set of functions that interpret the data, Users can create function libraries, or buy third party libraries such as FORTRAN scientific libraries, and attach them to the system. Other systems (e.g., text search managers) can be attached to DB2 Client/Server using these features along with triggers. UDFS are first-class expressions in SQL, allowing queries to contain powerful computation and search predicates to filter irrelevant data close to the source of the data. UDFS support full function overloading. UDFS are integrated into query optimization, takhg into account the semantics and execution cost. Clients may have different application language environments, such as C/C++, COBOL “and FORTRAN, while sharing a set of UDTS and UDFS via SQL. LOBS allow storing very large (multi-megabyte) binary or text objects. LOBS are first class built-in types. A set of built-in functions, such as search, substring and concatenation are supported for LOBS. There is an important synergy among the features of the LOBS, UDTS and UDFS. A UDT with complex structure and behavior can be defined as a UDT based on a LOB, with its methods implemented by UDFS. Piecemeal access support allows only the needed portions of LOBS to be transferred to the users. In many applications, materialization of LOBS can be deferred or even avoided using this feature. Constraints and triggers provide active database support, and enhance the power of the 00 features. They can be used to augment object-code-only libraries (whose methods cannot be modified) to support additional, user specific object attributes and constraint checking. They can also be used to enforce inter-object integrity rules. Special mechanisms efficiently enforce constraints when large amounts of data are imported via load utilities. One can extend tuples with new attributes of any type and define UDFS and constraints on them. The system handles this without requiring any expensive physical data change. Views allow formation of many logical collections and collection hierarchies. Open system features include the ability to flow objects across DRDA and ODBC connections. Clients in many different language environments can connect to the system. Data originating in environments such as C/C++, 4GLs, OMG and SOM can be stored, allowing exploitation of powerful language libraries within SQL. The 00 extensions to DB2 Client/Server benefit from the long experience of this product family in the marketplace, and the tremendous effort that has gone into its seven years of development. The result is a high quality and stable product with 00 features, fully integrated with its industrial-strength traditional application support.