Transcript 132B-intro6
Spring 2000
ODBMS: PROTOTYPES & PRODUCTS
Systems providing object databases programming languages
Prototypes: Encore-Ob/Server (Brown Univ.), IRIS (HewlettPackard), EXODUS (Winsconsin Univ.), Zeitgeist (Texas Instrument),
Orion (MCC), ODE (Bell Lab), Gbase (Graphael), Vodak (GMD), TI
Open OODB (Texas Instrument)
Products: GemStone (Serviologic), ObjectStore (Object Design),
ONTOS (Ontologic), Versant (Versant Object Tech.), O2 (Ardent
Software), Objectivity/DB (Objectivity), POET (Poet Software),
Jasmine ii (Computer Associates Inter.)
Object Extensions of Relational DBMS
Illustra (Illustra Technologies), UniSQL (UniSQL Inc.), OpenODB
(Hewlett- Packard), Matisse (ABC), Omniscience (Omniscience),
Polyhedra (Polyhedra PLC), PostgreSQL (PostgreSQL Organization)
Christophides Vassilis
1
Spring 2000
The ODBMS Manifesto [M.Atkinson & al 89]
ODBMS
DBMS
Persistence
Disk Management
Concurrency
Recovery
Ad hoc Queries
Distribution
Long
Transactions
Versions
OPL
Complex objects
Object Id
Encapsulation
Types or Classes
Simple inheritance
Overloading & Late binding
Computational Completeness
Multiple inheritance
Polymorphism, Genericity
Open Choices:
Christophides Vassilis
Uniformity of the Model (Classes/Methods/Objects)
Naming and Persistence Model
Typing System (Classes and/or Types)
2
Spring 2000
Uniformity of the Data Model
Three independent choices:
At the implementation level: are classes and methods represented
as objects?
At the language level: are classes and methods treated as objects
(syntactical and semantic uniformity)?
At the interface level: are classes and methods presented as
objects?
Unlike O2 and ONTOS, in Orion, Gemstone and IRIS the classes are
objects
Christophides Vassilis
3
Spring 2000
Towards Persistence Modeling
How objects become persistent (i.e., database objects): two approaches
Persistence is defined independently from the language: it is a property
of the data model (using names)
By class names: classes instances are automatically persistent (e.g.,
ORION)
By persistent root names: each object referenced by a root becomes
persistent (e.g., O2)
Persistence is a property of the underlying language
By library classes provided by the system: objects becomes
persistent if there classes inherit from a specific class Object
(Ontos) or PObject in (Versant)
By an expression of the language: e.g., persistent (Object Store),
persist (Zeitgeist) pnew and pdelete (ODE)
Christophides Vassilis
4
Spring 2000
Aspects of Persistence
Orthogonality of persistence and types: data can be persistent
independently of its type
Instances
of types can be persistent or transient (e.g., O2, ObjectStore)
Orthogonality of persistence and objects creation: definition and methods
for memory allocation are the same for persistent or transient objects
There
is not a need to copy objects from the program work space to the
database in order to make objects persistent (O2)
Behavioral transparency: uniform manipulation of persistent or transient
objects in programs
No
distinction in access and update operations nor in variable declarations
Persistence is a property which can be attached either to types or
instances: two paradigms of persistence propagation
Christophides Vassilis
5
Spring 2000
Persistence Propagation by Inheritance
Root Class of Persistence: PObject
All subclasses of persistent
classes became persistent
New and Delete messages are
overloaded
A Lookup primitive is added for
searching
Non orthogonal to types
Only the types which inherit from
PObject persist
Duplication of persistent and
transient classes
Christophides Vassilis
Pobject
New
Delete
Lookup
PPerson
Name
Born
…
6
Spring 2000
Persistence Propagation by Reference
Definition by the programmer of Persistent Roots
Keyword ”database" or ”persist" added:
Artist* art = new database Artist( "Monet");
Persistence objects are catalogued
accessible by a Lookup method
All objects referenced by a persistent object
become persistent
References become persistent during object
storage
references are replaced by oids
Christophides Vassilis
Dictionary
Monet
Monet
Haystacks
San Diego
Museum of Art
7
Spring 2000
Object Deletion: DB vs. PL view
DB Approach: Explicit “delete” operation
Dangling references can be managed
automatically or by the user
PL Approach: Implicit deletion when
objects are not any more referenced by
others
The difficult deletion of individual
objects implies the use garbage
collector techniques
Christophides Vassilis
obj1
obj2
att1
? X
obj2
obj1
att1
X
Garbage
Collected
8
Spring 2000
The Issue of Naming in ODBMS
Naming and Persistence in ODBMS
are closely related
Names specify how to enter the
database graph
Impact of the naming model on
the simplicity and expressiveness
of the QL
Two naming approaches:
Implicit => query only the class
extensions i.e., set of instances
Explicit => query any object or
value in the database
NOTE: In the relational model only
the relations are named and the
queries are on collections of tuples
Christophides Vassilis
Persistent Roots
Names
9
Spring 2000
Typing System: Object/Class vs. Value/Type
An object
encapsulated in a class
(structure & behavior)
is manipulated by methods
(encapsulation)
has an identifier (data sharing)
documentation
is
A value
has
a type (just a structure no
methods)
is manipulated by functions (no
encapsulation)
hasn’t an identifier
Types are used for
correctness
(type checking)
efficiency (optimization)
Classes add
object
factory (new)
object behavior (method
implementation)
collection (extent)
A Compromise: Imperative vs. Object-Oriented
Two paradigms: All Object and Object/Value ODBMS
Christophides Vassilis
10
Spring 2000
A Compromise
All Object DBMS
Structuring primitives are objects (e.g., collection classes)
Meta-Classes & Inheritance at class level
Class extensions are managed by the system
Possible explicit object deletion
Example: GemStone
Provides for complex behaviors
Object/Value DBMS
Structuring primitives using type constructors
Inheritance defined by sub-typing
Class extensions can be managed by the programmer
Object deletion using a Garbage Collector
Example: O2
Provides for complex structures
Christophides Vassilis
11
Spring 2000
A Classification of the Systems
LANGUAGE-ORIENTED SYSTEMS
Decrease the distance between the type system (data model) of
the PL and that of the database (e.g., ONTOS)
SYSTEMS WITH PERSISTANT PL
In addition to the reduction of the impedance mismatch between
the PL and the DB the frontier between the language and the
database disappears (e.g., ObjectStore, ODE, Zeitgeist, Versant)
APPLICATION-ORIENTED SYSTEMS
Providing functionality suited to specific applications for example
(CAD, CAM, CAE) versions, schema evolution, long transactions,
etc. (e.g., Objectivity)
COMPLETE ODBMS
Integrate the functionality of a DBMS with the object-oriented
technology (e.g., GemStone, O2)
Christophides Vassilis
12
Spring 2000
DBMS: A Complex and Evolving World
Copyright© 1997 Poet Software
Christophides Vassilis
13
Spring 2000
VIII) REFERENCES
M. J. Carey and D. J. DeWitt: “Of Objects and Databases: A Decade of
Turmoil”. In Proc. of VLDB’96, pp. 3-14, Bombay, India, Sept. 1996
M. Atkinson, F. Bancilhon, D. DeWitt, K. Dittrich, D. Maier and S. Zdonik:
“The Object-Oriented Database System Manifesto”. In Proc. of the
DOOD’89, pp. 223-40, Kyoto, Japan, Dec. 1989
R. Brachman: “What IS-A is and Isn't: An Analysis of Taxonomic Links in
Semantic Networks”. IEEE Computer. 16(10). pp. 30-36, Oct, 1983.
G. McFarland, A. Rudmik, and D. Lange: “Object-Oriented Database
Management Systems Revisited”, Modus Operandi, Inc. 1999
F. Manola: “An evaluation of Object-Oriented DBMS Developments”
Technical Report GTE Labs, 1994
F. Bancilhon,C. Delobel,S. Gamerman:“SGBD Orientés-Objet”, GIP Altair
M. Scholl: “Les SGBD Orientés-Objet”. Course Slides, CNAM Paris
B. Amann: “Des SGBD Relationnels aux SGBD Orientés-Objet”. Course
Slides, CNAM Puteaux
Y. Viémon: “Object-Orientation and Databases”. Course Slides, PARIS-VI
G. Gardarin: “Bases de Données - Relationnel et Objet”. Course Slides,
Université de Versailles Saint-Quentin-en-Yvelines
14
Christophides Vassilis