Object-oriented database and class object communication System consists of multiple complex software components that interact based on certain object-oriented paradigm standards.
The new system intends to solve the problems of the old system by providing improvement on the architecture of object database models and class object communication to make it possible for the system to handle object databases as well as interact directly with programming language class objects in a manner that will simplify the user experience in using object-oriented database management system.
In the new system, the Object database need to be created in such a way that it directly communicates with object-oriented classes irrespective of the type of query or request made on the system whether they are related or not. This needs to be done without translating from higher-level language such as SQL, in a compact way for data manipulation operations. The
85
optimizer through the process of optimization determines which indices should be used to execute a query and in which order the operations of a query should be executed. To this end, the optimizer enumerates alternative plan to achieve the task once the query has been presented to the system for analysis and processing.
This will result to a possible rapprochement of SQL3, ODMG/OQL and other object database proposals. The idea is that DBMS products continue to maintain their relational roots for managing traditional data, while at the same time addressing some of the shortcomings of the relational model by providing some of the benefits offered by the object-oriented paradigm (and its facilities for handling non-traditional and complex data).
Proposed features: In the proposed system the features proposed are the combination of complex and simple data. This will result to new data model which include new and extended data types including abstract data types, and classes as well as multiple null states, support for objects and object identity, encapsulation, inheritance and triggers. They also include primitive types like INTEGER, DECIMAL, CHARACTER, BIT, TIME, DATE and many other variations of these. All of the data types specified in the existing SQL-92 standard could be maintained, though some may be modified and extended. For instance, both the CHARACTER and BIT data types could be extended to include the concept of a large object.
A large object is used to store an entire object or piece of data in a single large field. A CHARACTER LARGE OBJECT is used to store a large piece of character data without the use of fields while a BINARY LARGE OBJECT can be used to facilitate the use of multimedia objects within the database. The key to a large object data type is that the database is not concerned with the data items internal structure. Applications or implementations that support these data types impose severe restrictions on how these large objects may be
86
referenced in SQL definitions and statements such as not allowing them to participate as a primary key.
Two additional data types not previously facilitated by the standard have also been proposed.
These two new data types are BOOLEAN and ENUMERATED. BOOLEAN data types can only take on the values of 'True', 'False' or 'Unknown'. „Unknown‟ is proposed as an extension due to the roll of fuzzy logic in the development of intelligent systems that can control the objects behavour. ENUMERATED data types permit you to "define a domain whose values are restricted to a small set of values". The command CREATE DOMAIN colors (blue, red, yellow) defines a domain called colors and restricts values inserted into the column accepting the ENUMERATED data type to one of the three values specified by the domain.
The second group of data types that is important is the abstract data type, a data type not previously supported. As mentioned earlier, abstract data types are a feature of the object-oriented paradigm. The ADT data type is used by to facilitate the incorporation of objects within the SQL structure. "Abstract data types allow users to define new structures for their own data (Garvey,2010). New data types may be constructed by defining abstract data types in terms of existing predefined data types or previously generated abstract data types. These data types therefore have no logical representation. Abstract data types also support the object-oriented concepts of encapsulation and subtyping (inheritance). In the new proposal a structure for direct communication with classes and objects inside the manipulating code of the programming language used in the implementation of the databases is required. This will allow request and actions to response from the object-database to be built in code as a class that can be instantiated, and inherited by other classes for efficient implementation of system.
This will form a meta type that have direct communication link to object at the two ends of
87
the system both at the object-database end and the objects on manipulating code end. This will surely lead to an improvement to Object-Query Language used in manipulating the database in the system.
3.3.1 Advantages of the Proposed System
The following advantages would be derived from the proposed system:
1. Inheritance: The system allows the sharing of object data component by several users