An object-oriented database management system (OODBMS) helps programmers make objects created in a programming language behave as a database object. Object-oriented programming is based on a series of working objects. Each object is an independently functioning application or program, assigned with a specific task or role to perform. An object-oriented database management system is a relational database designed to manage all of these independent programs, using the data produced to quickly respond to requests for information by a larger application.
To illustrate an OODBMS, we can use a simple commercial kitchen with three staff members: head chef, cook and second cook. The cook is responsible for steak and the second cook is responsible for fries and salad. Both are busy working on their functions, even without any orders. The head chef is the object-oriented database management system, the cook and second cook are both objects. A customer places an order for steak, fries and salad which the waiter hands over to the head chef. The head chef calls out the order. The cook quickly provides the cooked steak to the plate, at the same time the second cook adds the fries and salad and tells the chef the order is done. They both are able to provide exactly what is required immediately, because they were performing their individual tasks in advance.
Each item could have been done by a single application or the head chef, but it would have taken more time and split resources in multiple directions, further reducing response time. The objects or cooks can be used as separate programs, but the response time is faster and the information is provided in one cohesive package when coordinated by the chef or OODBMS.
The increased utilization of object-oriented programming languages like Python, Java, C#, Visual Basic, .Net, C++, Objective-C and Smalltalk have all increased the popularity of the OODBMS.
An object-oriented database management system is generally best used in business applications where there is a requirement for high performance processing in an complex environment. Industries with a high demand for this type of programming typically are in the engineering, telecommunications, specialized financial services and scientific research fields.
The Object Data Management Group is a group of object database and mapping vendors, academics and others who came together to create a set a standard specifications for an object-oriented programs. Such a standard would potentially improve the portability of applications written for object-oriented database management system, and thereby reduce the cost incurred in creating new code each time. The group disbanded in 2001, but various groups and initiatives are still attempting to define a standard to allow for cross functional applications.