Data Modeling is a method used to define and analyze data requirements needed to support the business functions of an enterprise. These data requirements are recorded as a conceptual data model with associated data definitions. Data modeling defines the relationships between data elements and structures.
Data modeling can be used for a wide array of purposes. It is an act of exploring data oriented structures without considering any specific applications that the data will be used in. It is like a conceptual definition an entity and its real life counterparts which is any thing that is of interest to the organization implementing a database.
Data models are the products of data modeling. In general, three data model styles namely conceptual data model, logical data model and physical data model.
The conceptual data model is often called the domain model. It describes the semantics of a business organization as this model consists of entity classes which represent things of significance to an organization and the relationships of these entities. Relationships are defined as assertions about associations between various pairs of entity classes. The conceptual data model is commonly used to explore domain concepts with project stakeholders. Conceptual models may be created to explore high level static business structures and concepts. But they can be used as well as precursor or alternatives to logical data models.
The logical data model is used in exploring domain concepts and other key areas such as relationships and domain problems. The logical data models could be defined for the scope of a single project or for the whole enterprise. The logical data model describes semantics related to particular data manipulation methods and such descriptions include those of tables, columns, object oriented classes, XML tags and many other things. The logical data model depicts some logical entity types, the data attributes to describe those entities and relations among the entities.
The physical data model is used in the design of the internal database schema. This design defines data tables, data columns for the tables and the relationships among the tables. Among other things that the physical data model is concern with include descriptions of the physical means by which data should be stored. This storage aspect embraces concerns on hard disk partitioning, CPU usage optimization, creation of table spaces and others.
Applications developers need to understand the fundamentals of data modeling so that their application can be optimized. It should be noted that the tasks involve in data modeling may be performed in an iterative manner. These data modeling tasks include the following: Identifying entity types, Identifying attributes, Applying naming conventions, Identifying relationships, Applying data model patterns, Assigning keys, Normalizing to reduce data redundancy and De-normalizing to improve performance.
Data modeling also focuses on the structure of a data within a domain. This structure is described in such a manner that specification is in a dedicated grammar for an artificial language used for a certain domain. But as always, the description of the data structure will never make any mention of a specific implementation of any database management system such as specific vendors.
Sometimes, having different data modelers could lead to confusion as they could potentially produce different data models within the same domain. The difference could stem from different levels of abstraction in the data models. This can be overcome by coming up with generic data modeling methods.
For instance, generic data modeling could take advantage of generic patterns in a business organization. An example is the concept of a Party which includes Persons and Organizations. A generic data model for this entity may be easier to implement to without creating conflict along the way.