ODBMS FAQ |
|
Here are answers to frequently asked questions about object database management systems (ODBMSs):
Q. What are the benefits of using an object database management system (ODBMS)? A. From my perspective, there are two primary benefits in using this technology. Both benefits reflect a basic idea -- when you use an ODBMS, the way you use your data is the way you store it. The first benefit can be found in development. When you use an ODBMS, you will write less code than if you were writing to an RDBMS. The reason for the smaller amount of code is simple -- when you are using Java or C++ -- you won't have to translate into a database sub-language such as SQL, ODBC, or JDBC. You will be writing in the programming language. The result is less code. In many cases, this code be as much as 40 percent less. The corollary to this is that any data structure that you can imagine in Java or C++ can be stored directly without translation in an ODBMS. This is an important thought. You can store very complex data structures directly in an ODBMS. The second benefit, which is related, occurs in production. If you are working with complex data, an ODBMS can give you performance that is ten to a thousand times faster than an RDBMS. That's because when the data is read off the disk, it is already in the format that Java or C++ uses. No translation is needed. The range in performance gain depends on the complexity of your data.
Q. When should you use an ODBMS? A. The advice that I give my clients is really pretty simple. Use an ODBMS when you have a business need for high performance on complex data. But, what does that mean exactly? Briefly, when you meet a business need, you either make or save some money. High performance, in the context of an ODBMS, means that you literally could see a performance improvement of between ten to a thousand times in comparison with an RDBMS. And finally, you can be sure that you have complex data if your data looks like a connected graph, such as a bill of materials or a schema that has many intersection entities. For example, lets say you have an automated stock trading application. The application receives a live feed of stock data. It uses that information with a historical database (trust me, this database has complex data) and applies an algorithm that determines if any action should occur based on the live feed. The faster the database search is, the shorter the elapsed time between receiving data from the live feed and determining the appropriate action. Assuming the algorithm is correct, this means the stock trading application will either be making more money or losing less money. In other words, this is an example where there is a business need for high performance on complex data.
Q. Can you provide examples where ODBMSs are used production applications? A. Here are a few examples of ODBMSs in use in production applications:
These are just some examples. Many more exist.
Q. Can ODBMSs handle large databases? A. Yes. In fact, one of the largest database that I have ever heard of is in production using an Objectivity ODBMS at Stanford Linear Accelerator Center (SLAC). As of March, 2002, SLAC stored 500 terabytes of production data using Objectivity/DB. The production data is distributed across 100 on-line servers. SLAC uses Objectivity/DB for its flagship research project named B Factory, which includes the PEP II accelerator and the BaBar particle detector. More information.
Q. Are there any barriers to using ODBMSs? A. Here are some possible barriers:
I am sure some of these barriers might make sense to you. Nevertheless, if they incapacitate you, it is difficult to try new things. Sometimes new things are good things. So my suggestion is that you should become familiar with the technology if your business could benefit from high performance on complex data.
Q. Will ODBMSs replace RDBMSs? A. That is highly unlikely. Someone once told me that, "Data tends to stick where it lands." There are many applications built on existing RDBMSs. It's difficult, if not impossible, to move off those databases. That would be unrealistic. Where you primarily see ODBMSs is in new development. In these cases, someone has figured out how to use high performance on complex data to meet a business need. And you often see ODBMSs working side by side with RDBMSs.
Q. Can object databases and relational databases co-exist? A. Absolutely and this is what you usually see. Typically, people using object databases carve out the part of their IT systems that need high performance on complex data. They then will do other processing, such as back office analysis, using an RDBMS. Often the object database data is transferred to the relational database during quieter processing times. I like to characterize this as database diversity -- using the right tool for the right purpose. For some examples, take a look at Architectures using databases in the middle tier.
Q. How do ODBMSs compare to object-relational mapping products? A. First, let's look at the similarities. Object database management system products and most object-relational mapping (OR mapping) products let you program in Java or C++ without the use of a database sublanguage such as embedded SQL, ODBC, or JDBC. That part of the development cost is comparable. The main difference between the two occurs in the use and storage of the data. OR mapping products require you to map the object model to a relational model, which requires additional development and can sometimes be a significant performance hit in production. That's because the way the data is stored is different from how it is used. The term for translating data from storage format to application format and back is "impedance mismatch." This may be familiar to you. In situations where high performance on complex data is required, impedance mismatch can create performance problems. Also see Object-relational mapping articles (new window).
Q. Does it make sense to use an ODBMS in a web server? A. Yes, many web sites are currently using ODBMSs. With the projected growth in XML use, it will become more compelling to consider an ODBMS for a web site. The reason is that XML is basically an object model. So, for storing and getting object data, you can't beat an ODBMS on performance. In addition, you will have reduced development costs because you won't need to translate the XML into some other storage model. That means that XML plus an ODBMS will make for a high performance web site. Add to this the plans for using XML as a means for business to business transactions and you can see why some people see XML as the killer application use for ODBMSs. Also see XML database articles (new window).
Q. What are some good sources of information on ODBMS technology? A. There are several good books. They include:
Q. I hear that it's hard to get people with sufficient skills to work on ODBMS projects. A. Finding good people is an industry-wide problem and should not be a reason not to use any particular technology. The primary skill needed to work on an ODBMS is the ability to develop an object model and to program in an object programming languages. Those skills, however, are not unique to using an ODBMS. You need them for an O-R Mapping project as well or even to write an object program.
Q. Why aren't there any public ODBMS benchmarks? A. The fact is that there aren't any useful public benchmarks for and type of database product. The reason has to do with the licensing of database products which usually prohibits publishing any benchmarks. For some background on the problems with creating useful comparison benchmarks, take a look at the August 1999 issue of PC Magazine, "The Test That Wasn't," on page 29. The column also explains why even the public TPC-C benchmarks are not useful in selecting a database product. The column ends with advice that is similar to what I tell my clients: "If performance is important to your database application, we strongly encourage you to run you own tests to help you choose the most suitable product."
Read more free articles on this siteThere are nearly 400 pages of articles on this site with over 50 pages on object-oriented database management systems. Search this site for more articles
Custom Search
Browse this site for more articlesClick on the topics below to browse the articles on this site.The arrows show the path to the current article: ODBMS FAQ.
Related recent articles from Google News
More related news: "object database" OR "object-oriented... - Google News Related books at Amazon.com
More related books: Search Amazon.com for object database
Copyright © 2000-2009 Barry & Associates,
Inc. All Rights Reserved.
|
|
|