OODB_Lecture1

Download Report

Transcript OODB_Lecture1

Advanced Databases
Object Oriented Databases
School of Informatics
Akhtar Ali
Advanced Databases – Lecture # 11 Object-Oriented Databases
1
References
• Barry Eaglestone, Mick Ridley, Object Databases: An
Introduction, McGraw-Hill, 1998
• R.G.G. Cattell, Douglas K. Barry. Object Database
Standard: ODMG 3.0. Morgan Kaufmann Publishers,
Inc. 2000
• Richard Cooper, Object Databases: An ODMG
Approach, ITCP 1997
• R. Elmasri and S. B. Navate, Fundamental of Database
Systems – 3rd Edition, 2000, Chapter 11 & 12
Advanced Databases – Lecture # 11 Object-Oriented Databases
2
Object Oriented Concepts
• Object
– An object represents a real world entity (Person), a concept
(Drama), a logical thing (Licence), a physical thing (Car)
– Every object has a unique Object Identifier (OID)
– An object is made of two things:
• State: properties (name, address, birthDate of a Person)
• Behaviour: operations (age of a Person is computed from
birthDate and current date)
• Object Identifier
–
–
–
–
Unique for every object
System generated
Never changes in the lifetime of the object
Not visible to the user
Advanced Databases – Lecture # 11 Object-Oriented Databases
3
OO Concepts – continued
• Classification
– Classification is the process of grouping together objects which
have common features.
– Programming languages have type systems and database
systems have data models to classify object.
– The name used for the classificatory group of values is usually
either class or type.
class Person
properties
name: String
address: String
birthDate: Date
operations
age(): Integer
end Person
Advanced Databases – Lecture # 11 Object-Oriented Databases
4
OO Concepts – continued
• Encapsulation
– The integration of the description of data structure and operation is
called encapsulation.
• Objects are composed of properties (values) and operations.
– It introduces a component of computation into the data.
– This feature is missing in Relational Databases (RDBs) and is usually
coded into the application.
• Inheritance
– A new class is usually described in terms of one or more previously
defined classes from which the new class takes (inherits) properties
and operations. For instance, the following defines a new class
Student:
class Student ISA Person
properties
major: String
tutor: Lecturer
operations
register(C: Course): Boolean
end Student
Advanced Databases – Lecture # 11 Object-Oriented Databases
• Student is sub-type of Person
• Person is super-type of Student
• A Student is also a Person, but not
every Person is a Student.
• A Student has all the properties and
operations same as Person
5
OO Concepts – continued
• An object system or object-based system is one which
supports the modeling of data as abstract entities, with
object identity.
• An object-oriented system is an object system in which
all data is created as instances of classes which take
part in an inheritance hierarchy.
• An object-oriented database management system
(OODBMS) is a DBMS with an object-oriented logical
data model.
• An object-oriented database is a database made up of
objects and managed by an OODBMS.
Advanced Databases – Lecture # 11 Object-Oriented Databases
6
Why Object Oriented Databases?
• Object Oriented Databases (OODBs) are inevitable
when:
–
–
–
–
–
Data is complex and variable in size
Complex structural and compositional relationships
Data is highly inter-related
Data is evolving rapidly over time
Richer data types
• complex objects
• inheritance
• user extensibility
– Behaviour with data
• not just a data model but also
• operations can be bundled together with data
Advanced Databases – Lecture # 11 Object-Oriented Databases
7
Complex Data
Advanced Databases – Lecture # 11 Object-Oriented Databases
8
OODBs are more Natural & Direct
Advanced Databases – Lecture # 11 Object-Oriented Databases
9
An Example Conceptual Schema in ER
•
•
•
Student and Lecturer are sub-types of
Person. ‘d’ means that Student and
Lecturer are disjoint.
A Student cannot be a Lecturer at the
same time and vice versa.
Attribute names are omitted.
Person
d
N
Student
1
tutor
Lecturer
N
N
N
enrolledOn
takes
worksFor
1
M
1
Unit
N
partOf
M
Course
N
offers
1
Department
M
teaches
N
Advanced Databases – Lecture # 11 Object-Oriented Databases
10
The Conceptual Schema in UML
Person
name: string
address: string
birthDate: date
age(): integer
Student
tutor
tutees
*
1
major: string
register(C: Course): boolean
takeUnit(U: Unit): boolean
room: string
salary: float
joinDate: date
enrolledOn
*
takes
Lecturer
Department
worksFor
*
teachUnit(U: Unit): bollean
*
staff
1
deptId: string
name: string
getCourses(): Set(Course)
offers
takenBy *
students
Unit
unitCode: string
description: string
getCourses(): Set(Course)
Course
1
partOf
*
units
*
1
courseCode: string
name: string
dept
*
getUnits(): Set(Unit)
Advanced Databases – Lecture # 11 Object-Oriented Databases
11
OO Representation
class Person
properties
name: String
address: String
birthDate: Date
operations
age(): Integer
end Person
class Lecturer ISA Person
class Course
properties
properties
room: Integer
name: String
tutees: set(Student)
offeredBy: Department
worksFor: Department
hasStudents: set(Student)
teaches: set(Unit)
hasUnits: set(Unit)
operations
teachUnit(U: Unit): Boolean end Course
end Lecturer
class Student ISA Person
class Department
properties
properties
major: String
name: String
tutor: Lecturer
staff: set(Lecturer)
enrolledOn: Course
offers: set(Course)
takes: set(Unit)
end Department
operations
register(C: Course): Boolean
takeUnit(U: Unit): Boolean
end Student
Advanced Databases – Lecture # 11 Object-Oriented Databases
class Unit
properties
name: String
code: String
takenBy: set(Student)
taughtBy: set(Lecturer)
partOf: set(Course)
end Unit
12
OO Representation – continued
• No primary keys are required, but keys can be used.
• Relationships are represented in a clear manner, no foreign keys
used as in case of RDBs. e.g.
– As in Lecturer class
worksFor: Department
teaches: set(Unit)
• worksFor is not a foreign key but an OID of a Department object.
• teaches is collection valued i.e. a set of OIDs of Unit objects.
• Relationships are bi-directional in the natural way.
– As in Department class
staff: set(Lecturer)
• staff is a set of OIDs of Lecturer objects, which is inverse to worksFor in
Lecturer class.
• Many-to-many relationships are represented directly without
introducing a new class or relation as in the case of takes, partOf,
and teaches relationships.
Advanced Databases – Lecture # 11 Object-Oriented Databases
13
Comparison
• RDBs vs. ORDBs
– Very easy to compare because both are based on Relational
Model.
– An RDB does not support abstract data types (ADT), all
attribute values must be atomic and relations must be in first
normal form (flat relation).
– An ORDB supports ADTs, attributes can be multi-valued, and
does not require first normal form.
– The underlying basic data structures of RDBs are much
simpler but less versatile than ORDBs.
– Optimization of queries is much easier and efficient in RDBs
compared to ORDBs. But this does not mean that RDBs are
faster than ORDBs.
– ORDBs support complex data whereas RDBs don’t.
– ORDBs support wide range of applications.
Advanced Databases – Lecture # 11 Object-Oriented Databases
14
Comparison – continued…
• RDBs vs. OODBs.
– Not very easy to compare because of philosophical
differences.
– RDBs have only one construct i.e. Relation, whereas the
type system of OODBs is much richer and complex.
– RDBs require primary keys and foreign keys for
implementing relationships, OODBs simply don’t.
– Optimization of queries in OODBs is much complex than
RDBs, but is mainly inspired from the Optimization
techniques in RDBs.
– OODBs support complex data whereas RDBs don’t.
– OODBs support wide range of applications.
– OODBs are much faster than RDBs but are less mature to
handle large volumes of data.
– There is more acceptance and domination of RDBs in the
market than that for OODBs.
Advanced Databases – Lecture # 11 Object-Oriented Databases
15
Comparison – continued…
• OODBs vs. ORDBs.
– Both support ADTs, collections, OIDs, and inheritance,
though philosophically quite different.
– ORDBs extended RDBs whereas OODBs add persistence
and database capabilities to OO languages.
– Both support query languages for manipulating collections
and nested and complex data.
– SQL3 is inspired from OO concepts and is converging
towards OQL (object query language).
– ORDBs carries all the benefits of RDBs, whereas OODBs
are less benefited from the technology of RDBs.
– OODBs are seamlessly integrated with OOPLs with less
mismatch in the type systems;
– ORDBs (SQL3) have quite different constructs than those of
OOPLs when used in embedded form.
Advanced Databases – Lecture # 11 Object-Oriented Databases
16
Advantages of OODB
• Greater semantic expressibility: storing and manipulating complex
objects greatly simplifies the model of the application world
• Object identity is superior unifying concept than using surrogates
(e.g. primary and foreign keys in relational DBMS)
• The ease of user extensibility
• Behavioural model: programs and data are stored together,
unifying conceptually connected features of database
• Typing objects provides a more coherent structure for the
database
• Code re-use through inheritance, over-riding and late binding
• A possible pre-requisite to active databases and interoperability?
Advanced Databases – Lecture # 11 Object-Oriented Databases
17
Disadvantages of OODB
• No formal semantics, unlike the relational data model.
• Pure OO systems do not include the notion of class extents which is
of fundamental importance in DB management.
• Design methods must be evolved to include behaviour and support
for dynamic processes.
• Loss of the relational data model’s simplicity.
• Optimization / tuning(e.g. indexes) not as well understood and are
difficult; the overall record-at-a-time flavour of the OO systems means
that relational-style optimization is unlikely.
• Transaction management support is not very mature.
Advanced Databases – Lecture # 11 Object-Oriented Databases
18
Current Myths [Won Kim 95]
•
•
•
•
OODBs are 10 to 100 times faster than RDBs.
OODBs eliminate the need for joins (not altogether).
Object identity eliminates the need for keys.
OODBs eliminate the need for a non-procedural
database language (not in reality).
• Query processing will violate encapsulation (may or
may not).
• OODBs can support versioning and long duration
transactions.
• OODBs support multimedia data.
Advanced Databases – Lecture # 11 Object-Oriented Databases
19
OODBMS Features
• Object data model
– object identifiers, type inheritance, methods, complex objects
• Integration with an OO programming language
– transparent or semi-transparent retrieval and storage of objects
• Declarative query language
– usually an SQL like syntax
• Advanced data sharing
– long transactions; optimistic concurrency; multiple versions of data;
private data check-out
• Client-server architecture
Advanced Databases – Lecture # 11 Object-Oriented Databases
20
OODB Evolution
Programming Languages
Persistent
Programming
Languages
e.g. Napier88,
PJama
Databases
OODB
Extended RDBMS
Relational
Systems
e.g. UniSQL,
Oracle, Illustra
OOPL add db
facilities
e.g. C++,
Smalltalk
-> ObjectStore,
Gemstone,POET
Model based
systems
add language
facilities to a new
data model.
e.g O2, ODMG
Advanced Databases – Lecture # 11 Object-Oriented Databases
Semantic Data
Models
e.g. ER, UML,
FDM
-> OpenODB,
ODBII
21
Strategies for building OODBMS
• Extend OO programming languages to be persistent
–
–
–
–
popular approach
programming viewpoint rather than a database one
no standard model; one programming language;
ObjectStore, POET, Gemstone
• Use an object-oriented data model for the DBMS
–
–
–
–
database management viewpoint
need language bindings
query languages, transaction management etc
O2, lambda-DB
• Standardization of model and services
– ODMG 3 Standard; OMG (CORBA)
Advanced Databases – Lecture # 11 Object-Oriented Databases
22
Summary
• Introduction to OO Concepts
• Motivation of why OODBs are inevitable
• An Example of OO Schema
• Comparison with RDBs and ORDBs
• Advantages and Disadvantages of OODBs
• Evolution of OODBs
• Strategies of building an OODBMS
Advanced Databases – Lecture # 11 Object-Oriented Databases
23