The ODMG Standard 2.0 Focusing On The ODMG Object Model

Download Report

Transcript The ODMG Standard 2.0 Focusing On The ODMG Object Model

The ODMG Standard 2.0
Focusing On The ODMG Object Model
Group Members: Christopher Parrott, Christopher Sinclair,
David Tucker & Andrew Wan
Presentation Presenters: Christopher Parrott & Christopher Sinclair
Introduction
• ODMG (Object Data Management Group) formed in
1991.
• Independent organisation to standardise Object
Oriented Database Management Systems.
• Corporate members includes Sun, Poet & Computer
Associates.
• ODMG covers following key areas:




Object Model (OM)
Object Definition Language (ODL)
Object Query Language (OQL)
C++, Java & Smalltalk Bindings.
The Object Model
• About ODMG Object Model
• Database Types
 Specifications & Implementations
• Object type definition consists of two components, they are
Interface & one or more Implementations.
U
se
r
Interface
Us
er
visible to the users of the type
not visible to the users of the type
Implementation
Class
Us
Us
er
Type Specification
er
Objects
•
•
•
•
•
•
•
•
•
Object Identifiers
Object Lifetime
Collections
Collection Objects
Set Objects
Bag Objects
List Objects
Array Objects
Dictionary Objects
Objects
• Literal Values.
 ODMG model supports several literal types:
• Atomic
• Collection
• Structured
• Object Hierarchy
Modelling State
• Introduction
 Provides description of
data structure & relates
interfaces to a set of
object types in a type
hierarchy.
• Object Type Interfaces
 Describes how data can
be stored & relations to
other types of data.
Person
-Class Properties
Person_name
Person_bloodtype
-Class Operations
Employee Extends
Person
+returnName()
+getBloodtype()
Company
-Class Properties
-Class Properties
Employee_number
Employee_dob
Employee_salary
Company_Name
Company_Address
theEmployees
-Class Operations
+getName()
+getDOB()
+iSalary(aAmount)
-Class Operations
Work_For
+getName()
+printEmployees()
+employ(aEmploye
e)
Type diagram of object type definition
Modelling State
• Attributes &
Relationships
 One To One
 One To Many
 Many To Many
Employee
Company
WorksFor
One To One Relationship
Company
Employee
theEmployees
N
One To Many Relationship
Departments
Manager
N
theManagers
theDepartments
N
Many To Many Relationship
Examples Of Relationships
• Names
Employee
Employee
jeff
Representation of how object
names can be used
to represent entities
with shared components
bob
Name = jeff
Dept_employ=
It_support
Name = bob
Dept_employ=
It_support
Department
It_support
Name = It_support
Employees = jeff, bob….
Modelling State
• Metadata
 Descriptive information about persistent objects that defines
the ‘schema’.
 Used by ODBMS to define structure .
 Metadata is stored in an ‘ODL Schema Repository’.
 Considered important for object oriented database systems.
• Example of a operation that returns the class of an object.
EmployeeMetaData = William->getClass( )
• Above operation will store description of employee class.
EmployeeName = EmployeeMetaData ->getName( )
• EmployeeMetaData is used to print the employee’s name as
the getName function is part of the employee class.
Modelling Behaviour
• Introduction
 Object’s behaviour is
defined by its set of
operations.
 Operation has its specific
type defined.
• Operations
 Described as a piece of
code fragment.
 Manipulates the
properties and data of
object.
• Exceptions
Employee
Void
+salaryIncrease(aAmount)
-Operation salaryIncrease defined in Employee
class increases the salary property with the
specified amount entered as a parameter. The
operation does that return anything.
Company
Void
+employ(aEmployee)
Employee
Date
+dateOfBirth()
Employee
theEmployees
-Operation employ defined in Company class
sets a employee instance into theEmployees.
Thus adding a employee to the company. The
employee instance is passed as a parameter to
the operation. The operation does not return
anything.
-Operation dateOfBirth returns the employee’s
date of birth after calculation. The operation
accepts no parameters and returns a date type.
Concurrency & Transaction Control
• ODMG view on locking & Concurrency Control
• Locking Control
• Types of locks
 Read Locks
 Write Locks
 Upgrade Locks
• Prevention against form of deadlock when two processes both
obtain read locks on object then attempt to obtain a write lock on
the same object.
• Deadlock avoided initially by obtaining upgrade lock instead of
read locks for all objects user intends to modify.
• Avoids potential conflicts when write lock is later obtained.
Concurrency & Transaction Control
• Lock Duration
• Concurrency Control
• Transactions
 All programs that implements persistent objects must be
organised into transactions.
 Once transaction commits, ODBMS guarantees changes
made by transaction are never lost.
 ODMG data supports traditional ACID (Atomicity, Consistency
Integrity & Durability).
 Transactions are started with begin command, similar to new
command when creating objects.
 Transactions can be initiated & started explicitly.
Concurrency & Transaction Control
• Event Management
• Managing Logical Databases
 ODBMS can manage one or more logical databases. All of
these logical databases are instances of type database.
 Instances of type database created using DatabaseFactory
interface.
 Query identifies part of data explicitly by naming or by
specifying conditions.
 Database type also supports operations designed to aid the
administration of the whole system. Such operations include:
•
•
•
•
•
Delete
Move
Copy
Backup
Restore all of which to keep database in ‘Good Order’
Object Specification Languages
• About Object Specification Languages
 Used in representation of ODMG compliant object database
management systems.
 Composed of independent languages used in the definition of
schemas.
 Objectives of these independent languages are:
• Provide portability of databases across ODMG compliant
implementations.
• Interoperability of OODMS from different & multiple vendors.
 One of main OSL languages is ODL (Object Definition
Language), there is also OIF (Object Interchange Format).
Object Query Language
• About Object Query Languages
 Developed by ODMG for use with ODMG databases.
 Language Provides mechanism by which user can request a
subset of data from a database, such requests referred to as
ad hoc.
 Object Query Language (OQL) is part of the SQL family of
languages.
 Contains query syntax from SQL such as:
• ‘Select… From… Where…’
Bindings
• The idea of Bindings
 Binding creates association between run-time system of
programming language & the persistent store of database
system.
 Usually takes the form of library functions which access the
DBMS functionality.
 ODMG standard implements bindings based on one
fundamental principle:
• “The programmer should perceive the binding as a single
language for expressing both database & programming
operations, not two separate languages with arbitrary boundaries
between them”. ODMG 2.0, 1997
Literature Review
• Alagic, Suad
1996/1997
The ODMG Object Model: Does it Make Sense?
OOPSLA (ACM Conference on Object-Oriented Programming,
Systems, Languages, and Applications) USA
• Chaudhri, Akmal B.
1997
Experiences Using Object Data Management In the Real
World
OOPSLA 1997 Workshop
The New ODMG 3.0 Standard
• What's new in the ODMG 3.0 Standard
• Object Model
Conclusions
• The ODMG standard & Its Real World Application.
• Conclusions & Criticisms of the ODMG Object Model.
 ODMG model requires careful examination before it is
accepted.
 Not yet industry standard.
 Type checking system in ODMG model is not perfect.
• Dynamic type checking used, but will always be in situations
where it fails.
• Means that run-time checks will have to be used.
• Reduces Efficiency & Reliability of overall system.
 Parametric types not supported in current issue of the object
model.
• Except in C++ Bindings
Conclusions
 Lack of “self” type.
 Complaints towards ODMG model relate to the fact that it is
not a formal, mathematical model.
 ODGM model does have problems, but the model itself is still
work in progress.
 Most likely to be adjusted to solve some of the major
weaknesses in current version.
End Of Presentation
The ODMG Standard 2.0
Focusing On The ODMG Object Model
Group Members: Christopher Parrott, Christopher Sinclair,
David Tucker & Andrew Wan
Presentation Presented By: Christopher Parrott & Christopher Sinclair
• Any Questions?