Different Types of Data Models
One of the things you often find people arguing about is what a data model is, and what it is for. Here’s one of the secrets of analysis: when you find people arguing passionately about something, try to discover why they are both right. So it is with data models. Data models have many purposes. These cause differences in both style and content, which can cause confusion, surprise, and disagreement. This section looks at some different types of data models (I do not claim necessarily to have exhausted the possibilities) and how their purposes might lead them to differ for nominally the same scope. A particular data model may be of more than one of the types identified.
Physical Data Model
A physical data model represents the actual structure of a database—tables and columns, or the messages sent between computer processes. Here the entity types usually represent tables, and the relationship type lines represent the foreign keys between tables. The data model’s structure will often be tuned to the particular needs of the processes that operate on the data to ensure adequate performance. It will typically include:
Restrictions on the data that can be held
Denormalization to improve performance of specific queries
Referential integrity rules to implement relationship types
Rules and derived data that are relevant to the processes of the application(s) the physical data model serves
Logical Data Model
There is a range of views on what a logical data model is. So I will start by talking about how I see them and then mention the divergences that I have noticed.
A logical data model is a fully attributed data model that is fully normalized. Fully attributed means that the entity types have all the attributes and relationship types for all the data that is required by the application(s) it serves. It may include:
Restrictions on the data that can be held
Rules and derived data that are