2
  • diagrammes ER représentent la représentation abstraite du modèle de données,
  • diagrammes de classes représentent la structure statique et le comportement du système proposé.


  • blocs de construction principaux diagramme ER sont des entités,
  • principaux blocs de construction du diagramme de classes sont des classes,

il existe une relation étroite entre les entités dans les diagrammes ER et des classes dans les diagrammes de classes
ils sont mappés 1 à 1. pas de cours supplémentaires ou aucune entité supplémentaire
mappage entre des classes dans un diagramme de classes et des entités dans un diagramme ER?

cela signifie

  • il y a une classe dans le diagramme de classe pour chaque entité dans le diagramme ER
  • il y a une entité dans le diagramme ER pour chaque classe en classe diagramme

comme indiqué ci-dessous

--------------------------------------------- 
class diagram     ER Diagram 
--------------------------------------------- 
class A   <---->   Entity A 
class B   <---->   Entity B 
class C   <---->   Entity C 
class D   <---->   Entity D 
class E   <---->   Entity E 

est-ce toujours qu'il y a un mappage 1 à 1 entre les classes dans le diagramme de classes et les entités dans le diagramme
ou
y at-il un moment exceptionnel?

s'il y a un moment exceptionnel où cela se produira-t-il?

P.s - Je n'ai aucun problème avec la compréhension des différences entre ces 2 diagrammes.

Répondre

0

Eh bien, vous pouvez carte 1: 1 mais vous ne doit pas. Le chemin 1: 1 est le plus facile dans une première approche rapide. Mais souvent vous voulez/devez introduire la redondance dans les tables pour des raisons de performances. Dans ce cas, vos tableaux ne représentent pas ce que vos classes disent.

Ce que vous faites dans de tels cas est de dériver un modèle de base de données du modèle de classe plus abstrait. Beaucoup d'outils offrent des transformations pour supporter ce type de tâche (bien que je préfère le simple copier/coller et que je mets juste une relation <<derived>> entre les paquets).

0

Tout dépend du but de vos deux modèles. Si les diagrammes de classe et d'ER sont destinés à représenter un seul motif ou une seule implémentation de quelque chose, alors la question évidente est de savoir pourquoi avez-vous besoin de deux images différentes? D'un autre côté, s'il s'agit de deux implémentations différentes, utilisant éventuellement des technologies différentes et effectuant des tâches différentes, cela aura une incidence sur la façon dont vous établissez une correspondance entre elles. Il ne peut y avoir une seule réponse pour chaque situation.

Vous avez identifié cette balise avec la balise relational-database bien qu'elle ne soit pas directement liée à votre question. Dans le modèle relationnel, les schémas de relation sont les variables tandis que les classes sont les types.Fondamentalement, ce sont des choses très différentes, et l'erreur de les traiter comme équivalents a été appelée la première grande bévue. Vous n'avez pas fait cette erreur dans votre question mais vous pouvez trouver this link éclairant.

1

Un développeur de système peut choisir d'avoir une représentation 1: 1 entre les classes et les tables de base de données. Cette cartographie est un choix et n'est pas un must. Il est courant d'utiliser cette approche dans des projets réels. Le monde OO n'aborde pas les types de relation trouvés dans le SGBDR naturellement. Par exemple, vous ne pouvez pas appliquer FK dans une classe automatiquement. La décision que vous prenez est très importante car la plupart des classes que vous allez construire en dépendront. Changer d'avis à un stade ultérieur sera très coûteux.

Les mondes de RDBMS et le monde OO sont 2 mondes différents. En fait, il existe des bases de données d'objets qui supportent entièrement OO (voir par exemple: Wiki-Object-Databases) Les différences vont au-delà du problème que vous avez soulevé Il y a un groupe d'outils qui ont été créés pour résoudre certaines de ces différences. . ces deux mondes pour un fond sur ce concept, voir par exemple:. Wiki-Object Relational Mapping

pour obtenir plus sur les différences entre le monde OO et le mot relationnel, vous voudrez peut-être vérifier. Wiki-Object-relational impedance mismatch

Beaucoup d'autres des références existent sur ce sujet par exemple: is-there-really-object-relational-impedance-mismatch

Il peut être bon de demander quand ne pas utiliser la cartographie 1: 1 ... Ce serait une question intéressante.

+0

alors ... quand ne pas utiliser le mappage 1: 1? ... – Susantha7

+2

Cela nécessite une analyse ... Un cas par exemple, si vous avez plusieurs classes qui héritent d'une classe parente, et la classe parent a De nombreuses méthodes, vous ne voulez pas avoir à coder les nombreuses méthodes dans chaque classe enfant. Cependant, il est possible qu'il existe un motif OO qui couvre cela. – NoChance

+0

@ Susantha7 Le mappage un-à-un peut être approprié lors de la construction de simulations d'un domaine. Ce n'est généralement pas approprié lors de la construction de systèmes d'information pour un domaine. – reaanb