Content deleted Content added
m Fix links to disambiguation page Schema |
m Date maintenance tags and general fixes: build 464: |
||
Line 1:
{{
| COI=July 2010
| advert=January 2010
Line 16:
Objectivity/DB uses a hierarchy of storage constructs. Objects are stored in logical clusters called containers. The containers are stored in databases that are cataloged in a [[federated database]]. Every object has a unique 64-bit or 32-bit Object Identifier [OID] that is a composite logical structure. The physical address space limitation for a single federation is in the millions of Terabytes range. The largest publicized Objectivity/DB installation at SLAC's [[BaBar experiment]] stored over a Petabyte of objects.<ref>[http://www-db.cs.wisc.edu/cidr/cidr2005/papers/P06.pdf Lessons Learned from Managing a Petabyte] Jacek Becla and Daniel L. Wang, 2005</ref><ref>[http://www.slac.stanford.edu/BFROOT/www/Public/Computing/Databases/ BaBar Database]</ref>
Objects can be linked to other objects using named uni-directional or bi-directional links. The links can have a cardinality of 1:1, 1:many, many:1 or many:many and use the OIDs to speed up the navigation of networks of objects. The OIDs are also used in support of scalable collections (tree, list, set etc.), indices and hash tables. Eliminating the relational [[Join]] operations inherent in a relational database gives Objectivity/DB a marked performance advantage.
Objectivity/DB is also different from RDBMSs in the way in which it handles queries. The application declares and initializes an iterator that locates and returns qualified objects as soon as they are located. Many RDBMSs manifest a view of the results before returning any of them. The Objectivity/DB Parallel Query Engine splits queries into subtasks directed at individual databases or containers. Remote query agents service each subtask and return results to the iterator. The Parallel Query Engine has two replaceable components: a splitter that can determine how to best subdivide the task and a filter in the query agent that can further refine a query. A query involving cities in Europe might be split into forty nine subtasks, one for each country. The filter might access an external data source before qualifying or disqualifying the objects that the Query Agent has found in the Objectivity/DB database or container.<ref>[http://www.odbms.org/download/025.01%20Guzenda%20The%20Evolution%20of%20a%20Distributed,%20Federated%20Object%20Query%20Engine%20June%202006.PDF The evolution of a distributed, federated object query engine] Leon Guzenda, June 2006</ref>
Line 26:
== Typical applications ==
Objectivity/DB is generally used in data intensive or real-time applications that manipulate highly complex, inter-related data. It may be embedded in a software or hardware product or used as a part of commercial, scientific or government project.
Early deployments were primarily in [[Computer-Aided Design]] and engineering applications. In the early 1990s a number of telecom equipment manufacturers started embedding Objectivity/DB in advanced [[intelligent network]] and [[element management systems]]. Notable deployments include the wireless SprintPCS and the Iridium low Earth orbit satellite networks. A number of process control, manufacturing and medical instrumentation systems incorporate Objectivity/DB because of its real-time performance and high availability.
Line 32:
Defense contractors and large science projects started using Objectivity/DB in the late 1990s. The government applications cover command and control, security, data fusion and intelligence applications. Objectivity/DB has been used in astrophysics, high energy physics, fusion, earth sciences, hydrography and bioinformatics applications. Most of these applications build and manipulate extremely large (Terabyte and Petabyte scale) databases.
The choice of an RDBMS or an ODBMS depends on many factors. An ODBMS can be ideal in a compute or data intensive object oriented system. However, if an RDBMS can comfortably meet the functional and performance requirements of an application with the available programming resources then there is probably no need to consider an ODBMS.
== See also ==
Line 44:
==Notes==
{{
==External links==
Line 50:
* [http://www.odbms.org ODBMS.ORG]
{{DEFAULTSORT:Objectivity/Db}}
[[Category:Proprietary database management systems]]
[[Category:Object-oriented database management systems]]
|