web-dev-qa-db-fra.com

Différence entre le diagramme ER et le diagramme EER

Quelle est la différence entre ERD (diagramme de relation d'entité) et EERD (diagramme de relation d'entité amélioré)?

23
shaki mandira

Modèle Entité-Relation

Vous avez des relations ( image source )

example for an relationship

et attributs ( source d'image )

example for an attribute

qui peut également être des clés primaires ( source d'image )

example for an primary key

Modèle d'entité – relation amélioré

Vous avez la même chose qu'avec le modèle ER plus

spécialisation

enter image description here

partitionnement (qui sont de multiples spécialisations)

généralisation

agrégation

les clés sont annotées différemment:

enter image description here

30
Martin Thoma

J'ajouterais que le modèle ER est un modèle de base qui a tout ce dont vous avez besoin pour l'algèbre relationnelle telle qu'elle est (y compris ISA hierarchy - inharitence nad other stuff je ne me souviens pas). Et est plus abstrait ( il n'est donc pas nécessaire que chaque boîte soit une table de base de données et inversement, certaines boîtes peuvent être plus d'une table)

Le modèle EER est plus proche de ce à quoi ressemble une vraie base de données. Donc, chaque boîte est en fait une table.

Je suppose que la réponse acceptée est juste aussi, mais à mon avis (je n'ai lu cela nulle part, je pense que c'est de cette façon) EER a été créé pour aider les gens à concevoir des bases de données encore plus que l'algèbre relationnelle de base. L'algèbre relationnelle avec ER vous donne tout ce dont vous avez besoin pour modéliser la base de données, mais vous avez besoin d'un compilateur qui traduira ISA hiérarchies et relations en tables réelles et avec EER vous obtenez ce que vous voyez. J'utilisais les deux pour concevoir des tables - ER est plus logique, car il vous fait abstraction de choses comme l'héritage puisque vous dites simplement à votre outil ER que je veux que cela hérite de cela et que vous n'avez pas besoin de créer 2 tables. Mais EER est mieux parce que vous voyez ce que vous obtenez.

Conclusion: ER est le principe de base, EER est un outil un peu meilleur pour le travail réel avec moins d'abstraction.

(Ma connaissance théorique de l'algèbre relationnelle est trop rouillée, donc j'espère que je me souviens de tout, corrigez-moi si je me trompe)

4
Srneczek

Les principales fonctionnalités ajoutées par le modèle ER amélioré sont la spécialisation/généralisation et les unions. De ces Gen-spec est celui qui revient le plus souvent dans les réponses aux questions Stackoverflow.

Gen-spec est l'équivalent, en modélisation ER, de la sous-classe de classe en modélisation objet. Un exemple pour illustrer: un véhicule à moteur pourrait être une automobile ou un camion. Une caractéristique comme l'espace de chargement concerne un camion mais pas une voiture. Il existe donc des fonctionnalités qui s'appliquent à l'entité généralisée, mais il existe également des fonctionnalités qui ne s'appliquent qu'à une seule des spécialisations.

Très souvent, les gens viennent ici avec une question sur la conception de la table pour un cas de gen-spec. Mais ils ne le reconnaissent pas en tant que tel, car ils n'ont jamais été initiés à la spécification générique dans leur éducation initiale sur les bases de données.

Une autre façon de le dire est qu'on leur a appris à modéliser et à mettre en œuvre des relations "a", mais pas à modéliser et à mettre en œuvre des relations "est".

4
Walter Mitty