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 mid-1970s
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
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
RDB
Application
Translation
ODB
Application
An entity contains1) Attributes-
atomic or structured type
2) Relationships- reference to an object or set of such objects
3) Methods- behavior of the object
Variables
Methods
Student
SID: double
Name:String
Major:String
Schedule:String
…
getSID()
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 org.odmg.Implementation instance
2) Create a new Database Instance
3) Opens an ODMB Database (read-only or write-only mode)
4) Create a query instance5) Specify the query statement6) Execute the query7) 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…