object-oriented dbms fundamentals -...

19
©LJW 2014 : OODBMS:: CS630 Object-Oriented DBMS Fundamentals Les Waguespack, Ph.D. 1

Upload: others

Post on 01-Apr-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS::

CS630 Object-Oriented DBMS

FundamentalsLes Waguespack, Ph.D.

���1

Page 2: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS::

Data Base Models

• 1960's – Hierarchical – extended the access functionality of file management – compartmentalized security, recovery and backup– centralized file description and documentation

• 1970's – Network– standardized data model definition and access (CODASYL) – introduced query language/report writer capabilities

• 1980's – Relational – formalized semantic behavior of queries (normalization) – facilitated "end user" access via standard (SQL)– achieved cross platform and distributed consistency

• 1990's – Object Oriented– seeks to recapture high-performance in complex models – seeks to bind application and data management models – seeks to exploit reusable data models– promises to make multi-media ubiquitous

���2

Page 3: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS::

"Model i Model"→ Despite some lingering concerns for performance the relational model is

considered the model of choice for clarity, consistency, and integrity for designing databases.

← The OODB approach promises "blazing" speed for "wired" data relationships via the "oid" (object id) pointer interconnections.

→ For the most part the relational implementations lack strong connection between the "data model" and the "transaction model"s that are applied to them (data and procedures are separate).

← The OODB depends on "wired" relationships that may impede evolution/maintenance of data models and violates basic semantic principles of entity/relationship modeling.

���3

Page 4: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS:

Model / Problem Fit→ Relational fits data problems that are regular and homogeneous. ← OODB fits data problems that are irregular and sparse.

Num

ber o

f obj

ects

Number of instances →

Relational Fit

!Object Fit

Page 5: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS:

Model / Problem Fit→ Relational fits data problems that are regular and homogeneous. ← OODB fits data problems that are irregular and sparse.

Num

ber o

f obj

ects

Number of instances →

Relational Fit

!Object Fit

Graphs

Inventory

VLSI Circuits

CAD/CAMBill of Materials

Portfolio Mgmt

Flat Files

Credit Accounts

Phone List

Customer AccountPayroll

Page 6: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS::

Object "Relations"

• Objects have identity as objects independent from their state (regardless of the content of their instance variables).

• Objects are referenced in an object system via these identities referred to as OID's or Object ID's.

• Object access is always by reference, (i.e. by following the OID to the object itself.

• Object assignment ( X := Y ) is accomplish by reproducing the OID rather than by reproducing the object. Therefore X.printon and Y.printon produce the same result even after the methods (X.value ← 9 and Y.value ← 13). The both printout "13".

���6

Page 7: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS: ���7

Object "Relations"

Executable Main Memory

Page 8: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS: ���8

Object "Persistence"

Main Memory “image”

Persistent Memory “image”

Save!

! !Load

object store

Page 9: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS:

Persistent Memory “image”

���9

Unitary "Address Space"

Main Memory “image”

Page 10: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS: ���10

"Object DBMS”

Main Memory “image”

Persistent Memory “image”

Object DBMS

object store

Page 11: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS: ���11

"Object DBMS”

Object server is the steward of the disk image of objects and provides shared access to multiple applications, arbitrating the access through a cache of its own.

Object server

Object manager

ApplicationObject manager provides a local cache where transient, application bound, "images" of objects "live" during access and modification until they are committed or reverted.

object store

Page 12: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS: ���12

"Object DBMS”

Object server

Object manager

Application

manager!cache!

server!cache!

object store

Page 13: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS: ���13

Multi-access

Object server

Object manager

Application

Object server

Object manager

Application

object store

Page 14: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS: ���14

Multi-database

Object server

Object manager

Application

Object server

Object manager

object store

object store

Page 15: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS: ���15

Object server

Object manager

Application

manager!cache!

server!cache!

object store

Page 16: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS::

object manager

Distributed Components

���16

object manager

remote procedure calls

object server

object manager

Page 17: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS::

Implementation• Methods:

– bound at compile time the methods may be stored external to the object store, but cannot be modified during a session– bound dynamically, changes in methods are immediately in "effect" for subsequent messages– stored external to the database allows "de- synchronization" and integrity breaches– stored in the object store configuration security is greater and more likely to survive a rollback and recovery cycle

• Transactions:– object "locking" evokes all the standard concurrency control problems found in any shared access data management circumstance. – object "clustering" may be used to control "lock proliferation" and improve locality of reference, access patterns – classic "object application" transactions are very long requiring large amounts of "cache"– locks at checkout vs. locks at check in!

���17

Page 18: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS::

Implementation• Versioning:

– CAD/CAM-like applications require the ability to maintain versions in linear and tree-structured ancestry – this is common in work group situations where several technicians may be addressing the same "system" in "part" increments.

• Query Support:– there is Object SQL on the market with some effort to address a standard – in most instances query support is really "report" support since access paths must be established at DDL- time in order for appropriate OID paths to exist to allow collections or families of objects to be scanned in a query processing mode. This evokes memories of hierarchical and inverted data model issues with "design-time" rather than "decision-time" query definition. Many different access acceleration aids are available (hashed, B-tree, "object rape" approaches).

���18

Page 19: Object-Oriented DBMS Fundamentals - Bentleycis.bentley.edu/lwaguespack/CS630_Site/Downloads..."Object DBMS” Object server is the steward of the disk image of objects and provides

©LJW 2014 : OODBMS::

Implementation

• Persistent Object Definition:– dynamic binding almost requires that persistent objects and "application" objects reside in the same address space (at least part of the time); this leads to a unified class library approach where persistent objects are simply object derived from a "persistent object ancestor."

• To "connect" persistent and dynamic object behavior requires some form of "interpretive" execution which is not native to compile-time based object systems (C++). This conflict leads to less than "pure" object oriented implementations of the object database interface.

���19