What are the fundamental differences between relational databases and non-relational databases, and when would you choose one over the other?