Good reasons NOT to use a relational database?

caustic picture caustic · Sep 1, 2008 · Viewed 20.6k times · Source

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.

Answer

Matt Sheppard picture Matt Sheppard · Sep 1, 2008

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.