# Modèle de données

En informatique, un modèle de données est un modèle qui décrit la manière dont sont représentées les données dans une organisation métier, un système d'information ou une base de données.
Le terme modèle de données peut avoir deux significations :
* Un modèle de données théorique, c'est-à-dire une description formelle ou un modèle mathématique. Voir aussi base de données
* Un modèle de données instance, c'est-à-dire qui applique un modèle de données théorique (modélisation des données) pour créer un modèle de données instance. Voir infra.

## Modèle de données théorique
### Composantes

En général, un modèle de données théorique décrit ce qui suit :
* Structure de données : définit comment les données sont organisées (hiérarchique, réseau, relationnel, orienté objet).
* Intégrité des données : fournit un langage ou des règles implicites pour la maintenance de l'intégrité des données dans le modèle de données instance.
* Manipulation des données : fournit un langage pour créer, mettre à jour et supprimer les données.
* Recherche de données : fournit un langage pour chercher les données.
Par exemple, dans le modèle relationnel, toutes les données sont représentées par des relations mathématiques (ou, pour être précis, une version légèrement extrapolée à partir de cela). Il existe un langage général de spécification des contraintes (first-order logic), et pour les manipulations et la recherche de données, on a introduit l'algèbre relationnelle, tuple calculus et domain calculus.
On peut trouver des informations complémentaires sur ce sujet dans système de gestion de base de données.

### Niveaux de préoccupation

Une théorie de modèle de données définit généralement des niveaux de préoccupation. Par exemple, dans la méthode MERISE ou dans les modèles entité-relation employés dans les modèles (SSADM, SDM/S), on définit des niveaux de préoccupation tels que :
* Conceptuel,
* Logique,
* Physique.
Le contenu des modèles pour chaque niveau peut varier selon la méthode.
Le cadre d'architecture Zachman contient également ces trois niveaux de préoccupation. Les données correspondent à la question " quoi ? " (le cadre Zachman est holistique, il existe donc cinq autres aspects).
Les niveaux logique et physique apparaissent dans DoDAF, ainsi que dans AGATE. Dans MODAF, ces niveaux de préoccupation n'apparaissent pas d'une façon évidente.

## Modèle de données instance (application à un domaine spécifique)

La modélisation des données est le processus par lequel on crée un modèle de données instance en appliquant une théorie de modèle de données. On emploie cette méthode pour se conformer à des exigences ou des attentes d'entreprises ou d'organismes publics.
Les besoins sont généralement exprimés à travers un modèle conceptuel de données et/ou un modèle logique de données. Ces modèles sont ensuite transformés en un modèle de données physique, qui décrit les bases de données physiques employées.
Pour une application spécifique, on définit les tables (objets, relations... les conventions de nommage dépendent du modèle général). Par exemple, on décrit "client", "commande", "article", ainsi que les relations entre eux ("un client commande des articles").
Si on utilise un modèle relationnel, on doit définir des ensembles de contraintes spécifiques (clé primaire, clé candidate, clé étrangère), en utilisant le langage approprié conformément au modèle général (par exemple SQL).

## Outils pour créer le modèle de données d'une application

Alors que les modèles simples de données (ceux consistant en peu de tables ou d'objets) peuvent être créés « manuellement », les modèles plus compliqués nécessitent une approche plus systématique. Dans la communauté de modélisation des bases de données relationnelles, la méthode du modèle entité-relation est utilisée pour établir un modèle de données spécifique au domaine. Dans la communauté de la programmation orientée objet, on préfère le langage UML (Unified Modeling Language) pour la création de modèles de données. Dans UML, les "diagrammes de classe" présentent beaucoup de ressemblances avec les diagrammes entité-relation, mais la plupart des outils UML, comme Rational Rose et Embarcadero Describe, n'ont pas la possibilité de supporter la traçabilité conceptuelle, logique, et physique. D'autres méthodes, comme functional data model et object role modeling (ORM), décrivent aussi des sous-ensembles ou des aspects d'un modèle de données et des applications qui sont basées sur lui.

## Modèles de données gouvernementaux
### En Europe

Les systèmes d'information gouvernementaux doivent comporter des référentiels d'interopérabilité. Le programme ADELE du gouvernement français comporte un référentiel général d'interopérabilité et de sécurité avec des modèles de données communes.
Voir : « Modèle de donnés communes » d'ADELE.

### Aux États-Unis

Aujourd'hui, le partage d'informations et l'interopérabilité informatique sont obtenus par l'utilisation de métadonnées. Les États-Unis tiennent déjà un grand nombre de registres de métadonnées pour des fonctions régaliennes (justice, défense).
Le département de la défense dispose, dans le cadre d'architecture DoDAF, d'un Core Architecture Data Model (CADM) .
Le gouvernement américain a lancé en 2002 le projet Federal Enterprise Architecture (FEA), qui inclut cinq modèles, dont un modèle de données de référence (DRM). Ce modèle va inclure des métadonnées à grande échelle.
Le chef du projet Data Reference Model américain, Michael Daconta, est l'ancien responsable du centre d'excellence sur les métadonnées du département Homeland Security (sécurité intérieure).
Michael Daconta est l'auteur d'une déclaration d'indépendance des données : Declaration of data independence