DB2 supports object orientation, the concept that anything, real or abstract, can be represented in an application as an object that comprises a set of operations and data values. For example, a document can be represented by a document object that comprises document data and operations that can be performed on the document, such as filing, sending, and printing. A video clip can be represented by a video object that comprises video data and operations such as playing the video clip or finding a specific video frame. Like real-world objects, representational objects have attributes. For example, a video object can be given attributes such as compression type and sampling rate.
Objects can be grouped together into types. Objects of the same type have the same attributes and behave in the same way, that is, they are associated with the same operations. For example, if a video type is defined to have a compression type attribute, then all objects of the video type have that attribute. If an object of the video type can be played, then all objects of the video type can be played.
DB2's support for object orientation allows you to store instances of object types in columns of tables, and operate on them by means of functions in SQL statements. For example, you can store video objects in a table column and operate on them using SQL functions. In addition, you can share the attributes and behavior of the stored objects among your applications. All the applications "see" the same set of attributes and behavior for the same object type.
Video objects are typically large and complex. So too are image and audio objects. As part of its support for object orientation, DB2 allows you to store large objects (LOBs) in a database. It also gives you ways to define and manipulate LOBs through user-defined types (UDTs), user-defined functions (UDFs), and triggers.