Nguyen, Yen P
Download
Report
Transcript Nguyen, Yen P
Definition
Object-Oriented Concept
• Object
• Class & Encapsulation
• Inheritance & Polymorphism
Advantages & Disadvantage
Example
Conclusion
The combination of “object-oriented
programming principles” with “database
management principles”
Not a new concept, it started in the mid1970s
Some ODBMS are multimedia databases
that include graphics, audio,
information and animation.
Database that stores data elements as
objects. Uses object-oriented concepts.
› Object - an instance of a data type
Typical Applications for ODBMS
› Computer-aided design (CAD)
› Computer-aided software engineering
(CASE)
› Multimedia databases (video, image,
game, etc.)
› Office automation system (OIS)
› Expert database system
ODBMS
› Application and data use the same OO model
› Uses persistent programming languages
Application
ODB
Directly manipulate persistent data in a database
Persistent data exists after the program terminates
No translation from database to application programming is
needed
RDBMS- extended to use OO concepts
› Database is relational
› Programming language is OO
Application
Translation
RDB
An entity
contains
1) Attributes-
atomic or
structured type
2) Relationshipsreference to an
object or set of
such objects
3) Methodsbehavior of the
object
Student
SID: double
Variables
Name:String
Major:String
Schedule:String
…
getSID()
Methods
getName()
setName()
…
Relationships
Encapsulation- hide the abstract data type internal
(user only need to know the available method & how to
call them)
Polymorphism- a property that allows methods in
different classes to respond to the same message
signature. (dynamic binding, etc..)
Inheritance- a class can inherit the characteristics of
anther class. The original class is called base class or
super and the new class is called derived class or
subclass
Multiple inheritance- inherit from more than one superclass
Selective inheritance- inherit only some of the properties of
a superclass
ODBMS
RDBMS
Unique identification of objects is
done behind the scenes (invisible to
user)
User has to worry about two tuples
have the same primary key values to
avoid error conditions
Data model is used to model entities
and their relationships, constraints
and operations can dynamically
change the states of the data in the
system
ER diagram is used model the static
parts of system and separate model
for the operations and behaviors of
entities in the application
Query language is unnecessary for
accessing data (still possible to use
queries)
Query language is necessary for
accessing data
Manage complex data more
efficiently (large class can hold many
medium classes which themselves
hold many smaller classes) Object
model the real world better than the
relational tuples
Manage complex data inefficiently
(has lots of smaller tables and join
them via foreign keys, which is still a
problem since query database on
“Has-a” relationship between
entities)
Still under-construction
› Lack of standards
› Lack of development tools
› Lack of support for views
› Lack of support for security
More complicated than RDBMS takes
longer to learn
Inefficient when managing simple data
and relations
Popular query language that has the
similar syntax SQL
An extension of SQL, it has select, from,
and where clauses
The extensions are accommodate the
properties of objects and the operators
on complex objects
Example of accessing
data in ODMB using
ODMG & OQL
1) OJB.getInstance() returns a
2)
3)
4)
5)
6)
7)
org.odmg.Implementation
instance
Create a new Database
Instance
Opens an ODMB Database
(read-only or write-only mode)
Create a query instance
Specify the query statement
Execute the query
A list of results is returned
ODBMS can store, manage and maintain multimedia
& business object, that can be done required less
code, reuse code, easy to maintain.
ODBMS manage the complex of interrelationships
between objects more efficiently than RDBMS
Although there are many advantages of ODBMS but
there are also problems:
What is wrong with ODBMS?
›
›
›
›
Vendors don’t support ODBMS standard
Only 1 vendor is currently supporting OQL
Difficult to perform ad hoc queries
Relationships among objects use object identifiers and
must be explicitly designed
QUESTION???
THE END…