SQL and relational model in general were designed long time ago to interact with the end user. This user-oriented nature had vast implications: End user is often interested in aggregated reporting information, not in separate data items, and SQL pays a lot of attention to this aspect. No one can expect human users to explicitly control concurrency, integrity, consistency, or data types validity. Thats why SQL pays a lot of attention to transactional guaranties, schemas, and referential integrity.
On the other hand, it turned out that software applications are not so often interested in in-database aggregation and able to control, at least in many cases, integrity and validity themselves. Besides this elimination of these features had extremely important influence on performance and scalability of the stores. And this was where a new evolution of NoSQL data models began
(Full Story: NoSQL Data Modeling Techniques)