Good reasons NOT to use a relational database?

database, nosql, sql

Solution

Plain text files in a filesystem

- Very simple to create and edit

- Easy for users to manipulate with simple tools (i.e. text editors, grep etc)

- Efficient storage of binary documents

XML or JSON files on disk

- As above, but with a bit more ability to validate the structure.

Spreadsheet / CSV file

- Very easy model for business users to understand

Subversion (or similar disk based version control system)

- Very good support for versioning of data

Berkeley DB (Basically, a disk based hashtable)

- Very simple conceptually (just un-typed key/value)

- Quite fast

- No administration overhead

- Supports transactions I believe

Amazon's Simple DB

- Much like Berkeley DB I believe, but hosted

Google's App Engine Datastore

- Hosted and highly scalable

- Per document key-value storage (i.e. flexible data model)

CouchDB

- Document focus

- Simple storage of semi-structured / document based data

Native language collections (stored in memory or serialised on disk)

- Very tight language integration

Custom (hand-written) storage engine

- Potentially very high performance in required uses cases

I can't claim to know anything much about them, but you might also like to look into object database systems.

Problem

Can you please point to alternative data storage tools and give good reasons to use them instead of good-old relational databases? In my opinion, most applications rarely use the full power of SQL--it would be interesting to see how to build an SQL-free application.

Original source