RDB – OODB - ORDB Comparison
RDB Simple data model (but less versatile) Simpler for user to learn (OO programmer?) Easier to optimize (for simple access?) Strong market-share (inertia of change)
ORDB – OODB Similarities Similar OO type system ambitions: Objects/OIDs Methods ADTs Constructed types Inheritance Object-QL
Advantages of Adding OO Richer Data Types Simplify DB design Simplify query specification Reusability of code (more natural to OO programmer) No impedance mismatch
ORDB OODB ADT Optional / mixed (also key) Uniformally enforced methods Externally def. Methods; register executable One pure OO language; Seamless with PL QL SQL3 moving target ODMG OQL stable SQL3 : 300 pages OQL : 3 pages SQL3 : one standard? OQL: binding with different PL models
ORDB OODB Row = special data type (superset of relation) Many type constructors Results are tables again Any container data type Foreign keys : restricted to one table scope OID references : hard to support; dangling pointers Design : ER diagram ? Directly use OMT, or OO design tools Target many small objects (disk in/out); disk intensive;short transactions; Target large complex objects (long in memory); long transactions, client-side caching
ORDB Extra Goodies DBMS features inherited from RDB into ORDB : Constraints Views Triggers Priviledges (security)