Data Modeling consists in the raw choices of architecture pattern for the database given the business requirement.
A data model is an abstract overview of datas your app needs to store for business needs and how it stores, structures, connects to and organizes it all together (bascially the list of family of datas, types of required values, sources and structures)
The goal is to decompose your App in simple normalized pieces of informations to ensure long term validity and reliability and thus foster scalability, functionality and usability.
Preparation
Create the data model
Entity : identify and define entities - the different kinds of normalized data you need to store to deliver customer goals
The rule here is that any time a group of values could apply to more than one row on a table, you should consider creating a dedicated entity for these.
Attributes : define the attributes or fields - the unique variables characteristics of each entity and their type
Relationships : establish the different links and dependencies between entities, i.e. how different entities interact with each other through their attributes : 1→N , N→1 , N→N
Physical model : create the schema to represent it (flat, relational, star, snowflakes, graph)
Example :
