Object-Relational Database Systems

Completeness Criteria for ObjectRelational Database Systems
by Won Kim
April 2002
Sang Ho Lee
School of Computing, Soongsil University
[email protected]



The purpose of this paper is to propose a practical
metric for object-relational completeness, so it may
serve as a reference for determining whether a
product is an ORDB, and for determining the degree
of completeness of the product
Seven major categories
Each category consists of “primary” and “secondary”
capabilities
2
Data Model - primary (1)
Classes, instances, atomic attributes
A class is a table in an RDB with




Methods
Set-valued attributes
Attributes whose domains may include references to
classes
Abstract data type
OID per instance

An instance has a unique and immutable identifier,
OID
Encapsulation

The user may write a method and attach it to a class
3
Data Model– primary (2)
Inheritance


Multiple inheritance of attributes, methods, integrity
constraints on attributes
name-conflict resolution (not prevention)
Arbitrary domain



Alphanumeric type
Abstract data types (ADTs)
Class reference
 Class reference as domain of an attribute
 OID-based object references
 Expedite an navigational access in a nested object
Set-valued attributes

May be a set, a multiset, or a sequence
4
Data Model– primary (3)
OID references


Single OIDs
Set of OIDs
5
Data Model - secondary
Free-floating functions


These do not belong to any particular class, as such
are not inherited
Built-in functions, user-definable functions, stored
procedures
Inheritance hierarchy of a classes as domain


Set-inclusion semantics associated with an
inheritance hierarchy
One of the fundamentals of the OO paradigm
Class attribute, class method


Example: aggregate properties of all instances of a
class (e.g. average weight of all Automobile
instances)
Meta-class, meta-meta-class, …
6
Query Language – primary (1)
An ORDB must support an SQL-like and its
API (function calls)
SQL-92 support


Entry level
Advance level
Query involving nested objects

A query construct known as “path expression” is
necessary
Query involving set-valued attributes
Query involving methods/functions in search
predicates
Query involving an ADT
7
Query Language – primary (2)
Views


A view is a subset of a database that satisfies userdefined query conditions
Full RDB views
Oid-based fetch


Access objects by OIDs
An capability to successively “fetch next” objects
8
Query Language – secondary
Query involving an inheritance hierarchy

All instances of a class or all instances of an
inheritance hierarchy rooted at that class
Views


An ORDB should not allow a view in the inheritance
hierarchy of classes
Inheritance hierarchy of views
 The user should construct an inheritance hierarchy of views, separate
from an inheritance hierarchy of classes

View reference as domain of an attribute
9
Computational Model
Workspace memory control





Lock caching
Automatic garbage collection
Object swapping
Query processing involving updated objects in the
workspace
Support for dynamic schema changes on objects in
the workspace
Pointer swizzling

Conversion of the storage format of objects between
the database format and the memory format
An ORDB should support both facilities
10
Database Tools (1)
Important object modeling capabilities include
set-valued attributes, ADTs, nested objects
Pre-compiler for OO SQL
Database administration tool

Full RDB tool capabilities
Query generator/result viewer


Full RDB tool capabilities
Generating and viewing OO queries
11
Database Tools (2)
Schema designer/editor


Full RDB tool capabilities
OO extensions (class as domain of an attribute,
inheritance hierarchy of classes, methods, freefloating user-definable functions, set-valued
attributes)
GUI application development tool


Full RDB tool capabilities
OO extensions (set-valued attributes, OID
references)
12
Performance - primary
It must be comparable (within 20%) to that of
a major RDB in executing pure relational
operations against a pure RDB
It must be comparable (within 20%) to that of
an OODB in executing OID-based navigational
access in a database and in executing pointerbased navigational access in memory
It must be satisfactory to the users in
performing database access involving object
extensions to SQL (path expression, set, ADT,
method, user functions, inheritance hierarchy)
13
Mission-Critical Database Services – primary
(1)
Automatic query optimization and query
processing


Full optimization of RDB queries
Optimization of OO queries
 Query with path expressions
 Query with retrieves set-valued attributes
 Query with methods
 Query with user-definable free-floating functions
 Query that retrieves ADT-valued functions
 Query that retrieves instances from an inheritance hierarchy of
classes
14
Mission-Critical Database Services – primary
(2)
Indexing (create index, drop index, multiattribute index, concurrency control, recovery)


Full RDB indexing
Indexing for OO queries




Query with path expressions
Query that retrieves set-valued attributes
Query that retrieves ADT-valued attributes
Query that retrieves instances from an inheritance hierarchy of
classes
Concurrency control




Full RDB concurrency control
Object-level locking
Concurrency control for dynamic schema changes
Concurrency control for queries and updates
involving an inheritance hierarchy of classes
15
Mission-Critical Database Services – primary
(3)
Authorization




Full RDB authorization
Object-level authorization
Authorization on methods
Authorization on free-floating user-definable
functions
Triggers

Full RDB triggers
Stored procedures
16
Mission-Critical Database Services – primary
(4)
Dynamic schema evolution





Full RDB schema changes
Add/drop methods to a class
Add/drop a superclass to a class
Add/drop class methods
Add/drop class attributes
17
Mission-Critical Database Servicessecondary
Security


Full RDB security
Security on OO extensions
 Methods and free-floating user-definable functions
 Inheritance hierarchy of classes
 OID access
 Workspace object access
 Set-valued attribute access
 ADT-valued attribute access
Replicate service
18
Harnessing the Power
Data type extensibility

Function library for each specific non-alphanumeric
type of data of interest to customers
Data unification




Automatic distributed query optimization and
processing
Automatic distributed transaction processing
Facilities for homogenizing schema differences in
local databases
Gateway for local database systems
19
Discussion
Now what do you think about his view?
20