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