From Wikipedia, the free encyclopedia
As opposed to 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. Any number of fields of any length can be added to a document. Fields can also 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, YAML or JSON for information storage has advantages similar to document oriented database. In these languages each record can have a non-standard amount of information. Such information is properly called semi structured data.
Another advantage of document oriented databases is the ease of usage and programming so that untrained business users, for example, can create applications and design their own databases. Information can be added without worrying about the "record size" and so programmers simply need to build an interface to allow the information to be entered easily.
All XML databases are document-oriented databases. Other examples include:
- Lotus Notes (IBM)
- askSam (askSam Systems)
- Datawasp (Significant Data Systems)
- SimpleDB (Amazon.com)
- CRX (Day Software)
- MUMPS Database
- UniVerse (IBM)
- UniData (IBM)
Open source implementations:
- Apache Jackrabbit (Apache License)
- Apache CouchDB (Beta software), (Apache License)
- FeatherDB A Java clone of CouchDB. (Apache License)
- FleetDB A schema-free database implemented in Clojure and optimized for agile development. (MIT License)
- MongoDB - Cloud-scale document oriented database.
- Redis - Key-value store with support for lists and sets (BSD License)
- Riak - Decentralized, fault-tolerant, horizontally scaling document datastore (Apache License)
- StrokeDB (Alpha software, MIT License)
- ThruDB Built on top of Facebook’s Thrift framework that provides indexing and document storage services for building and scaling websites. (Alpha software, BSD License)
- DBSlayer is lightweight database abstraction layer (over MySQL) that talks to clients via JSON over HTTP used by the New York Times.
- XML Databases
- Comparison of document-oriented database management systems
- Database theory
- In-memory database
- Object database
- Online database
- Real time database
- Relational database
- Data hierarchy
- Assaf Arkin. (2007, September 20). Read Consistency: Dumb Databases, Smart Services. Labnotes:Don’t let the bubble go to your head!