• I've come across only a few real situations where there is a genuine advantage in using a non-relational datastore compared to a relational data store. The usual "advantages" touted tend to stem around the fact that the front end developers don't understand databases, let alone database design and management, and definitely not optimisation and therefore just want a "magic" data store that will somehow do everything on their behalf. Usually by throwing more memory and processing bandwidth at a trivial but non-sensical structure and hoping for the best. All too often if it's not a non-relational data store, it's a relational datastore where the framework creates the database design on behalf of the developer who will inevitably accept all the defaults and care nothing about design, management nor optimisation in any context other than the current, immediate one - which is usually a live user interface and nothing else. As a result, barely fit for purpose database structures get spewn out and it's no wonder that the developers then start dreaming that a non-relational datastore might perform better.