What are the key differences between SQL and NoSQL databases, and how do you decide which to use for a new service?