A data model is a model that describes in an abstract way how data is represented in an information system or a database management system.
This term is ambiguous since it can be the way
- how data generally is organized, e.g. as described in Database management system
- or how data of a specific application is organized logically (e.g. the data model of some business)
In general the first aspects describes the following aspects:
- Structure: defines what the structure of the representation is. This should not only specify how data is represented but also how a schema can be specified that defines the structure of the data in a specific user ___domain.
- Integrity: provides a language for the definition of rules that restrict which instances of the defined structure are allowed.
- Manipulation: provides a language in which updates of the data can be expressed.
- Querying: provides a language in which the data can be queried.
An example is the relational model in which all data is represented by mathematical relations (or, to be precise, a slightly generalized version thereof).
For a specific application tables (objects, relations, ..., the naming conventions depend on the general model) are defined, for example "customer", "order", "item" as well as relations between them ("customer orders items"). If a relational model is used set of specific constraints (candidate keys, foreign keys) and a general language for specifying constraints (first-order logic), and for manipulations and querying the data the relational algebra, tuple calculus and ___domain calculus are introduced.
The Entity-Relationship Model method is used to establish a ___domain specific data model. Other examples like the Functional Data Model and the Object Role Model also describe subsets/aspects of a data model.