views:

3527

answers:

12

We all know RDBMS, but what about Document-oriented databases?

Consider the things that you leave an RDBMS to do, like indexing, complex query structure, mathematical functions, storage, transactions etc...

+2  A: 

My first answer, the file system, but you really need to update your question with more context.

jwanagel
I have added more requirements about what to look for in a Document Database.
Like jwanagel said, it's called the File System. As to your additional requirements, that's called "Desktop Search" or "Google Desktop" depending on your point of view.
Chris Lively
+6  A: 

I can't say it's the best, but it is very interesting: Apache CouchDB: http://incubator.apache.org/couchdb/

AlexDuggleby
A: 

Used to use Documentum (www.documentum.com) at a large insurance company I used to work for. Java based (well the API we used was Java).

Can't imagine it is cheep though.

Ron Tuffin
+2  A: 

Not that it's a Document Database as such, but Daisy works great in this capacity. Mainly because you can author documents within it (like a wiki) you can visually search for existing documents. Also when you upload external files like PDFs, DOCs, etc, it fully indexes them so you can search within their content.

You can also add custom data fields and it has it's own query language that you can use for various tasks. It also has revision control and a security/permissions system.

Dan Harper - Leopard CRM
+1  A: 

Do you mean something like a document-oriented database, or maybe a document management system? Many of these systems are built on top of RDBMS's, in a way they're just specialized database apps like anything else.

Jason Morrison
I guess I mean document-oriented database. Taking a different view to storing data, not in tables or rows, but in flexible documents.
A: 

Usually you store all Metainformation of documents in a RDBMS. The documents itself are stored inside a high performance filesystem and are indexed by the database. On top of that you can server your documents via a webserver to 3rd party applications.

Stephan
A: 

I'd mention SharePoint for enterprise levels.

mortenbpost
A: 

Even though it has fallen out of popularity, Lotus Notes/Domino was designed for storage of semi-structured data.

A: 

Best = most powerful/flexible/extensible/scalable/secure?

Notes. It really hasn't "fallen out of popularity". It just tends to be under most people's radar.

Andrew Brew
+1  A: 

Maybe you should check out XML Databases such as eXist which has XQuery structured querying and enhances it with Lucene text indexing.

There's an interesting QCon 2010 presentation by Emil Eifrem where he talks about the four different types of NoSQL databases one of which he calls the Document - inspired by Notes

  • Document databases are KV pairs collected into documents
  • CouchDB lots of credit for quality of REST API and very interesting Erlang
  • MongoDB is CouchDB in C++
Andy Dent
+3  A: 

I have actually been researching this myself, and I haven't started yet, but I plan on using MongoDb for my next project. Other options are CouchDb.

Using MongoDb, you are giving up transactions though, so don't use it for any high-value data. (ex. financial)

Some examples of sites using MongoDb are Github, and Sourceforge

It stores data in BSON format, and it makes so much sense for web applications.

Another NoSQL options you should look into is Cassandra (facebook, and digg use this)

Patrick Scott
yea the 'file system' answers were funny, but I think given the context that we're all in, we know what he meant by document db.. plus I found this question nearly at the top of a 'java document database' search, so a more comprehensive answer would be good to have
Bobby
A: 

Lotus Notes would qualify as a semi-structured data store - a document driven database - but it's never struck me as a particularly good one.

Dean J