The lack of standard definition and framework for an OODBMS led to the design of first Object-Oriented Database System manifesto that was published in the Proceedings of the First International Conference on Deductive and Object-Oriented Databases, Kyoto, Japan, December 1989. The manifesto included a set of features that a DBMS must· have to be referred as an OODBMS. The features framed were subdivided in three categories:
• Mandatory features for OODBMS included all the typical properties of typical
Object oriented databases as well as general database systems
• Optional features for OODBMS included multiple inheritance, Type checking, Design
Transactions, Versions and distributions
• Open Features for OODBMS included uniformity, programming paradigm and representation systems.
The mandatory features are tabulated as below:
These mandatory features are described as:
Feature of Persistence: This feature of OODBMS includes the survival of data as well as persistence should be orthogonal and implicit. 1ne orthogonal implies each object should be persistent as such and the user should not have to explicitly move or copy data to make it persistent. In particular, a database can store, individual objects and the volatile main memory of an application can contain collections of objects.
Able to handle large databases: This feature· includes the optimal “management of very large databases using techniques like Data clustering, Data buffering, Query optimization, Access path selection and Index management.
Controlled Concurrency: This feature guarantees harmonious coexistence among users. Working simultaneously on the database and enjoying controlled sharing. By allowing multiple transactions to run concurrently will improve the performance of the system in terms of increased throughout or improved response time. Ensuring consistency in spite of concurrent execution of transaction require additional effort which is performed by the concurrency controller system of DBMS.
Restoring or Data Recovery: This feature indicates the restoration of the system to a state that existed before the software or hardware based crash such as processor or disk failure. The recovery refers to the various strategies and procedures involved in protecting your database against data loss and reconstructing the data such that no data- is lost after failure.
Query facility on basis: This feature includes the facility of applying query that should be efficient using query optimization and application independent that can work on any database.
Construction of Complex Objects: This feature enables the OODBMS to construct complex objects like tuples sets, lists and arrays from the simple objects like integers, characters, byte strings Boolean and float using the constructors and appropriate operators.
Identity of an object: This feature ensures that each object is assigned an Object Identifier (OID) when it is created. Object identity assists OODBMS to uniquely identify an object, thereby automatically providing entity integrity. In fact, as object identity ensures system-wide uniqueness, it provides a stronger constraint than the relational data model’s entity integrity, which requires any uniqueness within a relation.
Feature of Classes and types: This feature supports the notion of classes and types for defining a set of similar objects. Objects that have the safe attributes and respond to the same messages can be grouped together to form a class. The attributes and associated methods are defined once for the’ class rather than separately for each object. The type of variables and expressions help to do the type checking at compile time, to check the correctness of the programs.
Property of encapsulation: This property of OODBMS implies that an object contains both the data structure and the set of operations that can be used to manipulate it. An object is said to encapsulate (hide) data and program. This means that the user cannot see the inside of the object but can use the object by calling the program part of the object.
Property of Inheritance: This property of OODBMS implies that feature of objects by which instances of a class can have access to data and programs contained in a previously defined class, without those definitions being restarted. The different types of inheritance used for refusing the code are substitution inheritance, inclusion inheritance, constraint inheritance and specialization.
Property of overriding combined with late binding: This property of OODBMS implies the ability to use the same message to objects different classes and have them behave differently. Thus we can define the message “+” for both the addition of numbers and the concatenation -joining) of characters, even though both these operations are completely different. This feature provides the’ ability to use the same word to invoke different methods, according to similarity of meaning. Here the late binding is being done as the- system cannot bind operation names to programs at compile time and thus, operation names are resolved at run-time.
Property of Extensibility: This property of OODBMS implies that new data types to be built from existing types. The ability to factor out common properties of several classes and form them into a super class that can be shared with sub-classes can greatly reduce redundancy within system. The usage of both system defined types and user-defined types is same.
Property of Computational Completeness: This feature of OODBMS implies that does can employ any computable function using the reasonable connectivity to any existing programming language. This feature makes OODBMS more powerful than a database system which only stores and retrieves data and performs simple computations on· atomic values.