CS457 Object-Oriented Databases
1 / 21

CS457 Object-Oriented Databases Chapters 21-22 as reference - PowerPoint PPT Presentation

  • Uploaded on

CS457 Object-Oriented Databases Chapters 21-22 as reference. Limitations to the relational model? Examples of applications that will not work well with the relational model?. Shortcomings of DB models for:. CAD/CAM - keep track of 1000's of matching parts and subassemblies

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' CS457 Object-Oriented Databases Chapters 21-22 as reference' - josiah

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

CS457 Object-Oriented Databases

Chapters 21-22 as reference

Shortcomings of db models for
Shortcomings of DB models for:

  • CAD/CAM - keep track of 1000's of matching parts and subassemblies

    • relational inefficient for this

    • object versioning

  • complex market-oriented operations (securities)

  • geographical information systems

  • CASE

  • OA (office automation)

  • multimedia databases

  • WWW

Different because of
Different because of:

  • more complex structures for objects

  • new data types for storing images, text, user defined types

  • nonstandard application specific operations

  • stored procedures (available in some RDBS, such as ORACLE) 

Oodb systems
OODB systems

  • prototypes: ORION, IRIS, ENCORE,

  • Commercial products: Postgres, ObjectStore, Versant, Objectivity/DB, O2, Itasca (commercial version of ORION), Gemstone/Opal, POET


  • Some people felt the word object-oriented is too close to OOPL

  • ODB is more generic

Different approaches to designing odb
Different approaches to designing ODB

1. Applications written in extension of existing OOPL (1st generation OODB)

  • language, compiler, execution environment, etc. extended to incorporate 

    • DB functionality

    • store and manage objects created by OOPL 

  • Selling point - unified programming and DB language but need query optimization, etc. 

    • Gemstone (Smalltalk), Poet (C++)

Designing cont d
Designing cont’d

2. Extend relational DB to include OO features:

  • OID, type hierarchy, inheritance, encapsulation, arbitrary data types, nested objects, etc.

  • Already familiar with DBMS but performance decreased  

  • Postgres - extended Ingres, Oracle

Designing cont d1
Designing cont’d

3. Start entire process from scratch (next generation?)

  • unify relational and OO system  

Object data model
Object Data Model

  • Bring concepts of OOPL into DB systems

    • Object corresponds to real-world object

    • Object is data and behavior, object has attributes and operations

    • Data object has OID - immutable

    • Group data objects into classes - abstract mechanism, share same structure and behavior


Class has:

  • instances

  • methods and data - encapsulation for information hiding - access only through methods

  • composite classes - composed of multiple types

  • nested objects - contains another object

  • complex objects - set of objects      

  • class hierarachy (ISA) – specialization - define new classes from existing ones

  • inheritance of attributes and methods - reuse



  • DBS needs to be computationally complete (Turing)

  • SQL not computationally complete - unless embedded SQL - impedance mismatch, since sets

  • connections with DML and OOPL in ODB more acceptable


Add features such as:

  • concurrency

  • recovery

  • schema evolution

  • Versions

  • What about query language?

  • Performance?


Object identity OID

  • correspondence between real-world and database objects

  • used to refer to objects in application programs and in references between objects (relationships) 

  • unique identity to each independent object

Oid vs primary key
OID vs. primary key

  • identity based vs. value-based

  • unique over entire DB and even over distributed DB (if primary key changes, still same real-world object)

  • immutable - values of OID for object should not change

    - OID not assigned to another object

    - not dependent on any attribute values

    - not use physical address      

  • system generated OID

  • not visible to user


  • All references in cached objects replaced with object's address

  • pointer to other memory resident objects - swizzling

  • saves OID lookup with subsequent references



  • information and operations, structure and behavior

  • implementation hidden

  • define behavior of object using operations

  • object accessible through predefined operations - methods

  • method invoked by sending messages

  • If query on attributes? SQL violates encapsulation

Osql object sql
  OSQL – Object SQL 

  • ODMG has provided standards for ODB just like relational databases.

  • Result is OSQL

Implementation issues
Implementation Issues:

  • composite objects

  • nested - no joins needed

    • path queries instead of joins

  • pointer (OID) to nested object

  • when bring in an object into memory, bring in nested objects as well

  • replace OID with memory address (can't do this in relational)

    • eager and lazy swizzling

  • fast access - memory resident

Placing objects on disk
Placing objects on disk?

  • clustering of objects

    • all of same class together

    • subclass follows superclass

  • nested objects

  • indexes for objects? (just like relations)

Additional topics
Additional topics

  • schema evolution?

  • views?

  • Extended relational

  • Now object-relational

    • Examine Oracle documentation to see how OO features included in 9i

    • Can create both tables and objects