the object oriented database system manifesto

27
The Object Oriented Database System

Upload: beat-signer

Post on 15-Jul-2015

2.411 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: The Object Oriented Database System Manifesto

The

Object

Oriented

Database

System

Page 2: The Object Oriented Database System Manifesto

Paper Facts

• 1989

The Object-Oriented Database System Manifesto(246 citations)

M. Atkinson, F. Bancilhon, D. DeWitt, K. Dittrich,D. Maier, S. Zdonik

• 1990

Third-Generation Database System Manifesto(19 citations)

M. Stonebraker, L. Rowe, B. Lindsay, M. Carey,M. Brodie, P. Bernstein, D. Beech

Page 3: The Object Oriented Database System Manifesto

Paper Facts...

• 1995

The Third Manifesto (9 citations)

H. Darwen, C. Date

'We believe that [object oriented] features are

orthogonal to the Relational Model, and therefore that

the Relational Model needs no extension, no

correction, no subsumption, and, above all, no

perversion, in order for them to be accommodated...'

Page 4: The Object Oriented Database System Manifesto

OODBMS History

First Generation OODBMS:

• 1986

G-Base (Graphael, F)

• 1987

GemStone (Servio Corporation, USA)

• 1988

Vbase (Ontologic)

Statice (Symbolics)

Page 5: The Object Oriented Database System Manifesto

OODBMS History...

Second Generation OODBMS:

• 1989

Ontos (Ontos)

ObjectStore (Object Design)

Objectivity (Objectivity)

Versant ODBMS (Versant Object Technology)

Page 6: The Object Oriented Database System Manifesto

OODBMS History...

Third Generation OODBMS:

• 1990

Orion/Itasca (Microelectronics and Computer

Technology Cooperation, USA)

O2 (Altaïr, F)

Zeitgeist (Texas Instruments)

• 1991

ODMG formed (first standard released in 1993)

Page 7: The Object Oriented Database System Manifesto

Overview

• Paper attemps to define an object-oriented database system

• Describes the main features and characteristics that a system must have to qualify as an object-oriented database system

• OODBMSs at the beginning of the 90s

lack of a common data model

lack of strong theoretical framework

strong experimental activity

Page 8: The Object Oriented Database System Manifesto

Overview...

• Darwinian approach → hope that, out of the set of

experimental prototypes being built, a fit model will

emerge → risk of de facto standard

• Paper is separated into mandatory, optional and

open features

Page 9: The Object Oriented Database System Manifesto

Mandatory Features (Golden Rules)

• An object-oriented database system must be a

DBMS and an object-oriented system

• DBMS

persistence, secondary storage management,

concurrency, recovery and ad hoc query facility

• Object-oriented system

complex objects, object identity, encapsulation, types

or classes, inheritance, overriding combined with late

binding, extensibility and computational completeness

Page 10: The Object Oriented Database System Manifesto

Complex Objects

• Complex objects are built from simpler ones by

applying constructors to them

• The minimal set of constructors that the system

should have are set, tuple and list

• Constructors must be orthogonal

• Operations on a complex object must propagate

transitively to all its components (e.g. deep copy)

"Thou shalt support complex objects"

Page 11: The Object Oriented Database System Manifesto

Object Identity

• Two notions of object equivalence: two objects

can be identical (same object) or equal (same

value)

• Object identity has impact on object sharing and

object updates

• Object identity "can be simulated" in a value-

based system by introducing explicit object

identifiers (places burden on the user)

"Thou shalt support object identity"

Page 12: The Object Oriented Database System Manifesto

Encapsulation

• Distinguish between specification and

implementation and support for modularity

• Two views of encapsulation: programming

language view and the database adaption of that

view

• In the database world, it is not clear whether the

structural part of the type is part of the interface

"Thou shalt encapsulate thine objects"

Page 13: The Object Oriented Database System Manifesto

Encapsulation...

• Proper encapsulation is obtained when only the

operations are visible and the data is hidden (may

be violated under certain conditions)

"Thou shalt encapsulate thine objects"

Page 14: The Object Oriented Database System Manifesto

Types and Classes

• Type in an object-oriented system defines common features of a set of objects → type checking at compile time

• In general types can not be modified at run-time

• Classes (run-time notion) contains two aspects: object factory and object warehouse

Object Factory → create new objects

Object warehouse → extension (objects) attached to the class

"Thou shalt support types or classes"

Page 15: The Object Oriented Database System Manifesto

Types and Classes...

• Classes can be manipulated at run-time

• Choice between types or classes should be left to

the designer of the system

• Not necessary for the system to automatically

maintain the extent of a type

"Thou shalt support types or classes"

Page 16: The Object Oriented Database System Manifesto

Class or Type Hierarchies

• Helps code reusability

• At least four types of inheritance; substitution

inheritance, inclusion inheritance, constraint

inheritance and specialization inheritance

"Thine classes or types shalt inherit from their ancestors"

Page 17: The Object Oriented Database System Manifesto

Overriding/loading, late binding

• A single name denotes different implementations

→ overloading

• Redefinition of the implementation for different

types → overriding

• Operation names are resolved at run-time → late

binding

"Thou shalt not bind prematurely"

Page 18: The Object Oriented Database System Manifesto

Computational Completeness

• Should be possibe to express any computable

function, using the DML of the DB system

• Can be introduced through a reasonable

connection to existing programming languages

"Thou shalt be computationally complete"

Page 19: The Object Oriented Database System Manifesto

Extensibility

• Set of predefined types

• Should be possible to define new types with no

distinction in usage between system defined and

user defined types

• Type constructors (tuples, sets, lists, etc.) don't

have to be extensible

"Thou shalt be extensible"

Page 20: The Object Oriented Database System Manifesto

Persistence

• Evident from a database point of view but novelty

from a programming language point of view

• Persistence should be orthogonal (each object,

independent of its type, is persistence capable)

• User should not have to explicitly move or copy

data to make it persistent (implicit persistence)

"Thou shalt remember thy data"

Page 21: The Object Oriented Database System Manifesto

Secondary Storage Management

• Supported through a set of mechansims: index

management, data clustering, data buffering,

access path selection and query optimization

• Should be invisible for the application programmer

"Thou shalt manage very large databases"

Page 22: The Object Oriented Database System Manifesto

Concurrency

• Support standard notion of atomicity of a

sequence of operations and of controlled sharing

"Thou shalt accept concurrent users"

Page 23: The Object Oriented Database System Manifesto

Recovery

• In case of hardware or software failures, the

system should recover, i.e. bring itself back to a

coherent state of the data

"Thou shalt recover from hardware and software failures"

Page 24: The Object Oriented Database System Manifesto

Ad Hoc Query Facility

• Provide functionality of an ad hoc query language

(graphical browser could be sufficient)

• High level (declarative)

• Application independent

"Thou shalt have a simple way of querying data"

Page 25: The Object Oriented Database System Manifesto

Optional Features (The Goodies)

• Multiple Inheritance

• Type checking and type inferencing

• Distribution

• Design transactions

• Versions

Page 26: The Object Oriented Database System Manifesto

Open Features

• Programming Paradigm

• Representation System

• Type System

generic types, type generator,...

• Uniformity

are types and methods objects?

Page 27: The Object Oriented Database System Manifesto

Conclusions

• Golden rules should be the definition of an object-

oriented database management system

• Paper is a proposal to be debatted

"Thou shalt question the golden rules"