about DB:
- You need atomic operations. - your app can crash at any time and you don't have to worry about corrupt data)
- You need asynchronous operations. - multiple instances of your application can simultaneously modify the data without corrupting it/getting an invalid state.
- You need data normalization. - Products -m2m-> Catalogs
- Automatic Indexes - If you need fast searching capabilities (if your file system isn't already fast enough)
- You need abstraction of complex data operations. - i.e. SELECT SUM(Price) WHERE Price < 10 and the likes