Le modèle Entité-Association (notation : EA) est aussi fréquemment nommé Entité-Relation et parfois Entité-Relation-Attribut. Le modèle EA propose des concepts (principalement les entités, les associations et les attributs) permettant de décrire un ensemble de données relatives à un domaine défini afin de les intégrer ensuite dans une BD.
Ce chapitre ne présente que les concepts de base du modèle EA qui ne constitue pas le point le plus important de ce cours.
Définition : Une entité est un objet, une chose concrète ou abstraite qui peut être reconnue distinctement.
Définition : Un type-entité est un ensemble d'entités qui possèdent les mêmes caractéristiques.
Attention ! Par abus de langage, on utilise souvent le mot entité en lieu et place du mot type-entité, il faut cependant prendre garde à ne pas confondre les deux concepts.

Définition : Un attribut (ou une propriété) est une caractéristique associée à un type-entité.
Au niveau du type-entité, chaque attribut possède un domaine qui définit l'ensemble des valeurs possibles qui peuvent être choisies pour lui (entier, chaîne de caractères, booléen…). Au niveau de l'entité, chaque attribut possède une valeur compatible avec son domaine.

Définition : Une association (ou une relation) est un lien entre plusieurs entités.
Définition : Un type-association (ou un type-relation) est un ensemble de relations qui possèdent les mêmes caractéristiques.
Le type-association décrit un lien entre plusieurs types-entités. Les associations de ce type-association lient des entités de ces types-entités. Comme les types-entités, les types-associations sont définis à l'aide d'attributs qui prennent leur valeur dans les associations.
Attention ! Par abus de langage, on utilise souvent le mot association en lieu et place du mot type-association, il faut cependant prendre garde à ne pas confondre les deux concepts.

Définition : Un identifiant d'un type-entité ou d'un type-association est constitué par un ou plusieurs de ses attributs qui doivent avoir une valeur unique pour chaque entité ou association de ce type.
Au niveau du type-entité, chaque attribut possède un domaine qui définit l'ensemble des valeurs possibles qui peuvent être choisies pour lui (entier, chaîne de caractères, booléen…). Au niveau de l'entité, chaque attribut possède une valeur compatible avec son domaine.

Définition : La cardinalité d'un type-association est le nombre de fois minimal et maximal qu'une entité peut intervenir dans une association de ce type.
La cardinalité minimale doit être inférieure ou égale à la cardinalité maximale.

La cardinalité minimale peut-être :
0 Cela signifie qu'une entité peut exister tout en étant impliquée dans aucune association.1 Cela signifie qu'une entité ne peut exister que si elle est impliquée dans au moins une association.n Cela signifie qu'une entité ne peut exister que si elle est impliquée dans plusieurs associations.Attention ! Le cas n est rare et pose problème. Il est prudent de l'éviter.
La cardinalité maximale peut-être :
0 Cela signifie qu'une entité ne peut pas être impliquée dans une association.1 Cela signifie qu'une entité peut être impliquée dans au maximum une association.n Cela signifie qu'une entité peut être impliquée dans plusieurs associations.Attention ! En toute logique, le cas 0 ne doit pas exister : il démontre un problème de conception puisque le type-entité est inutile au type-association. Il faut alors reconsidérer la cardinalité ou retirer la liaison entre le type-entité et le type-association.
Définition : La dimension (ou une nombre de pattes) d'un type-association est le nombre de types-entités qui y participent. Si un type-entité participe plusieurs fois au type-association, il est compté autant de fois que de participations.
Attention ! Les cardinalités maximales à 1 ne sont généralement utilisées que dans des types-associations de dimension 2 (dits binaires). Si ce n'est pas le cas, bien que cela puisse être valide, il est prudent de modifier ces cardinalités vers n ou, mieux, de revenir à des types-associations binaires. Cela facilitera en effet le passage vers le modèle relationnel (cf. chapitres 3 Modèle relationnel : concepts, 4 Modèle relationnel : formes normales et 5 Modèle relationnel : algèbre).
1,1, il faut se demander si ce type-association et les types-entités liés ne décrivent pas en fait un seul type-entité.Pour traduire un schéma du modèle EA vers le modèle relationnel (cf. chapitre 3 Modèle relationnel : concepts, 4 Modèle relationnel : formes normales et 5 Modèle relationnel : algèbre), les indications suivantes peuvent être appliquées :
1 donne naissance à une relation. Chaque attribut de ce type-association devient un attribut de la relation. L'identifiant, s'il est précisé, est conservé en tant que clé de la relation, sinon cette clé est formée par la concaténation des identifiants des types-entités qui interviennent dans le type-association.1 (ce type-association devrait être binaire et n'a généralement pas d'attribut) ne devient pas une relation. Il décrit en effet une dépendance fonctionnelle (cf. chapitre 4 Modèle relationnel : formes normales). Il faut alors considérer un des deux types-entités (forcément un dont la patte vers le type-association a une cardinalité maximale valant 1) et la relation correspondant à ce type-entité se voit simplement ajouter comme attribut l'identifiant de l'autre type-entité.Voici un exemple de modélisation EA, très simplifiée :

Voici les relations déduites de ce schéma :
Patient(numéro, nom, numMutuelle)Mutuelle(numMutuelle, nomMutuelle)Médecin(numMédecin, nomMédecin)Affection(codeAffection, nomAffection)Hospitalisation(numéro, codeAffection, numMédecin, dateEntrée, dateSortie)On utilise la notation suivante : nomRelation(clé, autresAttributs)