Intuitively, a data model provides a uniform way to represent and manipulate data.
(Victor Vianu, http://www-cse.ucsd.edu/users/vianu/PAPERS/dimacs.ps.gz
Or, more formally :
a general theory of data via which enterprise-specific conceptual models are mapped to logical models. FabianPascal
. To this day, and to my knowledge, there isn't a generally agreed upon ObjectOrientedDataModel?
, although many researchers have made significant advancements in this direction.
I've got a rough attempt of an object-oriented data model at ObjectOrientedRefactored. As it relies on MessagePassing, it's possibly a NetworkModel?.
The way things should be done is that during requirements engineering/analysis phase of a process, some people (information analysts, data modelers, software engineers - the label is less important) describe the universe of the business that the software is trying to improve in terms of a ConceptualSchema?
(corresponding to a conceptual model such as ExtendedEntityRelationship?
, NIAM or a few others -- from which UML should be forcefully excluded). This analysis is used in crafting a database schema , the process of moving from a conceptual schema to a database schema is supported by a data model .
For example departing from an Entity Relationship diagram and using the concepts of relational data model, we can create tables for each entity, represent relationship either as attributes with foreign key constraints or as relationship tables, enforce business rules through various integrity constraints and we get a logical database schema.
It is also a heavily abused term. Many people confuse it for database schema. A database schema is not a data model.
For more on what a data model is you can reference AnIntroductionToDatabaseSystems
, or FoundationsOfDatabases
of a programming language or data representation format, is the set of values representable by the language or format, together with a specification of their intended meaning. The same thing as an InfoSet
Previous definitions on this page:
1. a standard or example for imitation or comparison of data, business practices, or algorithms.
2. a representation, generally in software, to show the
construction or appearance of data, business practices, or algorithms
See also UnifiedDataModel