Introduction to ODBMS

Download Report

Transcript Introduction to ODBMS

Chapter 24
Introduction to Object
DBMSs
Prepared by Kai Huang
CS157B
Prof Sin-Min Lee
Object Oriented DBMS
History
Object-oriented model popularized in
programming languages Simula 67,
Smalltalk, C++, Java
Earlier database models(hierarchical,
network, relational) focused on recordoriented information
New database applications need more
& better support for complex data.
The weakness of
RDBMSs
Poor representation of ‘real world’ entities.
The process of normalization generally leads
to the creation of relations that do not
corresponds to entities in the ‘real world’.
Semantic overloading, namely there is no
mechanism to distinguish between entities
and relationships, or to distinguish between
different kinds of relationship that exist
between entities.
Poor support for integrity and enterprise
constraints.
The weakness of
RDBMSs (cont)
Homogeneous data structure. The fixed
structure is too restrictive for many ‘real
world’ objects that have a complex structure,
and it leads to unnatural joins, which are
inefficient.
Limited Operations. It only has a fixed set of
operations such as set and tuple – oriented
operations, operations that are provided in
the SQL specification.
Difficulty handling recursive queries
Impedance mismatch
New database
applications
Traditional applications had these
properties:
Uniformity
 Record orientation
 Small data items
 Atomic fields

New database
applications (cont)
New applications requiring more complex
info:



Computer-aided design(CAD). A CAD database
stores data relating to mechanical and electrical
design covering objects like buildings, IC circuits.
Computer-aided software engineering(CASE). A
CASE database stores data relating to the stages
of the software development lifecycle planning.
Office information systems (OIS). An OIS
database stores data relating to the computer
control of information in a business including
emails, invoices, etc.
Why consider these new
applications?
The following have made them
feasible(they were out of reach in the
70s):
Faster CPUs
 Larger main memories
 Larger disks
 Better, faster networks
 Lower cost for all of the above!

Object Oriented data
Model
Object is similar to an entity in ER
model. If we are to implement Object
Oriented DBMSs in Java, for each
entity, we will create a class for it.
Object Oriented concept centers around
encapsulating both data and procedures
for operation on data as a single unit.
What is encapsulation?
Encapsulation means that an object
contains both the data structure and the
set of operations that can be used to
manipulate it. Often cases, adopting
encapsulation hides the implementation
from the users do not necessarily have
to know the detail of it.
Other OOP concepts
Abstraction: Abstraction is the process
of identifying the essential aspects of an
entity and ignoring the unimportant
properties.
Information Hiding: We separate the
external aspects of an object from its
internal details, which are hidden from
the outside world.
Object Oriented data
Model(cont)
Object: A uniquely identifiable entity that
contains both the attribute that describe
the state of a ‘real world’ object and the
actions that are associated with it.
Set of variables
 Set of methods (code to execute in
response to messages). This is the main
difference from the ER model.

Objects
Variables can be
Atomic values (like character, integer
number, boolean value)
 Objects (other user defined objects).
 Reference to other objects

Objects (cont)
Object classes. Objects that have the
same attributes and respond to the
same messages can be grouped
together to form a class
Define object type (structure and behavior)
 An object is an instance of a class
 Sometimes associated with a collection of
all instances in class

Example Object class
class timeSeries {
/* variables */
List* entryList; /* list of elements */
time beginning;
time ending;
elementDescriptor elemDesc; /* element type
descriptor */
/* messages */
elementDescriptor getElementType();
Tuple getFirstElement();
Tuple getLastElement();
Tuple getFirstElementAfter(time t);
}
Inheritance
Inheritance allows one class to be defined as
a special case of a more general class.
The types of inheritance are





IS-A hierarchy idea
Single inheritance
Multiple inheritance
Repeated inheritance. A special case of multiple
inheritance in which the super class inherit from a
common super class.
Selective inheritance.
Polymorphism
Objects of different types can respond
to same message, e.g. “print(),” in
different ways.
Makes it possible to develop general,
extensible software systems.
It has three types: operation, inclusion
and parametric.
More important than inheritance
Object Identity
An object in an Object Oriented Database
remains the same object even if some or all
of its attribute values change. It is a key part
of the definition of an object.
Not the same as relational DBMS, where a
data vale is used for identity.
Object-oriented databases use an internallygenerated object identifier to uniquely identify
an object.
Object containment
Same as aggregation concept in ER
model
Part-of hierarchy
Other Object Oriented
techniques
Overloading: allows the name of a method to
be reused within a class definition or across
definitions. This is a special case of the more
general concept of polymorphism.
Overriding: a special case of overloading
which allows the names of a property to be
redefined in a subclass
Dynamic binding: Allows the determination of
an object’s type and methods to be deferred
until runtime.
Persistent Programming
Languages
Standard programming languages only
allow storing persistent (permanent)
information which could be in files or in
a database via a database API.
In either case, format of objects in
persistent storage is different than
format in memory
Persistent Programming
Languages (cont)
Problem known as impedance
mismatch
Idea: allow programming language
objects to be persistent.
Persistent versions of Pascal, Smalltalk,
C++ have been developed
Persistent Programming
Languages (cont)
Allows simpler creation and
manipulation of persistent objects
Drawbacks:
Since language is powerful, it is easy to
make errors that damage Database
 Hard to optimize I/O access made by
database application

Making Objects
Persistent
Typically, persistence or nonpersistence is specified at object
creation time.
E.g.
class foo {int a; float y;}
persistent collection foo_coll<foo>;
foo *x, *y;
x = new foo(); //non-persistent
y = new (foo_coll) foo(); //persistent
Some OODBs Have
Limited Query Capability
E.g. (similar to ObjectStore query)
class emp {int eno, char [20] name,
dept
*d};
class dept {int dno, char[20]name};
persistent collection<emp>empcoll
Some OODBs Have
Limited Query Capability
(cont)
collection<emp> * result;
result = {: x in empcoll || x -> d.dnp =
10:]
Less opportunity for optimization than in
a relational DBMS with SQL
Complex Objects
Sometimes we need object that consists
of subobjects or components. A
complex object is an item that is viewed
as a single object in the ‘real world’ but
combines with other objects in a set of
complex A-PART-OF relationships. The
objects contained may themselves be
complex objects, resulting in an APART-OF hierarchy.
Summary
Object Oriented DBs designed to support new
application areas – multi-media, CAD, CASE,
GIS etc.
Object = data + methods
Inheritance, object containment
Persistent programming languages
OODBs have limited query capability
Advantages and disadvantages of OODBs.
Next Generation DBMSs: Object-Oriented
Data Model and Object-Relational Data
Model