Document-oriented database

From Wikipedia, the free encyclopedia

A Document-oriented database (No acronym) is a computer program designed for document-oriented applications.

These systems may be implemented as a layer above an RDBMS or OODBMS.

Example implementations include;

Open source implementations:

Contents

[edit] Use

Typical uses of DBMS use include email (Lotus Notes), Digital Libraries and Repositories, Customer Relationship Management (CRM)(eg the CouchDB based Ajatus CRM system), Personal Information Management(PIM), Content Management Systems(CMS) and Help/Reference Desk systems.

It is worth noting that Lotus Notes has been used for all of the above.

[edit] Technical Explanation

As against Relational Databases document-based databases do not store data in tables with uniform sized fields for each record. Instead, each record is stored as a document that has certain characteristics. You can add any number of fields of any length to a document. Also fields can contain multiple pieces of data.

For example here's a document:

FirstName="Bob", Address="5 Oak St.", Hobby="sailing".

Another document could be:

FirstName="Jonathan", Address="15 Wanamassa Point Road", Children="Michael,10";"Jennifer,8","Samantha,5","Elena,2".

Notice that both documents have some similar information and some different - but unlike a relational database where each record would have the same set of fields and unused fields might be kept empty, there are no empty 'fields' in either document (record) in this case. This system allows information to be added any time without wasting storage space for "empty fields" as in relational databases.

It is noteworthy here that using XML for information storage has advantages similar to document oriented database. In XML each record can have whatever information it wants. The concept is the one that document-oriented databases like Lotus have been using for well over a decade.

Another advantage of document oriented database is the ease of usage and programming so that untrained business users too can create applications and design their own databases. Information can be added without worrying about messing with the "record size" and so programmers simply need to build an interface to allow the information to be entered easily.



[edit] References

[edit] Links

http://solprovider.com/articles/20020612&cat=Lotus/IBM