**Data Models** define how we give a structure to data, and how data is connected to other data.

We have many different kinds of data models. They all can be grouped under 2 main umbrellas: **conceptual models** and **logic models**.

The most known conceptual model is the **Entity-Relationship** Model, also called ER. It’s the best way to organize data at first, when you are in the design phase, because it’s the model that’s nearest how we think, and it’s not linked to any specific implementation.

Logic models on the other hand are **closer to the implementation**.

Logic models include (among many others):

- The
**Relational**Model - The
**Hierarchical**Model - The
**Reticular**model - The
**Object**model

You can see the name already gives us a hint of how those models are implemented: tables for the relational model, trees of the hierarchical model, graphs for the reticular model, objects for the object model.

The relational model is the logic model that we’ll soon see in more details, as it’s the base of the popular relational databases, including PostgreSQL, MySQL, SQLite and SQL Server.

Conceptual models and logic models are two different tools. Using one does not exclude the other. We could start with a conceptual model and then use a logic model to implement it.