Data modelling is the act of exploring data-oriented structures. Data models are tools used in analysis to describe the data requirements and assumptions in the system from a top-down perspective.
Data modelling is also a process used to define and analyze data requirements needed to support the business processes within the scope of corresponding information systems in organizations. Therefore, the process of data modelling involves professional data modellers working closely with business stakeholders, as well as potential users of the information system. Such collaboration is required in order to define business terminology and to establish a common understanding of important business concepts.
Data models are progressive, requiring feedback and knowledge gained at each level to build and refine the next phase. The further along this progression one goes, the more specific details become, thus increasing cost and risk should changes be required later on. As a result, it is important to strike a balance between detail and abstractness for each phase of modelling such that unnecessary effort is not spent on overly detailed early phases while insufficient information is not present for later phases.
A data model provides the details of information to be stored, and is of primary use when the final product is the generation of computer software code for an application or the preparation of a functional specification to aid a computer software make-or-buy decision.
There are several different types of data modelling and each has its own uses and advantages. The most common form of data model describes entities (or things) that directly relate to elements within an enterprise, along with their attributes, and the relationships between them.
Entity relationship modelling involves analyzing relationships between various objects. It provides products such as Entity-Relationship Diagrams (ERDs), Entity Relationship Modelling (ERM) diagrams, and IDEF1X diagrams.
Object role modelling (ORM) involves analyzing relationships between various roles (not necessarily corresponding directly to entity classes). It provides products such as ORM diagrams, ORM metadata repository, ORM schema language and ORM query language.
The data model can then be used as a template for defining the tables and other objects that will be required to build an information system that supports those processes. Hence, a data model can be used both for understanding how the current business environment works, and for designing new ways for it to work in the future.
Data modelling is performed for many purposes, including: