Chapter 2. Data Models
The flexibility of any database depends on the architecture and design of its data models. A data model fundamentally decides how data is stored, organized, and can be manipulated. When it comes to typical a RDBMS, we tend to provide the information in terms of hierarchical, relational, and network data models. SQL was designed to interact with an end user assuming he/she will use SQL to run queries that would aggregate data at one place, giving all information together. But it takes a lot of effort to maintain this user-oriented approach. Later, people realized that most of the time is being spent on creating database schemas, maintaining referential integrity, and providing transactional guarantees even though they are not using these things much. This thought ultimately resulted in the implementation of schema-less, relation-free databases, that is, NoSQL databases.
Relational data modeling starts with all the data that you have and the answers you can...