Object-Oriented vs. RelationalToday, when relational databases absolutely dominate in the market, it is hard to find an example of an alternative approach. What is it all for, if there is no such thing as an object oriented database? Well, probably for that it would come to existence some day. On the other hand, there is no such thing as a relational databases neither. None of the commercial DBMS is relational in the exact meaning of the word, they all incorporate numerous non-relational features, and it is this inconsistency that makes them usable and competitive. These are rather SQL databases than relational databases. What do we have? Oracle, DB2, SQL Server, a few quasi-relational systems like MS Access and FoxPro. Mainframes as a sort of software dinosaurs. Various OLAP systems are entirely based on the same principle, with the only difference in the number of dimensions. The only non-SQL system that can be compared with the SQL giants is Lotus Notes, which, however, is already going to abandon its native structure in favor of DB2. And Jasmine, the only example of an object-oriented DBMS that at least tried to compete with SQL based products. Unfortunately, it has been abandoned by the authors and re-profiled to serve as an integration platform rather than a database management system. However, there is some hope. The roots of the domination of the relational approach are in the very concept of database, as it has practically formed. A database was, and generally is considered as a kind of warehouse, to store essentially static data. The predominant usage of such a data store was to extract data and combine them in a table, the only form of report that the majority of computer users understand. It is quite logical that the structure of the database would reflect this common need and tuned to maximum performance in table generation. All the other processing occurred outside the DBMS, and did not influence its functionality. Ray Ozzie's Lotus Notes was the first breach in the wall. It was an instance of groupware system, workflow rather than data oriented. Stress on collaborative work, parallel data processing, individualization and secure transactions demanded an entirely different paradigm, since lack of support for multiple synchronized data update threads was the weak place of relational databases. The focus was shifted to from a database to an application, combining diverse data in a manner transparent for the user. Today, when all the commercial DBMS are enhanced with collaborative tools and the means of workflow automation, the dilution of the strictly relational paradigm is evident. It will take time, however, to become aware of the necessity of a quite different organization of data storage and retrieval. As soon as plain table reports will give way to dynamic multiaspect representations allowing folding and unfolding in a different dimension, tables on disk will become too restrictive. A number of prejudices will have to be overcome in this development.
Prejudice 1. Object-oriented organization is entirely different from table representation.
Prejudice 2. Object-oriented organization is not fit for flexible reporting. It should be noticed that relational databases are not as user-friendly as they claim to be. It takes a qualified user and hard work to construct a correct SQL query to produce a non-standard report combining many tables. Similarly, in Lotus Notes one can easily produce standard reports, with a skilled programmer needed for non-trivial cases. An object-oriented database is much more comprehensible, since the user only deals with the natural properties of the objects, rather than with abstract data fields. It is a requirement to the implementation, to efficiently extract data according to such hierarchical queries.
Prejudice 3. Object-oriented databases are huge. In an object-oriented database, one may have an overhead of the object structure data to store with each item, in addition to the item value. More flexibility demands more links between objects, and additional storage. However, this difficulty can be easily circumvented, if item structure becomes yet another object and is stored separately from the item itself. One would simply create a database of available classes and use class references. Even more scarcity could be achieved with class lists in the headers of databases, generalizing the DBF header format. That is, the huge size of a database is mainly due to lack of object-oriented techniques, rather than their implementation.
Prejudice 4. Object-oriented databases are too complex to efficiently manage. Object-oriented databases are much better than relational databases, when it comes to change in data structures. It is well known how painful such a change is in an SQL-based system, where all the queries have to be modified, and the users have to learn where the data they need is located in the new infrastructure. A trivial change like allowing more positions in a key string sometimes would raise insurmountable difficulties. In an object-oriented approach, any change is transparent for the user, since data locations are separated from data links, and the same fore-end organization can correspond to any back-end representation.
Prejudice 5. Object-oriented databases are still far away, while relational databases are
here at now.
[Computers]
|