This is how we represent data. This is difficult because we need to model real-world relationships as software abstractions. Historically, data was stored as one big tree (called the hierarchal model which was kind of like NOSQL JSONs) but this wasn’t good for representing many-to-many relationships so the following types of data models were created to solve this issue.

The main differentiator between relational and NoSQL models, are that NoSQL models don’t enforce a schema at write-time.

Data model schemas describe how real-world data is conceptually represented as computerized information, and the types of operations available to access and update this information.