Importance des diagrammes ER

10

Je suis étudiante et je développe plusieurs projets dans le cadre de mon université.

Lors du développement de la base de données pour l'un des projets, nous sommes tombés sur une situation où nous nous sommes demandé si la DRE était nécessaire ou non. À l'heure actuelle, nous ne sommes pas tous d'accord pour développer d'abord l'ERD, puis développer une base de données à partir de celui-ci.

La majorité des gens préfèrent développer la base de données à la volée verbalement selon les exigences du système sur papier directement.

Maintenant, je suis un adepte strict des principes de la base de données. Je pense que la base de données devrait être développée uniquement à partir de la DRE. Donc, je veux juste savoir ce qui suit:

  • L'industrie suit-elle ces principes?
  • Suis-je en train de perdre mon temps à développer un ERD?
  • Quels sont les avantages de développer un ERD?
trapaank
la source
Le diagramme ER / EER montre les interrelations entre les entités et agrandit également les fonctionnalistes du système.
Si vous voulez un outil gratuit pour créer une ERD pour SQL Server ... Des informations peuvent être trouvées ici ... facebook.com/DataModelerTool ou ici ... plus.google.com/108968161662966473138
Carter Medlin
À mon humble avis, ERD ne saisit pas tout ce qui est important - changements dans les relations au fil du temps, volume des transactions, héritage dans les systèmes modélisés par objet, relations "devient un", etc. Plus précisément, ERD factorise tous les verbes, laissant de grandes lacunes dans la conception de la base de données. Imaginez-vous en train de lire un roman composé uniquement de noms. Je trouve que ce sont des outils utiles, mais certainement pas critiques, mieux dessinés sur le dos des serviettes après un bon déjeuner.
pojo-guy

Réponses:

13

Clair et simple, pensez à développer une base de données sans ERD comme construire une maison sans plan de construction. Cela pourrait être faisable parce que vous pensez que la simple pose d'une brique l'une sur l'autre est suffisante pour construire quelque chose, mais au moment où quelqu'un d'autre prend la responsabilité du projet, il y a un risque de catastrophe.

D'après mon expérience, vous ne bénéficierez pas beaucoup des ERD à moins que vous ne les utilisiez en conjonction avec des outils CASE (ERWin, MySQL Workbench, etc.) qui vous permettront en outre d'effectuer des opérations vraiment utiles telles que l'ingénierie directe et inverse. Même sans que ces fonctions aient un schéma centralisé de la base de données complète est utile parce que parfois les contraintes implémentées dans la base de données elle-même ne sont pas suffisantes pour raconter toute l'histoire des relations entre des entités de base de données particulières.

Voici un exemple impliquant MySQL qui, comme vous le savez peut-être, implémente plusieurs moteurs de stockage interne, notamment MyISAM et InnoDB. Il existe des différences importantes entre eux, l'une des plus importantes étant que MyISAM ne prend pas en charge les contraintes. Malgré cela, MyISAM est largement utilisé pour les applications Web, ce qui signifie que la logique relationnelle doit être implémentée soit via la logique métier (code d'application), soit d'une autre manière. Le problème est lorsque vous transférez un ERD avec des tables MyISAM (entités) MySQL ignorera silencieusement les contraintes définies par l'ERD et vous vous retrouverez avec une base de données qui n'identifie pas clairement la nature des relations entre les entités. En d'autres termes, une fois que vous avez développé la disposition de la base de données, les développeurs de code n'ont aucun moyen d'implémenter une logique métier appropriée sans ERD.

brezanac
la source
1
Si nous allons jusqu'au bout avec votre comparaison de "plan de construction", nous devons construire un système et ne pouvons jamais le changer à moins que nous ayons à démolir le tout. Cela ne fonctionnera pas dans un environnement dynamique.
AK
1
Le «plan de construction» n'a pas pour but de cimenter le processus de développement ou le projet lui-même mais plutôt de toujours donner un aperçu de l'état dans lequel se trouve le projet actuel. Personne n'empêche réellement quiconque d'ajouter de nouvelles entités ou relations (donc d'apporter des modifications au plan), mais les autres doivent également être au courant de ces changements.
brezanac
5

Les ERD sont vraiment agréables pour avoir une image claire de la structure de votre base de données. En plus d'être un artefact de document important pour votre projet, il est plus facile lorsque vous devez implémenter des requêtes, en particulier des jointures entre les tables. Imaginez à quel point c'est agréable d'avoir une configuration double moniteur, à gauche vous avez votre ERD et à droite votre éditeur de requête. Vous pouvez clairement voir les relations entre les tables et écrire vos requêtes en fonction de cela. Si votre projet de base de données est assez simple et que votre projet n'en a pas besoin, il est peut-être acceptable de s'en passer.

gsb
la source
4

ERD vous fera gagner beaucoup plus de temps que vous ne le pensez. Si vous faites tout à la volée, vous serez bloqué lorsque vous souhaitez générer des tables de jonction.

Si vous tombez sur la base de données quelques années plus tard sans ERD, vous devez passer beaucoup de temps pour voir ce qui se passe dans votre projet.

J'ai une entreprise et nous concevons ERD, ne pensez jamais à une base de données sans ERD (en fait, c'est ma propre expérience personnelle)

ALH
la source
4

Il y a quelque temps, les DRE étaient plus courants. OMI, ils sont plus ou moins facultatifs maintenant.

Actuellement, certaines équipes très performantes ne se soucient pas du tout des ERD, mais fournissent d'excellents systèmes: robustes, performants et faciles à entretenir à long terme. Cela est particulièrement vrai dans le développement Agile, lorsque nous commençons petit, avec un ensemble d'outils minimaliste.

Les DRE sont un bon moyen de communication, bien sûr, mais en aucun cas le seul moyen, ou le meilleur en toutes circonstances. Certaines équipes préfèrent d'autres modes de documentation et de communication.

Il n'y a pas de règles générales dans cette industrie.

AK
la source
+1 mais de quelles autres manières la documentation et la communication sont-elles utilisées en ce qui concerne les bases de données?
miracle173
@ miracle173 Un bon livre est: "Principes, modèles et pratiques agiles en C #". J'aime aussi les articles sur le développement conduit
AK
1
Qu'entendez-vous par some teams prefer other ways? Je pense que cela aurait pu finir avec beaucoup de votes négatifs Si a été posté comme réponse sur Stackoverflow!
Pmpr
2

Il est important de concevoir avant d'écrire du code de production. Il est également important de prototyper; les gens de base de données développent des prototypes en écrivant SQL. (Rappelez-vous ce que Fred Brooks a dit sur les prototypes?)

Les langages graphiques, dont ER n'est qu'un, ne se sont pas révélés très efficaces pour capturer toute la sémantique d'une base de données d'une manière facile et simple à comprendre.

Ils ne se sont pas non plus révélés être des outils de communication très efficaces, sauf entre développeurs. Mais dans la conception de bases de données, la communication cruciale n'est pas entre les développeurs; c'est entre les développeurs et les experts du domaine (entre les développeurs et les gens d'affaires).

La modélisation objet-rôle (ORM) a un langage graphique, mais il est basé sur des "faits" (phrases simples). Les gens d'affaires peuvent valider les faits assez facilement. Les gens d'affaires ne peuvent pas facilement valider un diagramme ER ou un diagramme ORM.

Mike Sherrill 'Cat Recall'
la source
1
+1 mais connaissez-vous des chiffres ou des études qui soutiennent vos affirmations sur les problèmes de communicationg en utilisant des langages graphiques?
miracle173
Je ne suis pas universitaire, donc je ne suis pas de près la recherche. Un langage graphique qui ne parvient pas à capturer toute la sémantique d'une base de données (un ERD, par exemple) ne peut évidemment pas communiquer toute la sémantique; cela fait partie des recherches de Terry Halpin. En ce qui concerne la communication avec les experts du domaine, vous n'avez pas vraiment besoin de recherches pour cela. Vous avez juste besoin d'essayer d'expliquer un diagramme ER à un expert du domaine qui n'a qu'une éducation de 8e année. Comparez ensuite cette expérience avec la tentative d'expliquer la phrase «Chaque adresse a un et un seul code postal». La phrase l'emporte à chaque fois.
Mike Sherrill 'Cat Recall'