Data Modeling


What is a data model? A data model is the result of a data modeling process. Data modeling is a process used to define and analyze the data requirements needed to support the organization’s processes within the scope of corresponding information systems in organizations. The data model will reflect the organization’s processes, definitions, workflows and logic.

The purpose of a data model is to describe the concepts that are relevant to a domain, the relationships between those concepts, and the information associated with them. A domain is the area under study, which could be a business or part of business.

Data models can take the form of a diagram supported by textual descriptions. They are often accompanied by a data dictionary and a business rules analysis.

The two most widely used types of data models are entity-relationship diagrams (ERD) and class diagrams.

From Conceptual to Physical

When modelling your data, move from general to specific. Move from conceptual to logical and then to physical. To be successful, you’ll need to involve business stakeholders.

The conceptual model consists of entity classes, representing kinds of things of significance in the domain, and relationships assertions about associations between pairs of entity classes. It contains the business logic and rules. It describes the system’s data, including tables and fields (columns, attributes, features). Here is where we develop the ER diagram. The ER diagram will include relationships such as one-to-many, one-to-one and many-to-many.

The logical model adds more detail. Here we might have table names, column names and data types, primary keys and foreign keys.

The physical model defines how the logical model will be implemented in a database system. Here we describe the specific software, schemas, tables, and database storage and configuration options.

The term data grain refers to the level of granularity, or detail, at which data is stored. Aggregated data is course grained. When you are designing your database, strive to model your data at the lowest level of grain possible. When you are recording a address, separate out the street name, street number and perhaps even add another line for the address. Separate out the area code when designing the phone number columns.

Another consideration when designing the data model is normalization.

Leave a Reply