Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Aptitude
  • Engineering Mathematics
  • Discrete Mathematics
  • Operating System
  • DBMS
  • Computer Networks
  • Digital Logic and Design
  • C Programming
  • Data Structures
  • Algorithms
  • Theory of Computation
  • Compiler Design
  • Computer Org and Architecture
Open In App
Next Article:
Definition and Overview of ODBMS
Next article icon

Definition and Overview of ODBMS

Last Updated : 11 May, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

The ODBMS which is an abbreviation for object-oriented database management system is the data model in which data is stored in form of objects, which are instances of classes. These classes and objects together make an object-oriented data model. 

Components of Object-Oriented Data Model: 
The OODBMS is based on three major components, namely: Object structure, Object classes, and Object identity. These are explained below. 

1. Object Structure: 
The structure of an object refers to the properties that an object is made up of. These properties of an object are referred to as an attribute. Thus, an object is a real-world entity with certain attributes that makes up the object structure. Also, an object encapsulates the data code into a single unit which in turn provides data abstraction by hiding the implementation details from the user. 

The object structure is further composed of three types of components: Messages, Methods, and Variables. These are explained below.  

  1. Messages - 
    A message provides an interface or acts as a communication medium between an object and the outside world. A message can be of two types: 

    • Read-only message: If the invoked method does not change the value of a variable, then the invoking message is said to be a read-only message. 
    • Update message: If the invoked method changes the value of a variable, then the invoking message is said to be an update message. 
       
  2. Methods - 
    When a message is passed then the body of code that is executed is known as a method. Whenever a method is executed, it returns a value as output. A method can be of two types: 

    • Read-only method: When the value of a variable is not affected by a method, then it is known as the read-only method. 
    • Update-method: When the value of a variable change by a method, then it is known as an update method. 
       
  3. Variables - 
    It stores the data of an object. The data stored in the variables makes the object distinguishable from one another. 
     


2. Object Classes: 
An object which is a real-world entity is an instance of a class. Hence first we need to define a class and then the objects are made which differ in the values they store but share the same class definition. The objects in turn correspond to various messages and variables stored in them. 

Example - 

class CLERK    { //variables      char name;      string address;      int id;      int salary;      //Messages      char get_name();      string get_address();      int annual_salary();   };


In the above example, we can see, CLERK is a class that holds the object variables and messages. 

An OODBMS also supports inheritance in an extensive manner as in a database there may be many classes with similar methods, variables and messages. Thus, the concept of the class hierarchy is maintained to depict the similarities among various classes. 

The concept of encapsulation that is the data or information hiding is also supported by an object-oriented data model. And this data model also provides the facility of abstract data types apart from the built-in data types like char, int, float. ADT's are the user-defined data types that hold the values within them and can also have methods attached to them. 

Thus, OODBMS provides numerous facilities to its users, both built-in and user-defined. It incorporates the properties of an object-oriented data model with a database management system, and supports the concept of programming paradigms like classes and objects along with the support for other concepts like encapsulation, inheritance, and the user-defined ADT's (abstract data types).
 

ODBMS stands for Object-Oriented Database Management System, which is a type of database management system that is designed to store and manage object-oriented data. Object-oriented data is data that is represented using objects, which encapsulate data and behavior into a single entity.

An ODBMS stores and manages data as objects, and provides mechanisms for querying, manipulating, and retrieving the data. In an ODBMS, the data is typically stored in the form of classes and objects, which can be related to each other using inheritance and association relationships.

In an ODBMS, the data is managed using an object-oriented programming language or a specialized query language designed for object-oriented databases. Some of the popular object-oriented database languages include Smalltalk, Java, and C++. Some ODBMS also support standard SQL for querying the data.

ODBMS have several advantages over traditional relational databases. One of the main advantages is that they provide a natural way to represent complex data structures and relationships. Since the data is represented using objects, it can be easier to model real-world entities in the database. Additionally, ODBMS can provide better performance and scalability for applications that require a large number of small, complex transactions.

However, there are also some disadvantages to using an ODBMS. One of the main disadvantages is that they can be more complex and harder to use than traditional relational databases. Additionally, ODBMS may not be as widely used and supported as traditional relational databases, which can make it harder to find expertise and support. Finally, some applications may not require the advanced features and performance provided by an ODBMS, and may be better suited for a simpler database solution

 

Features of ODBMS:

Object-oriented data model: ODBMS uses an object-oriented data model to store and manage data. This allows developers to work with data in a more natural way, as objects are similar to the objects in the programming language they are using.

Complex data types: ODBMS supports complex data types such as arrays, lists, sets, and graphs, allowing developers to store and manage complex data structures in the database.

Automatic schema management: ODBMS automatically manages the schema of the database, as the schema is defined by the classes and objects in the application code. This eliminates the need for a separate schema definition language and simplifies the development process.

High performance: ODBMS can provide high performance, especially for applications that require complex data access patterns, as objects can be retrieved with a single query.

Data integrity: ODBMS provides strong data integrity, as the relationships between objects are maintained by the database. This ensures that data remains consistent and correct, even in complex applications.

Concurrency control: ODBMS provides concurrency control mechanisms that ensure that multiple users can access and modify the same data without conflicts.

Scalability: ODBMS can scale horizontally by adding more servers to the database cluster, allowing it to handle large volumes of data.

Support for transactions: ODBMS supports transactions, which ensure that multiple operations on the database are atomic and consistent.

Advantages:

Supports Complex Data Structures: ODBMS is designed to handle complex data structures, such as inheritance, polymorphism, and encapsulation. This makes it easier to work with complex data models in an object-oriented programming environment.

Improved Performance: ODBMS provides improved performance compared to traditional relational databases for complex data models. ODBMS can reduce the amount of mapping and translation required between the programming language and the database, which can improve performance.

Reduced Development Time: ODBMS can reduce development time since it eliminates the need to map objects to tables and allows developers to work directly with objects in the database.

Supports Rich Data Types: ODBMS supports rich data types, such as audio, video, images, and spatial data, which can be challenging to store and retrieve in traditional relational databases.

Scalability: ODBMS can scale horizontally and vertically, which means it can handle larger volumes of data and can support more users.

Disadvantages:

Limited Adoption: ODBMS is not as widely adopted as traditional relational databases, which means it may be more challenging to find developers with experience working with ODBMS.

Lack of Standardization: ODBMS lacks standardization, which means that different vendors may implement different features and functionality.

Cost: ODBMS can be more expensive than traditional relational databases since it requires specialized software and hardware.

Integration with Other Systems: ODBMS can be challenging to integrate with other systems, such as business intelligence tools and reporting software.

Scalability Challenges: ODBMS may face scalability challenges due to the complexity of the data models it supports, which can make it challenging to partition data across multiple nodes.


Next Article
Definition and Overview of ODBMS

A

AkshitaKumawat
Improve
Article Tags :
  • Technical Scripter
  • DBMS
  • Technical Scripter 2018

Similar Reads

    Application of DBMS
    The efficient and safe management, saving and retrieval of data is made possible by the Database Management Systems. They provide strong solutions for the data management demands and are the foundation of the numerous applications used in a variety of the sectors. Recognizing the uses of DBMSs aids
    5 min read
    Difference between DBMS and DSMS
    A Data Stream Management system targets different needs of data management than Database Management Systems. While DBMS, allows the management of structured static data with data integrity and allows the execution of complex queries, it fits into the notion of stable data environments, whereas DSMS
    6 min read
    Data Storage and Querying in DBMS
    Database Management System is the collection of interrelated data/information or a set of programs that manages controls, and accesses the use of data. Through DBMS, users can manage the data efficiently in a database to increase accessibility and productivity. For example - Employee records and tel
    4 min read
    Base Properties in DBMS
    Pre-requisites: ACID Properties in DBMS The BASE properties of a database management system are a set of principles that guide the design and operation of modern databases. The acronym BASE stands for Basically Available, Soft State, and Eventual Consistency. Basically Available This property refers
    2 min read
    Difference Between OODBMS and ORDBMS
    Many different models exist in the field of database management which describes the way how data is to be stored and placed. Some of the models that can be compared easily are Object-Oriented Database Management Systems (OODBMS) and Object-Relational Database Management Systems (ORDBMS). It is impor
    4 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences