3.3. OODB

In this lecture we look at...
[Section notes PDF 34Kb]

3.3.01. Introduction

  • Database architectures, beyond
  • Why OODBMS?
  • ObjectStore
  • CORBA object distribution standard

3.3.02. Large DBMS

  • Complex entity fragmentation
    • across many relations
  • Breaks the miniworld-realworld dichotomy
  • Requires conceptual abstracting layer
  • Difficult to retrieve all information for x
  • Compounded by version control

3.3.03. Object orientation

  • Object components (icv triples)
    • Object Identity (OID), I
      • replaces primary key
    • Type constructor, c
      • how the object state is constructed from sub-comp
      • e.g. atom, tuple (struct), set, list, bag, array
    • Object state, v
    • Object behaviour/action

3.3.04. Desirable features

  • Encapsulation
    • Abstract data types
    • Information hiding
  • Object classes and behavior
    • Defined by operations (methods)
  • Inheritance and hierarchies
  • Strong typing (no illegal casting)
    • don’t think about inheritance just yet

3.3.05. Desirable features

  • Persistence
    • Objects exist after termination
    • Naming and reachability mechanism
    • Late binding in Java
  • Performance
    • user-def functions executed on server, not client
  • Extension into relational model
    • Domains of objects, not just values
    • Domain hierarchies etc.

3.3.06. Desirable features

  • Polymorphism
    • aka. operator overloading
    • same method name/symbol
    • multiple implementations
  • Easy link to Programming languages
    • popular OO language like Java/C++
    • Better than PL/SQL integration
    • Much better than PL-JDBC integration!
  • Highly suitable for multimedia data

3.3.07. Undesirable features

  • Object Ids
    • Artificial Real-Mini, double edged sword
    • Exposes inner workings (suspended abstraction)
  • Lack of integrity constraints
  • No concept of normalisation/forms
  • Extreme encapsulation
    • e.g. creation of many accessor/mutator methods
  • Lack of (better) standardisation

3.3.08. More undesirables

  • Originally no mechanism for specifying
  • relationships between objects
  • In RDBMS – relationships are tuples
  • In OODBMS – relationships should be properties of objects

3.3.09. ObjectStore

  • Packages supporting Java or C++
  • C++ package uses:
    • C++ class definition for DDL
    • insert(e), remove(e) and create collections, for DML
  • Bidirectional relationship facility
  • Persistency transparency
    • Identical pointers to persistent and transient objects

3.3.10. CORBA

  • Common Object Request Broker Architecture
  • Object communication (unifying paradigm)
    • Distributed
    • Heterogeneous
    • Network, OS and language transparency
  • Java implementation org.omg.CORBA
  • Also C, C++, ADA, SMALLTALK