je veux commencer a apprendre les bases de données avec mysql mais je veux d'abord commencer par un cours sur la conception des systèmes d'information j'ai trouver donc deux methodes pour ca Merise et UML ....j'ai fait des recherches sur le net pour les différences entre ces deux méthodes...
mais je veux votre avis sur ce sujet et quelle méthode dois je choisir pour commencer car je debute et merci de me citer encore quelques difference que vous connaissez entre ces deux methodes .......MERCI
Il est en effet très important comme le dit vivgar, de bien différencier UML et Merise, ce que beaucoup ne font pas.
Tout d'abord Merise est une méthode, c'est à dire que l'on ne peut pas réaliser les modèles dans le sens que l'on veut (pour faire rapide), alors que UML est un langage (Unified Modeling Language) et ses auteurs n'ont pas réussi à se mettre d'accord pour définir une méthode claire et précise d'utilisation des différents schémas.
Bon ça c'est pour la petite histoire mais je pense que c'est assez important à noter.
L'exemple de vivgar est plutôt correct, puisque l'utilisation des différents schémas UML peuvent permettre de faciliter la modélisation via un MCD.
Ensuite il ne faut surtout pas oublier que la modélisation correcte d'une BDD n'est pas possible via UML (avec un diagramme de classe), et ce pour une bête histoire de sens d'écriture des cardinalités !
Enfin Merise étant une méthode franco-française, celle-ci est utilisée en France et à moindre mesure dans les pays francophone limitrophe (Suisse, Belgique,...), d'autres méthodes et modèles existant pour nos amis anglo-saxons (et consorts)
En tous cas pour modéliser une base de données, et si l'on prend uniquement Merise et UML, Merise est obligatoire alors qu'UML n'est qu'une aide.
Tusozor, tu as tout faux quand tu dis que " la modélisation correcte d'une BDD n'est pas possible via UML (avec un diagramme de classe), et ce pour une bête histoire de sens d'écriture des cardinalités !" . Comme tu dis, MERISE est une méthodologie et UML un langage de modélisation. Donc ne dis pas que Merise ne modélise pas une Base de données, au contraire c'est un de ses schémas qui s'en charge. Ceci est pareil pour UML. UML a en plus l'avantage d'être semi formel. Arrêtez de comparer les deux. UML modélise très bien les bases de données, pas de problème côté cardinalité.
"Ensuite il ne faut surtout pas oublier que la modélisation correcte d'une BDD n'est pas possible via UML (avec un diagramme de classe), et ce pour une bête histoire de sens d'écriture des cardinalités !" > Si MERISE ne permet de pas modéliser une BDD correctement et que personne hormis la France n'utilise MERISE, ça veut dire qu'il n'y a aucune base de données correctement implémentée hors de nos frontière ?! CQFD.
Plus sérieusement (de mon point de vue), MERISE est une méthodologie utilisé quasi exclusivement en France et dans les "petites" sociétés, dés que ça deviens sérieux / international / sur des grosses structures, MERISE n'est plus présent. J'ai appris avec MERISE (jusqu'en BTS), et j'en ai plus jamais entendu parler que ce soit en école d'ingé, dans mes jobs en France ou à l'étranger après ça. De mon point de vue UML est plus "complet", mais c'est qu'un avis...
PS : Je peux vous certifier que même en Suisse, on utilise pas MERISE (du moins, je l'ai jamais rencontré) ;)
MERISE est une méthodologie et UML un langage de modélisation.
PascalMz a écrit:
De mon point de vue UML est plus "complet"
PascalMz, tu dois utiliser une méthodologie utilisant elle-même le formalisme UML. Ce n'est donc pas (uniquement) UML, au sens où UML n'est pas une méthode en soit mais un langage à utiliser au sein d'une méthode ...
Je suis même presque sûr qu'il y a des bouts de MERISE dans votre méthode D'ailleurs rien n'empêche d'utiliser UML dans la méthode MERISE ...
Par ailleurs, il ne faut jamais oublier qu'au moment de l'implementation certains choix peuvent etre faits qui vont a l'encontre des formes normales ET du modele.
Il s'agit de faire des choix en fonction de qui doit être fait.
Exemple concret:
J'etais sur un projet ou les performances en lectures etaient largement prioritaires (donc en gros on s'en foutait du temps que ca prenait d'ecrire dans la base).
La base de donnees etait large et grande: beaucoup de colonnes, dans beaucoup de tables, pour stocker BEAUCOUP de donnees. Des millions d'enregistrements par jour (vraiment une masse d'info de dingue...il faut imaginer qu'on recuperait toutes les infos d'un reseau de telephone mobile (statistiques materielles pas les communication des gens) sur la moitié sud de la France).
La consultation de la base de donnees etait a but statistiques et donc si certains enregistrement n'etaient pas encore fait au moment ou on consultait la base de donnees c'etiat pas bien grave.
DONC: pour certaines requetes bien longues et complexes, on a décidé de dupliquer certaines données en base...pour eviter certaines jointures trop lourdes.
Dis comme ca, ca peut paraitre dingue.
Mais au final on a gagné un temps de fou sur certains SELECT, pour perdre quelques secondes sur des INSERT.
Et pourtant c'etiat pas ecrit dans le modele, ni dans les formes normales.
Des qu'on fait de l'optimisation de code, de base de donnees, etc...cela implique souvent de sortir des bonnes pratiques d'implementation
__
Si y'a pas d'accents dans mes messages c'est parce que je suis sur un clavier norvegien :)
Toujours confus ce sujet. Normal, c'est enseigné n'importe comment ! Pas étonnant que nos voisins n'en veuillent pas !
Merise est une méthode. UML un langage.
Merise utilise un langage : en général le MEA pour faire des MCD. Mais on peut aussi utiliser les diagrammes de classes UML pour faire les MCD.
Donc on peut faire du Merise sans le savoir en faisant le l'UML ! Aille, ça doit être confus dans la tête de beaucoup !
MCD, ça ne veut ni dire MEA, ni dire UML. Ca veut dire que dans le modèle, il n'y a pas de contraintes techniques, économiques ou organisationnelles. Chaud !
Pas de contraintes techniques : on ne pense pas aux spécificités de son SGBD (Oracle, MySQL, etc.) ou à des probèmes d'optimisation. Globalement, ça veut dire qu'on évite toute duplication d'information. On évite les tables inutiles tout en préservant les formes normales de base (1, 2, 3).
Pas de contriantes économiques : on ne réfléchit pas à ce que ça va coûter en terme de réalisation concrète. Si on doit stocker des fichiers de x gigas, c'est un attribut comme un autre dans le modèle.
Pas de contriantes organisationnelles : on ne s'intéresse pas à l'organisation de l'entreprise d'accueil. Par exemple, pour une banque, les BD sont répartis sur différents site. Dans un premier temps, on s'en fout. On fait comme si tout se passait au même endroit. On ne s'intéresse pas non plus à savoir si l'information est numérisée ou pas : on la met dans le modèle des données de toute façon.
Le MCD Merise c'est ça. Pour le réaliser concrètement, on utilse le langage qu'on veut, graphique ou pas. A l'origine, c'était le MEA. Comme l'UML a pris le dessus, on utilse plutôt l'UML. Ca ne pose pas de problème. C'est moins clair pour les associations avec attributs du MEA qui se traduisent en classe association UML, mais c'est une question d'habitude.
C'est tout !
Ensuite, dans la méthode Merise, l'étape 2, c'est le MOD (peu pratiqué, pourtant utile) : ici on réfléchit aux différents sites d'hébergement et aux masses de données. Il peut y avoir plusieurs MOD pour un MCD de départ.
Ensuite étape 3, le classique MLD. C'est une traduction en langage relationnel le plus souvent puisqu'on utilise en général un SGND-R. Mais on pourrait traduire en XML ou en relationnel-objet. Cette traduction n'ajoute rien au MCD ou MOD de départ.
Enfin, étape 4, on intrègre les contraintes techniques. C'est la problèmatique générale de l'optimisation. Ici on va peut-être ajouter des tables, ajouter des index, revoir un certains nombres de choses en vue d'une meilleure efficacité.
Et c'est fini !
Bien sûr la tendance générale, c'est de tout mélanger et d'intégrer des contraintes techniques dès le MCD, qu'il soit en MEA ou en UML. Ce faisant, on ne fait pas du Merise, qu'on utilise un MEA ou de l'UML, et qu'on appelle notre modèle MCD ou pas ! ouillouillouille !!! Quelle tambouille ! :-)
Pour finir, tout ça n'a de sens que sur des BD complexes. Plusieurs dizaines ou centaines de tables. Un MCD propre permet d'appréhender le modèle de façon plus claire et de communiquer plus efficacement entre MOA et MOE.
- Edité par TarnacienTarnacien 25 septembre 2017 à 9:41:38
je sais que ce sujet date de longtemps ... désolé.
en ce qui concerne ce que TarnacienTarnacien a dit , est-ce-que ça sous-entend que UML a des contraintes technique, économiques et organisationnelles ?
- Edité par just_another_user 4 octobre 2018 à 19:32:41
J'etais sur un projet ou les performances en lectures etaient largement prioritaires (donc en gros on s'en foutait du temps que ca prenait d'ecrire dans la base).
La base de donnees etait large et grande: beaucoup de colonnes, dans beaucoup de tables, pour stocker BEAUCOUP de donnees. Des millions d'enregistrements par jour (vraiment une masse d'info de dingue...il faut imaginer qu'on recuperait toutes les infos d'un reseau de telephone mobile (statistiques materielles pas les communication des gens) sur la moitié sud de la France).
La consultation de la base de donnees etait a but statistiques et donc si certains enregistrement n'etaient pas encore fait au moment ou on consultait la base de donnees c'etiat pas bien grave.
DONC: pour certaines requetes bien longues et complexes, on a décidé de dupliquer certaines données en base...pour eviter certaines jointures trop lourdes.
__
Ne pas confondre les bases OLTP et OLAP. OLTP c'est pour les opérationnels (compta, gestion de production...), OLAP pour les décideurs (business intelligence). Effectivement, en OLTP on essaie au maximum d'éviter les redondances et donc d'appliquer les formes normales. Par contre, en OLAP les volumétries étant généralement conséquentes, on fait ce qu'on appelle de la dé-normalisation. Ce qui n’empêche pas de commencer par normaliser.
De plus, le fait de dé-normaliser n'a rien à voir avec UML ou Merise. Il s'agit juste d'arbitrage pour améliorer les performances.
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Si y'a pas d'accents dans mes messages c'est parce que je suis sur un clavier norvegien :)