The product of the database design process which aims to identify and organize the required data logically and physically.
A data model says what information is to be contained in a database, how the information will be used, and how the items in the database will be related to each other.
For example, a data model might specify that a customer is represented by a customer name and credit card number and a product as a product code and price, and that there is a one-to-many relation between a customer and a product.
It can be difficult to change a database layout once code has been written and data inserted. A well thought-out data model reduces the need for such changes. Data modelling enhances application maintainability and future systems may re-use parts of existing models, which should lower development costs.
A data modelling language is a mathematical formalism with a notation for describing data structures and a set of operations used to manipulate and validate that data.
One of the most widely used methods for developing data models is the entity-relationship model. The relational model is the most widely used type of data model. Another example is NIAM.
["Principles of Database and Knowledge-Base Systems", J.D. Ullman, Volume I, Computer Science Press, 1988, p. 32].