Transcript Outline

Object-Oriented Databases

   Record-oriented data models are powerful when applied to traditional database applications However in a relational model, – – – – data is organized as a flat tuple the schema are relatively static relationships among data must be explicitly specified as integrity constraints traditional models lack functionality in supporting advanced database applications – CAD/CAM and CIM, Image and graphics, Geographic and scientific, multimedia, documents, etc.

Characteristics and requirements – – – – – complex structures of objects new data types for unstructured data (e.g. BLOB) reactive(endless) activities long-duration (open-ended) activities collaborating (cooperative) activities OO Data models and OO database systems are proposed to address these requirements 1

Systems and Interfaces

 experimental prototypes – ORION (MCC), OpenOODB (Texas Instruments), IRIS(HP), ODE(ATT Bell Labs), ENCORE/ObServer (Brown), ...

 commercial OODB Systems – GEMSTONE/OPAL (Servio Logic), O2 (O2 Technology), ObjectStore (Object Design), ...

 OO Shells or Interfaces – Paradox, Access, ..

2

     

OO Concepts

Concepts are adopted from OO programming languages Object – – – – – is an instance of abstract data type (ADT) hides the internal data structure (information hiding) can be accessed and manipulated by the application using a set of operations specific to the ADT (encapsulations) Objects in programming languages are transient  exist only during program execution Objects in DB are persistent  they are persistent and can be shared by a number of programs Class   collections of objects, either implicitly or explicitly specified contain associated methods, which are algorithms specifying how the objects in that class are to be manipulated Hierarchy  imposes an acyclic graph structure on the set of classes an OODBS supports an interface to one or more OO programming languages providing persistent and shared object capabilities while treating transient and persistent objects uniformly there is no single OO data model. However, there is a set of concepts that an OO data model and OODB must support 3

Example Hierarchies

Documents Museums Image HTML Word Raw text Mac IBM PC Art Science Natural History Smithsonian Metropolitan New York Baltimore Aquarium 4

OO Concepts

(continued)      Object Identifier: a unique and immutable system-wide id (not true with relational data model) – OODB maintains a direct correspondence between real-world and database objects Object structure can be of arbitrary complexity in order to contain all significant information (in relational the information is scattered over many relations) instance variables – – Object internal structure includes the specification of instance variables that hold its state. instance variables could be complex objects themselves type constructors – complex object structures can be constructed by recursively applying a set of basic type constructors such as tuple, set, list, and bag encapsulation – complete encapsulation: only a specific set of predefined operations or functions can be applied on a particular object  assumes object independence  does not permit explicit specification of relationships between objects 5

Objects

    An object is defined as a pair: (id, values) Example : declare b2 values [author = John Smith, url = http://www.somewhere.com/ date_created = (15, Jan, 1999) date_last_modified = (25, Jan, 1999) Types  Record type, Set type, List type Examples: [author: string; url: urltype; date_created: datetype; date_last_modified: datetype] [address: string; director: string; special_exhibits: {string}; affiliated_museums: {Oid_set}] 6

Operations on Objects

 Each operation has two parts – – (1) signature or interface: specifies name and arguments of the operation (externally visible) (2) method or body: specifies the implementation of the operation (externally invisible)  Operations can be invoked by passing a message to an object – objects' internal structure and operations' implementation can be changed without affecting the programs that access them – This provides

encapsulation

7

Types, Class Hierarchy and Inheritance

      Object type: set of allowable values Object class: collection of objects meaningful in an application New types and classes can be specified based on existing ones Inheritance: new types and classes inherit much of the structure and operations from the type/class they are derived incremental development of system data type is supported ability to reuse existing type definitions and implementations 8

Object Definition Language (ODL)

 Simple language within which objects and interfaces can be defined   ODL provides a formal syntax to access the signatures of the objects so that external programs wishing to access/manipulate the object using the methods provided by the object Example : interface html:documents (extent html_documents keys url: persistent { } ); 9

Object Query Language (OQL)

 If Q is expressed in SQL, then Q is also a valid OQL query  SQL queries can access only flat relational tables   In contrast, objects may have a nested structure, as well as include fields that contain collection types - sets, lists, .. OQL facilitates access to such data types Examples : select struct(field1:x.url, field2:x.link) from Word x where x.author = “John Smith” select y.author

from (select x.link

from Word x where x.author = “John Smith”) y 10

Object-Relational Systems

 Relational databases have proved very useful in querying flat data  Is it possible to extend the relational model to handle complex data?

 Yes, The resulting paradigm is object-relational  Example:  Consider a bank relation schema (Fname, Lname, AccType, Trans, Amount, Day) and a crime relation schema (SSN, FirstName, LastName, Conviction, Day)  Suppose we extended both these schemes to include images as follows: (Fname, Lname, AccType, Trans, Amount, Day, PIC) (SSN, FirstName, LastName, Conviction, Day, PIC) 11

Example Continued

      If a customer reports that her ATM card was stolen and she did not make the last withdrawal To verify, the bank needs to look at the surveillance image and see if it is that of the customer If not, the next logical step for the police to perform is to attempt check if there is a match between the image in surveillance record with any image in the crime database This needs execution of the query  “Select all tuples in the crime relation that match the image in customer record” SQL cannot support such query directly because the comparison operator “match” is not supported by a relational database An object db language cannot be used either because the data is not stored in an object-oriented db 12

Object-Relational Scheme

    Object relational scheme: (A1:T1, … An:Tn) where Ai’s are attribute names and Ti’s are objects Example: (Fname:str, Lname:str, AccType:int, Trans:tt, Amount:real, Day:date, PIC:image) (SSN:ssntype, FirstName:str, LastName:str, Conviction:str, Day:date, PIC:image) object conditions  match(image1,image2) > 0.7;  match(image1,image2) > match(image3,image2); Query select Fname,Lname from Crime C, Bank B where match(B.image1,C.PIC) > 0.9

13

Commercial Object-relational Systems

 Informix  offers a variety of datablades for image db, face recognition, audio data handling, document processing, video processing, spatial db  DB2  offers similar features called extenders  Oracle  Sybase  Uni-Sql and Ominiscience employ O-R technology 14