Entités et relations (EDM)

Le modèle EDM (Modèle de données d'entité) est un modèle entité-relation (ER). Dans une application métier classique, la structure de données est abstraite au cours des phases préliminaires de conception de l'application. La conception doit spécifier comment l'application contiendra dans une structure logique différentes sortes de données. Les commandes, les clients, les lignes de commande, les adresses, les fournisseurs, les produits et les employés, par exemple, seront représentés par autant de structures de données, dont certaines particulièrement complexes. Une fois les concepts élémentaires identifiés, les entités constituent les spécifications formelles de toutes les informations de la structure de données.

Un type de données Customer, par exemple, est conçu pour contenir des informations telles que le nom du contact, le nom de la société, l'adresse et un identificateur unique pour chaque client. Un type Order peut contenir, entre autres données, la date de la commande, les lignes de commande, la date de livraison prévue et un identificateur unique. Comme la plupart des autres modèles de données, l'EDM représente sous forme de relation la connexion logique entre une commande et le client qui la passe.

Le diagramme ci-dessous illustre certaines des informations de la structure de données et les modélise à l'aide des concepts d'entités et de relations spécifiés par l'EDM. Dans ce diagramme, les entités sont représentées par des rectangles et les relations par les lignes qui relient les rectangles. Le texte figurant dans chaque rectangle représente les propriétés de l'entité en question.

Diagramme des clients, commandes et lignes de commandes

Seuls les concepts de niveau supérieur sont appelés entités dans le modèle EDM. Ainsi, dans le diagramme, Customer représente un concept de niveau supérieur, par conséquent modélisé en tant qu'entité. Dans l'EDM, l'entité Customer est dérivée de la classe de base EntityType.

Les éléments de données subordonnés sont les propriétés des entités. L'entité Customer a plusieurs propriétés : CustomerID, CompanyName, ContactName, Address et Phone. Chacune de ces propriétés a un type de données. Par exemple, CustomerID est une chaîne, tout comme CompanyName et ContactName.

Dans le diagramme, Address n'est pas une propriété comme les autres, puisqu'elle dispose d'une structure interne qui contient différentes sortes d'informations. Dans l'EDM, une structure imbriquée, comme cette adresse, peut être modélisée sous la forme d'une entité, puis utiliser une association et une propriété de navigation pour la connecter à l'entité dans laquelle elle fonctionne comme une propriété.

Les types de données Customer et Address sont similaires, en ce sens qu'ils disposent tous deux de structures internes composées de plusieurs propriétés, mais d'un point de vue sémantique et opérationnel, Customer et Address diffèrent. Il est très probable que Customer constitue l'unité sur laquelle porteront les opérations de requête ou de modification des données et sur laquelle s'établira la persistance. Par ailleurs, une adresse (Address) n'est généralement pas utilisée de manière indépendante, mais dans un autre type de données (ici, Customer).

Les relations entre entités sont modélisées au moyen d'associations. Une association est la relation entre des entités, comme ici la relation entre un client (Customer) et une commande (Order). À chaque Order doit correspondre un Customer. Order et Customer sont logiquement liés, mais existent en tant qu'entités indépendantes. Pour plus d'informations sur la relation d'association, voir Association (EDM).

La relation dans laquelle une entité contrôle logiquement l'autre, comme c'est le cas entre une commande (Order) et ses lignes de commande (éléments OrderLine) est aussi représentée par la relation d'association. Chaque Order se compose d'au moins un élément OrderLine. Si un Customer commande le produit portant la référence 49, par exemple, les informations relatives à l'article commandé consistent en un OrderLine. OrderLine ne peut pas exister sans Order.

Voir aussi

Concepts

Implémentation d'entités (EDM)
Implémentation d'associations (EDM)

Autres ressources

Schémas et spécification de mappage (Entity Framework)