Showing posts with label Object Oriented Data Model. Show all posts
Showing posts with label Object Oriented Data Model. Show all posts

Friday, February 22, 2019

Object Oriented Data Model

Object Oriented Data Model:
This data model is method of representing real world objects. It considers each object in the world as objects and isolates it from each other. It groups its related functionalities together and allows inheriting its functionality to other related sub-groups.
It enables us to create classes, organize objects, structure an inheritance hierarchy and call methods of other classes. Besides these, it also provides the facilities associated with standard database systems. The user will create classes, objects, inheritance and so on and the database system will store and manage these objects and classes.
          Let us consider an Employee database to understand this model better. In this database we have different types of employees – Engineer, Accountant, Manager, Clark. But all these employees belong to Person group. Person can have different attributes like name, address, age and phone.


Advantages and Disadvantages:

Advantages:

1.      Enriched modeling capabilities:

The object-oriented data model allows the 'real world' to be modeled more closely. The object, which encapsulates both state and behavior, is a more natural and realistic representation of real-world objects.

2.      Extensibility:

OODBMSs allow new data types to be built from existing types. The ability to factor out common properties of several classes and form them into a superclass that can be shared with subclasses can greatly reduce redundancy within system is regarded as one of the main advantages of object orientation.

3.      Capable of handling a large variety of data types:

Unlike traditional databases (such as hierarchical, network or relational), the object oriented database are capable of storing different types of data, for example, pictures, voice video, including text, numbers and so on.

4.      More expressive query language:

Navigational access from the object is the most common form of data access in an OODBMS. This is in contrast to the associative access of SQL (that is, declarative statements with selection based on one or more predicates). Navigational access is more suitable for handling parts explosion, recursive queries, and so on.

5.      Support for schema evolution:

The tight coupling between data and applications in an OODBMS makes schema evolution more feasible.

6.      Support for long-duration, transactions:

Current relational DBMSs enforce serializability on concurrent transactions to maintain database consistency.

7.      Applicability to advanced database applications:

There are many areas where traditional DBMSs have not been particularly successful, such as, Computer-Aided Design (CAD), Computer-Aided Software Engineering (CASE), Office Information System(OIS), and Multimedia Systems. The enriched modeling capabilities of OODBMSs have made them suitable for these applications.

8.      Improved performance:

There have been a number of benchmarks that have suggested OODBMSs provide significant performance improvements over relational DBMSs. The results showed an average 30-fold performance improvement for the OODBMS over the RDBMS.

Disadvantages of OODBMSs

1. Lack of universal data model: There is no universally agreed data model for an OODBMS, and most models lack a theoretical foundation.
2.  Lack of experience: In comparison to RDBMSs the use of OODBMS is still relatively limited. This means that we do not yet have the level of experience that we have with traditional systems.
3.  Lack of standards: There is a general lack of standards of OODBMSs. We have already mentioned that there is not universally agreed data model.
4.   Competition: Perhaps one of the most significant issues that face OODBMS vendors is the competition posed by the RDBMS and the emerging ORDBMS products.
     5.     Locking at object level may impact performance: Many OODBMSs use locking as               the basis for concurrency control protocol. However, if locking is applied at the object           level, locking of an inheritance hierarchy may be problematic, as well as impacting                 performance.

-profshardulp.patil@gmail.com