What are some alternate ways to store data other than a relational database? Why would you do that, and what are the trade-offs?

Technical