Data modeling is all about defining the way the data has to be stored in database. The data modeling design gives a complete structure of how and where each business data has to be stored. There are some formal data model descriptions and data modeling techniques to achieve this task.
Data model methodology
There are three different styles/methodologies used for data modeling.
- Conceptual data models(CDMs): These models, sometimes called domain models, are typically used to explore domain concepts with project stakeholders. On Agile teams high-level conceptual models are often created as part of your initial requirements envisioning efforts as they are used to explore the high-level static business structures and concepts. On traditional teams conceptual data models are often created as the precursor to LDMs or as alternatives to LDMs.
- Logical data models (LDMs): LDMs are used to explore the domain concepts, and their relationships, of your problem domain. This could be done for the scope of a single project or for your entire enterprise. LDMs depict the logical entity types, typically referred to simply as entity types, the data attributes describing those entities, and the relationships between the entities. LDMs are rarely used on Agile projects although often are on traditional projects (where they rarely seem to add much value in practice).
- Physical data models (PDMs): PDMs are used to design the internal schema of a database, depicting the data tables, the data columns of those tables, and the relationships between the tables. PDMs often prove to be useful on both Agile and traditional projects and as a result the focus of this article is on physical modeling.
Significance of data modeling
If you want to analyze how many people in a given congressional district voted in the last election, you will naturally want to include a column for which party each person voted for. That kind of analysis will be valuable to members of all political parties, and it is the kind of detail that you can build into the database from the ground up, instructing the database management system to include that column of information in the resulting database. If you wanted to analyze that information specifically but didn't include a column for it in your database, you'd spend lots of time collating the data — effort that would not be necessary if you had followed the data model in the first place. Data modeling is therefore a very important skill to implement when building databases.