Data model
From Wikipedia, the free encyclopedia
Database models |
---|
|
|
A data model is a model that describes in an abstract way how data are represented in a business organization, an information system or a database management system.
This term data model is ambiguously defined to mean:
- A data model theory i.e. a formal description or mathematical model. See also database model
- A data model instance i.e. applying data model theory (data modelling) to create a data model instance. See below.
Contents |
[edit] General organization of data
In general, a data model theory describes the following:
- Data Structure: defines how data are organized: (hierarchical, network, relational, object-oriented).
- Data Integrity: provides a language or implicit rules for maintaining data integrity in the data model instance.
- Data Manipulation: provides a language to create, update and delete data.
- Data Querying: provides a language to query data.
For example, in the relational model, all data is represented by mathematical relations (or, to be precise, a slightly generalized version thereof). There exists 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. Additional information about this topic can also be found in database management system.
[edit] Organization of data in a specific application (domain)
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, sets of specific constraints (candidate keys, foreign keys) have to be defined (using the appropriate language as defined for the general model, e.g. SQL).
[edit] Tools for creating a data model for an application
While simple data models consisting of few tables or objects can be created "manually", large applications need a more systematic approach. Within the relational database modeling community, the entity-relationship model method is used to establish a domain-specific data model. Within the object-oriented programming community, the Unified Modeling Language (UML) is preferred for creating data models. Within UML, "Class Diagrams" are very similar to Entity-Relationship Diagrams, but most UML tools, such as Rational Rose and Embarcadero Describe, lack the ability to support conceptual, logical, and physical traceability. Other methods, such as the functional data model and object role modeling (ORM), also describe subsets/aspects of a data model and the application based on it.
[edit] External links
- RFC 3198 - Terminology for Policy-Based Management
- RFC 3444 - On the Difference between Information Models and Data Models