Object-Oriented DBMS

Recall our Friend, The Relational Model:

 Relational Languages  Other relational goodies


Q: Isn't this heaven?

A1: "A relational database is like a garage that forces you to takeyour car apart and store the pieces in little drawers"
A2: E/R world, set-valued attributes, variances among entities, &SQL limitations (expressive power)
 

OODBMS Goals

  1. Shrink the "impedance mismatch" problem for application programmers
  2. Relax data model limitations
  3. New language features

The OODBMS Manifesto (Atkinson/Bancilhon/DeWitt/Dittrich/Maier/Zdonik, '90)

Thou shalt support:
  1. Complex objects (tuples, sets, bags, arrays + constructors & ops)
  2. Object identity (equal not the same as identical; sharing & updates.  Plutarch's Ship of Theseus)
  3. Encapsulation (ADTs/info hiding/implementation vs. interface)
  4. Class/type hierarchies (inheritance, substitution for specialization)
  5. Late binding (polymorphism, "virtual" classes in C++ terms)
  6. Computational completeness (methods)
  7. Extensibility (system & user types are the same)
  8. Persistence (orthogonal to type)
  9. Secondary storage (large DBs)
  10. Concurrency control
  11. Recovery
  12. Ad hoc query facility (declarative, optimized)
Thou may support:
  1. Multiple inheritance
  2. Type checking (static vs. dynamic up to you)
  3. Distribution (client/server)
  4. Long xacts
  5. Version management
Wide open:
  1. Programming paradigm
  2. Type systems details (base + constructors)
  3. Type system fanciness (e.g. templates, etc.)

ObjectStore

One of the more successful vendors, both commercially and design-wise.Took C++ type system & language constructs, added databasey featuressuch as: Some simple DDL examples to see data model, C++ extensions, "query language", index support.

Still in business (www.odi.com), supporting C++, Java.  Started an XML product called Excelon, and now ExcelonCorp is the "parent" company, ODI the child.
 

Some of the Major Research Themes in OODBMSs

Takeaways