<html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>RDBMS And OODBMS Application</title> <link rel="stylesheet" type="text/css" href="../../../../style.css"> </head> <body> <div class="CommonContent"> <div class="CommonContentArea"> <h1>RDBMS And OODBMS Application</h1><div id="TOC"><div id="TOCinner"><span class="TOCtitle">Contents</span><div class="TOCcontents"><ul><li><a href ="#Object Oriented Development">Object Oriented Development</a></li><li><a href ="#Embedded Applications">Embedded Applications</a></li><li><a href ="#Complex Object Structures And Hierarchies">Complex Object Structures And Hierarchies</a></li><li><a href ="#Refactoring And Schema Evolution">Refactoring And Schema Evolution</a></li><li><a href ="#Agile Development">Agile Development</a></li></ul></li></ul></div></div></div> <p>Relational data systems are proven market leaders in persistence solutions. They are mature and reliable choice for a general purpose solution. Moreover, RDBMS is supported by a huge number of applications and components and a large amount of human resources experienced in the technology.</p> <p>However, OODBMS has some valuable advantages, which can't be underestimated:</p> <ul><li>native Object Oriented language support (no object-relational impedance mismatch);</li><li>native complex object structures and hierarchies support;</li><li>easy refactoring and product evolution;</li><li>zero-administration;</li><li>continuous regression testing.</li></ul> <p>Some of the most obvious usecases and advantages of OODBMS are listed below.</p> <a name="Object Oriented Development"></a><h2>Object Oriented Development</h2> <p>The fact that OODBMS technology is the perfect match for using in OO development environment is obvious from the very name. Though RDBMS has a wide support in tools and methods of using in OO environment there will always be an overhead of the translation from the object to relational world, commonly known as object-relational impedance mismatch.</p> <a name="Embedded Applications"></a><h2>Embedded Applications</h2> <p>Embedded device applications need a small-footprint zero-administration database, which makes a perfect match with an OODBMS. In addition, they usually need a quick response-time, which can be better achieved by a native OO technology, when no object-relational conversion is needed.</p> <a name="Complex Object Structures And Hierarchies"></a><h2>Complex Object Structures And Hierarchies</h2> <p>In applications having to deal with deep object structures (tree or graph), OODBMS offers a much easier native way to store them. Trees or graphs cannot be easily translated to RDBMS structure, so that the application has to deal with often complex conversion algorithms, which are difficult to maintain and refactor. On the other hand, OODBMS can store these structures transparently without any additional coding.</p> <p>The same is true for difficult inter-objects relationships. In RDBMS they are realized with foreign keys. In some cases, you will need to fetch object by object until you will reach the final relation. In OODBMS all you need is to specify an <a href="../../../object_lifecycle/activation.html" class="wikiLink">activation depth</a> or use <a href="../../../object_lifecycle/activation/transparent_activation_framework.html" class="wikiLink">transparent activation</a> to reach all the related objects through the top-object fields.</p> <p>From the said above you can conclude that the applications using objects with collection members (one-to-many relationships) will also benefit from OODBMS technology.</p> <a name="Refactoring And Schema Evolution"></a><h2>Refactoring And Schema Evolution</h2> <p>Most applications evolve as the time goes. It means that their class and data structure (schema) can change. In applications using relational databases schema evolution is quite work-consuming process: the schema must be changed, the class structure must be changed and the query collection must be changed too. In OODBMS applications, only class structure is a subject of change and the process can be highly automated by using modern refactoring techniques available from IDEs.</p> <a name="Agile Development"></a><h2>Agile Development</h2> <p>OODBMS makes it possible to implement agile development process in your team:</p> <ul><li>continuous refactoring; </li><li>agile modeling; </li><li>continuous regression testing; </li><li>configuration management; </li><li>developer "sandboxes".</li></ul> <p>The use of RDBMS technology complicates the adoption of these techniques due to the technical impedance mismatch, the cultural impedance mismatch, and the current lack of tool support. </p> </div> </div> <div id="footer"> This revision (2) was last Modified 2007-06-04T17:28:38 by Tetyana. </div> </body> </html>