Data modeling

In computer science, data modeling is the process of structuring and organizing data, typically using a database management system.

Managing large quantities of structured and unstructured data is a primary function of information systems. Data models describe structured data for storage in data management systems such as relational databases. They typically do not describe unstructured data, such as word processing documents, email messages, pictures, digital audio, and video. Early phases of many software development projects emphasize the design of a conceptual data model. Such a design can be detailed into a logical data model. In later stages, this model may be translated into physical data model.

Data model
The term data model actually refers to two very different things: a description of data structure and the way data are organized using, for example, a database management system.

Data structure
A data model describes the structure of the data within a given domain and, by implication, the underlying structure of that domain itself. A data model may thus represent classes of entities about which a company wishes to hold information, the attributes of that information, and relationships among those entities. The model describes the organization irrespective of how data might be represented in a computer system.

The entities represented by a data model can be the tangible entities, but models that include such concrete entity classes tend to change over time. Robust data models often identify abstractions of such entities. For example, a data model might include an entity class called " ", representing all the people who interact with an organization. Such an abstract entity class is typically more appropriate than ones called " " or " ", which identify specific roles played by those people.

A proper conceptual data model describes an organization's semantics. It is a collection of assertions about the nature of the organization. Proper entity classes are named with natural language words instead of technical jargon. Likewise, properly named relationships form concrete assertions about the organization. For example, an relationship called " " operating on entity classes " " and " " forms the concrete assertion "Each    one or more  s."

Data organization
Another kind of data model describes how to organize data using a database management system or other data management technology. It describes, for example, relational tables and columns or object-oriented classes and attributes. Such a data model is sometimes referred to as the physical data model, but in the original ANSI three schema architecture, it is called "logical". In that architecture, the physical model describes the storage media (cylinders, tracks, and tablespaces). Ideally, this model is derived from the more conceptual data model described above. It may differ, however, to account for constraints like processing capacity and usage patterns.

While data analysis is a common term for data modeling, the activity actually has more in common with the ideas and methods of synthesis (inferring general concepts from particular instances) than it does with analysis (identifying component concepts from more general ones). {Presumably we call ourselves systems analysts because no one can say systems synthesists.} Data modeling strives to bring the data structures of interest together into a cohesive, inseparable, whole by eliminating unnecessary data redundancies and by relating data structures with relationships.

A different approach is through the use of adaptive systems such as artificial neural networks that can autonomously create implicit models of data.

Techniques
Several techniques have been developed for the design of a data models. While these methodologies guide data modelers in their work, two different people using the same methodology will often come up with very different results. Most notable are:


 * Entity-relationship diagrams
 * IDEF
 * Object Role Modeling (ORM) or Nijssen's Information Analysis Method (NIAM)
 * Business rules or business rules approach
 * Business rules or business rules approach
 * RM/T
 * Bachman diagrams
 * Object-relationship modeling
 * Artificial neural networks