IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Documentations de SI


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Documentations de SI
    Bonjour amis développeurs !!

    J'ai un besoin ponctuel de modélisation et il se trouve que je n'y connaissais rien de rien avant de devoir m'y mettre
    Bon, j'ai lu pas mal de tuto et parlé avec d'autres développeurs qui maitrise la modélisation mais je bute actuellement sur un soucis de conception.

    Je vous fournit déjà une représentation simplifié de la partie de mon MCD qui me pose problème :





    EDIT: Je viens de m'apercevoir que les cardinalités ne sont pas bonnes sur la représentation : hosts <-0,n-> documente <-1,n-> docs (idem pour chacune des 4 entités)

    Le besoin qui m'a amené à cette représentation est le suivant :
    J'ai 4 entités (hosts, esxis, sis, shems) qui ont chacune leurs lots d'associations (masquées ici pour la facilité de lecture) vers d'autres entités. Pour précision si quelqu'un ne maitrise pas ces termes, on parle içi d'élément permettant la virtualisation (grosso modo, les hosts sont les VM, les esxi leurs hébergeurs physiques, les si correspondent aux noms des projets courant, les shem sont les baies regroupant les ESXis et le stockage en l’occurrence).
    J'ai besoin de représenté dans ce MCD le fait que chacune de ces 4 entités peut être documentées, par un ou plusieurs documents. Par exemple, un ESXi donné peut avoir en document sa facture et son documentation technique par exemple.
    J'ai donc opté pour la création d'une entité 'docs' permettant de regrouper toutes les docs des 4 entités. C'est là que ca se complique pour moi En voulant établir les associations entres 'docs' et mes 4 tables, je me suis rendu compte qu'elles avaient toutes le même nom (j'ai triché sur le MCD ci-dessus ) et qu'elles avaient toutes les même cardinalités. Ce fait m'étonne et m'interpelle. Du coup....


    Ma question (enfin!) est la suivante :
    Ma conception est-elle la meilleure? Si non, quels alternatives puis-je envisager?

    Je peux au besoin fournir mon MCD complet, en image ou en format PowerAMC.

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bonjour,

    A priori, j'ajouterais une entité-type pour le type de documents avec la règle de gestion suivante : Un document est précisé par un et un seul type de document et un type de document peut préciser plusieurs document
    MCD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DOCUMENT--1,1--préciser--0,n--TYPE DE DOCUMENT
    Si par contre les différentes types de documents ont des propriétés spécifiques les uns par rapports aux autres, j'utiliserais plutôt alors l'héritage. Plus alors de l'entité-type "type de document" puisque le type sera de fait déterminer par l'entité-type dans lequel il est définit.
    Vu que vous vous dites débutant, voici un exemple d'héritage en merise et comment passer du MCD au MLD. Ne retenez cependant que la première solution. La 2e et la 4e me semblent caduque quant à la 2e, il faudrait voir ce que l'auteur veut dire par partition...


    Pour les associations "documente xx", vous dites qu'un document documente un ou plusieurs hosts/sis/shems/esxis. Est-ce bien correct ? Concrètement : Est-ce qu'une facture peut réellement concerner plusieurs hosts ?
    Si non, il faut revoir la cardinalité de cette patte de l'association.


    Concernant les entités-type en elles-même, esxis me semble avoir beaucoup d'attribut. Cela indique souvent (pas toujours !) un problème de modélisation (certains devraient p-e être externalisés dans d'autres entités-type).

    Revérifiez également avec soin le type de donnée choisi. Par exemple, la fréquence processeur en entier me semble bizarre.
    Kropernic

  3. #3
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonjour Fabien,


    Citation Envoyé par Torrent007007 Voir le message
    Bonjour amis développeurs !
    Ach ! Ça fait bien des années que je ne développe plus, mais du coup plein de souvenirs me reviennent...


    Citation Envoyé par Torrent007007 Voir le message
    Ma conception est-elle la meilleure ?
    Heu... Le meilleur en la matière est inaccessible... J’aurais formulé la question ainsi : « Ma conception est-elle acceptable ? »

    Pour répondre à une telle question, il faudrait déjà que l’on disposât des énoncés les règles de gestion concernant les relations entre les entités-types SI, HOST, EXSI et SHEM.


    Citation Envoyé par Torrent007007 Voir le message
    Je peux au besoin fournir mon MCD complet, en image ou en format PowerAMC.
    Peut-être pas un MCD complet, mais au moins une image illustrant les relations entre les entités-types que je viens d’énumérer et — plus important — pour confirmer ce qui précède, à titre de « preuve par 9 », les règles de gestion décrivant ces relations, sans laisser le flou s’installer, tant pour les cardinalités minimales que maximales (ne pas écrire « peut » quand en réalité il faut écrire « au moins un », etc.)

    Concernant les documents : il est très important que l’on sache si un document peut concerner à la fois deux types d’entités différents, par exemple une baie et un projet : comme dit Krop, on peut légitiment avoir des doutes. Qu’en est-il ? Bref, dites-nous tout à leur sujet pour que nous puissions vous aider objectivement...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    En complément


    Citation Envoyé par Kropernic Voir le message
    Ne retenez cependant que la première solution. La 2e et la 4e me semblent caduque quant à la 2e, il faudrait voir ce que l'auteur veut dire par partition...
    De fait, quand on utilise l'héritage et qu'on passe du MCD au MLD il ne faut retenir que la 1re solution, voyez ci-dessous les éventuels problèmes que les autres solutions peuvent à l’occasion provoquer, bien inutilement.


    Citation Envoyé par la FAQ Merise
    Ne dupliquer dans les tables sous-type que l'identifiant.
    Cette solution ne pose aucun problème de redondance. Elle est celle qui minimise la place. On peut "reconstituer" les héritages par des vues SQL.
    Attention à la représentation graphique, car à droite (en vert) figurent manifestement des vues de jointure, permettant d’avoir une vision « objet » des imprimantes et des lecteurs de CD :




    A signaler que si l’attribut Type prend les valeurs "imprimante", "lecteur CD", etc., alors il est redondant et n’a pas lieu d’être, ce que montrent bien les vues. Par ailleurs, dire que la place est minimisée n’est pas le rôle du concepteur : c’est au professionnel des bases de données, le DBA, d’apprécier cela, en fonction du SGBD, des volumétries calculées autrement qu’au pifomètre, et en fonction des résultats du prototypage des performances. A titre indicatif, ayant pour ma part utilisé DB2 depuis la V1, il se trouve que, même pour des tables de plusieurs dizaines de millions de lignes, après moult prototypages serrés, je n’ai jamais eu à remplacer cette solution par une autre.


    Citation Envoyé par la FAQ Merise
    Dupliquer la totalité du surtype dans les sous types
    On a certes une redondance à gérer mais l'accès est plus facile car on a l'intégralité des informations d'un périphérique spécifique dans une table.
    Cette 2e solution est génératrice de redondances inutiles, elle est à fuir ! C’est ce que dit de façon moins triviale la théorie relationnelle (The Principle of Orthogonal Design). La FAQ Merise a tout bonnement oublié de prendre en compte les mises à jour des tables. Prenons l’exemple de la modification de l’état d’une imprimante : les deux tables PERIPHERIQUE et IMPRIMANTE sont à mettre à jour et dont il faut garantir l’égalité des valeurs prises sur l’attribut redondant, d’où triggers pas simples en perspective... Quant à obtenir la « facilité d’accès » il suffit d’en passer par des vues de jointure. Si l’on veut tout savoir sur l’imprimante 24, on code (en SQL) :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT PeriphId, ImprimanteEtat, ImprTypeEncre, ImprNiveauPapier
    FROM   IMPRIMANTE_V
    WHERE  PeriphId = 24 ;

    Ou IMPRIMANTE_V est une vue, c'est-à-dire une table virtuelle définie au moyen de l’instruction qui va bien, par exemple :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE VIEW IMPRIMANTE_V (PeriphId, ImprimanteEtat, ImprTypeEncre, ImprNiveauPapier) AS
        SELECT x.id_periph, état, type_encre, niveau_papier
        FROM   PERIPHERIQUE AS x JOIN IMPRIMANTE AS y ON x.id_periph = y.id_periph ;

    Et qu’on ne vienne pas m’opposer l’argument éculé, obsolète mais sans cesse ressorti — depuis qu’existent les moteurs relationnels — par certains qui n’ont jamais été DBA, argument selon lequel la jointure engendre des accès supplémentaires au disque, donc qu’elle est un facteur de dégradation de la performance : la jointure est l’opération relationnelle par excellence et un SGBD relationnel digne de ce nom se doit de la faire cartonner. A titre d’exemple, voyez ici, quand les gens de la banque se proposaient naïvement de remplacer une jointure par un accès à une seule table, sans se douter qu’ils ne gagneraient que quelques secondes sur une durée inacceptable de 9 heures, ce que montrait un simple prototypage des performances.


    Citation Envoyé par la FAQ Merise
    Ne conserver que les sous-types après avoir dupliqué le contenu du surtype
    Conserve les avantages de la solution 2.2 en supprimant la redondance; mais cela exige que l'héritage est un soit une partition.
    Hum... Partons du MCD :




    Le MLD dérivé est le suivant :




    Une incidente à l’attention de Krop : vous savez que des sous-types (ou sous-classes) peuvent être soumis à des contraintes d’exclusion ou de totalité :
    Exclusion : une imprimante ne peut pas être un lecteur de CD, un écran, etc. ;

    Totalité : il n’y a pas d’autres types de matériel que les imprimantes et les lecteurs de CD les écrans et les disques externes.
    Si l’exclusion et la totalité sont vérifiées simultanément, alors il y a partitionnement des sous-types IMPRIMANTE, ECRAN, LECTEUR_CD, DISQUE_EXTERNE (comme en mathématiques, lorsque l’union des sous-ensembles disjoints d’un ensemble E est égal à E). — Fin de l’incidente.

    Cette 3e solution n’est pas recommander dans la mesure où les structures ne sont pas figées et peuvent évoluer au fil du temps. Supposons que la base de données soit en production et qu’on ait retenu cette solution. Or voilà qu’un beau jour on veut établir une association entre les périphériques et les fournisseurs (voire encore d’autres entités-types à mettre elles aussi en relation avec PERIPHERIQUE, par exemple COMMANDE ou LIVRAISON, etc.) Le MCD évolue ainsi :





    Tandis que MLD doit subir une maintenance pour devenir le suivant :





    On observera qu’au lieu d’établir une seule contrainte d’intégrité référentielle entre les tables FOURNISSEUR et PERIPHERIQUE, comme cette dernière table n’existe pas, il faudra établir autant de contraintes qu’il y a de tables issues des sous-types : une contrainte ça va, deux contraintes ça va, trois contraintes... (et encore ceci n’est que la partie émergée de l’iceberg : si N est le nombre de sous-types, il y a des travaux en N exemplaires à réaliser : index à créer, déchargements/rechargements des tables, des requêtes en N exemplaires au lieu d’une seule, etc., la production informatique appréciera moyennement, tout comme celui qui tient les cordons de la bourse...)

    Par comparaison, le MLD de la solution 1 évolue ainsi :



    Seule la table PERIPHERIQUE est touchée par la prise en compte des fournisseurs.


    Citation Envoyé par la FAQ Merise
    Tout remonter dans le surtype
    Solution de facilité, une seule table; mais sûrement un grand nombre de valeurs "à vide"; ça dépend comment la base de données gère ces vides.
    Cette solution est une cata, un bug conceptuel, je dirais que c’est la solution « asile de fous... » Si vraiment on veut ne voir qu’une table, il suffit de mettre en œuvre une vue de jointure entre le surtype et des sous-types.

    ____

    Si JPhi33 passe par là...

    En complément sur ce qui est écrit dans la FAQ à propos de l’héritage et de la dérivation du MCD et MLD :

    J’ai l’impression que quelqu’un a modifié ce qu’a écrit l’auteur de la FAQ, D. Nanci, car on ne reconnaît pas sa patte, il suffit de se référer au remarquable ouvrage de référence qu’on lui doit (coécrit avec Bernard Espinasse) : Ingénierie des systèmes d'information : Merise deuxième génération (3e édition) où l’on peut lire, je cite :

    Solution 1 :

    On exprime les sous-types par des tables spécifiques, correspondant en fait à des relations (0,1)-(1,1). Il y a ainsi migration de l’identifiant du surtype dans les sous-types.

    Solution 2 :

    Comme dans la solution précédente, on exprime les sous-types par des tables spécifiques. Il y a duplication des attributs du surtype dans les sous-types associés, dont la mise à jour simultanée peut être réalisée à travers un mécanisme automatique implémentant l’héritage, par exemple par triggers.

    Solution 3 :

    Dans cette solution, on duplique la totalité du contenu du surtype dans les sous-types associés et on supprime le surtype. Cette solution n’est pas conseillée dans le cas où il existe, dans le modèle conceptuel (entité-relation), des relations portant sur le surtype.

    Solution 4 :

    On transfère la totalité des propriétés des sous-types dans la table correspondant au surtype. On exprime ensuite les sous-types par des vues relationnelles d’une table globale. Les sous-types sont exprimés par des vues relationnelles de la table [globale] rassemblant l’ensemble des propriétés spécifiques aux sous-types. »

    Ce que je viens de citer est quand même d’une autre tenue que ce qu’on lit dans la FAQ où l’on trouve cette horreur (outre les observations sans intérêt sinon trompeuses ayant trait à la jointure ou à la l’économie de place) :

    « cela exige que l'héritage est un partition »
    Je constate non seulement que la langue française est mise à mal, mais je relève aussi la présence d’un non-sens : l’héritage est une technique ou un processus (cf. le document Journée Afcet, 15 novembre 1990) tandis qu’une partition est représentée par un sous-type d’entité-type. Je ne reconnais donc pas la patte et la rigueur de D. Nanci, très chatouilleux sur toutes ces choses-là : visiblement quelqu’un s’est permis de bricoler son énoncé.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Déjà, merci à vous 2 pour avoir pris le temps de répondre de façon aussi clair et détaillé !
    Je vais tenter de répondre à chacune de vos questions/demandes en espérant ne pas faire de hors sujet
    Comme je le craignais, mon ignorance dans le domaine de la conception ne m'a pas permis d'être assez clair sur l’objectif réelle de ma question Je vais tacher de faire mieux !

    #2 - Kropernic

    Initialement, le type du document m'importais peu mais en lisant votre post, je me rend compte que oui, le type de document est important pour d'éventuelles recherches futures.

    Citation Envoyé par Kropernic Voir le message
    Pour les associations "documente xx", vous dites qu'un document documente un ou plusieurs hosts/sis/shems/esxis. Est-ce bien correct ? Concrètement : Est-ce qu'une facture peut réellement concerner plusieurs hosts ?
    Si non, il faut revoir la cardinalité de cette patte de l'association.
    En fait, en prenant en compte maintenant le type de document, certain de ces types peuvent en effet impacté (0,n) esxis/hosts/sis/shems. En exemple, la documentation technique concernant un ESXi est identique et commune à tous les ESXis de même type. Ainsi qu'une facture peut concerné 3 ESXi et 2 hosts par exemple. Pour précision, ce que nous qualifions d'host ici est soit un serveur physique, avec son OS installé, ou une machine virtuelle (VM) avec également son OS. Ce nom host est une contrainte du cahier des charges, même s'il n'est pas des plus approprié.

    Citation Envoyé par Kropernic Voir le message
    Concernant les entités-type en elles-même, esxis me semble avoir beaucoup d'attribut. Cela indique souvent (pas toujours !) un problème de modélisation (certains devraient p-e être externalisés dans d'autres entités-type).

    Revérifiez également avec soin le type de donnée choisi. Par exemple, la fréquence processeur en entier me semble bizarre.
    Les ESXi sont de simple machine physique permettant l'installation de VM sur celle-ci, pour schématiser et simplifier un peu le terme.
    Les attributs sont les caractéristiques technique et physique de ces machines. Certes je pourrais faire une entité processeur, etc... mais je n'aurais pas besoin d'autant de précision et d'évolution dans ce projet. Je garde cependant cette idée dans un coin de ma tête pour une éventuelle v2 du projet s'il dépasse les ambitions qui lui sont fixé

    #3 - fsmrel

    Ah le développement....

    Bon, revenons à nos moutons !
    En l'écrivant, je me suis fait la même réflexion quand au "meilleur" ou "acceptable"

    Concernant une image plus détaillé sur les 4 entités, voilà



    Je n'ai pas encore intégré le type de document, mais c'est en rapport avec une question qui pointe le bout de son nez à la fin de ce post

    En espérant que tu y trouves les informations dont tu peux avoir besoin

    Citation Envoyé par fsmrel Voir le message
    Concernant les documents : il est très important que l’on sache si un document peut concerner à la fois deux types d’entités différents, par exemple une baie et un projet : comme dit Krop, on peut légitiment avoir des doutes. Qu’en est-il ? Bref, dites-nous tout à leur sujet pour que nous puissions vous aider objectivement...
    Comme dit précédemment, certains types de document peuvent en effet concerner plusieurs entités simultanément (facture par exemple). cependant, cela reste assez rare je pense à l'utilisation (je ne vois que les factures pour l'instant en fait).

    #4 - fsmrel (encore ! )

    RAS


    -----------


    Je vais tenter maintenant de formuler/reformuler quelques questions aussi claires que possible :
    1 - Suis-je obligé d'utiliser 4 associations "documente xx" pour relier mes docs à mes entités ? Le fait que les 4 associations ont le même 'rôle' (documente) et qu'elles ont les même cardinalités me chagrine. Peut-être à tort me direz-vous, mais une confirmation/explication de votre part me serait très utile
    2 - Pour la mise en place du typage des documents, quel méthode dois-je utiliser? héritage ou simple association? Et pourquoi? J'ai regardé quelques explications sur le site concernant l'héritage mais j'ai du mal à saisir l'intérêt dans mon cas en fait.


    Je joins en PJ mon MCD sous PowerAMC si vous en avez besoin en plus de l'image utilisée

    Encore MERCI pour votre aide !
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bonjour,

    Voici une suggestion (voir pièce jointe). A voir si cela correspond bien à votre situation ou non.
    N.B. : Je n'ai pas PowerAMC alors je modélise à l'étape du MLD.

    J'ai utilisé l'héritage pour généraliser les différentes types d'éléments permettant la mise en œuvre de la virtualisation.

    De la, vu qu'on a une table mère pour les éléments de virtualisation, on a donc une seule relation vers la table des documents via la table de jointure qui doit être créée puisque nous avons une relation plusieurs à plusieurs au MCD.

    Je n'ai placé sur la diagramme que les colonnes servant d'identifiant. Je vous laisse le soin de placer les autres.

    Concernant les documents, comme dit précédemment, si vous avez plusieurs type de documents avec des attributs bien spécifique chacun, j'utiliserais l'héritage également pour les documents.

    N.B. : Je crois que vos noms d'entités sont au pluriel. Quand on modélise, on modélise un objet. Au singulier donc. Dans le doute, j'ai repris vos noms tels quels.
    Images attachées Images attachées  
    Kropernic

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    #6 - Kropernic

    Merci pour votre réponse rapide encore une fois

    Je suis arrivée au même MLD concernant le typage des documents. Parfait !

    En revanche et au risque de paraître encore plus nul que je le suis déjà ( ), je ne comprends pas l'utilisation de ce que vous appelez la virtualisation ici. Je pense comprendre le principe général qui est de ne présenter qu'une table virtuel 'simulant' n'importe laquel de mes 4 entités initiales du MCD à la table "doc". Je ne vois pas par contre comment le matérialiser sur mon MCD (si cela est possible toute fois). J'ai essayé de cherché (rapidement certes) des informations sur cette virtualisation mais rien ne sort sur notre ami Google ou sur developpez.com Auriez vous le cas échéant un tutoriel ou une référence m'expliquant ce mécanisme et son utilisation?

    Et, comme toujours, merci pour votre temps !

  8. #8
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Euh non, j'ai utilisé l'héritage moi. La virtualisation, c'est vous qui faites ça. Enfin c'est ce que j'ai compris quant au quoi de votre modélisation.

    Et j'ai donc nommé ma table "T_VIRTUALIZATION_ITEM_VII". Si je détaille :

    • Le préfixe "T_" et le suffixe "_VII" vient d'une règle de nomenclature que j'utilise.
    • "VIRTUALIZATION_ITEM" signifie, en anglais, éléments de virtualisation. Qui est ce que j'avais compris comment ce à quoi servent vos SIS, ESXIS, HOSTS et SHEMS. Il s'agit donc juste d'un nom générique pour vos 4 entités afin de les représenter dans une entité parente.

    Bref, ce n'est qu'un nom, vous pouvez appeler cette table T_PATE_EN_CROUTE_PEC si ça vous chante . Personnellement, je préfère choisir un nom parlant pour le plus de monde possible .


    Pour finir sur une note culturelle concernant le nom qu'on donne aux choses, voici un extrait de l'ouvrage "De l'esprit géométrique, ou De l'art de persuader" de Blaise PASCAL (1623-1662) que mon professeur de mathématique m'a fait découvrir il y a peu :

    Citation Envoyé par Blaise PASCAL
    D’où il paraît que les définitions sont très libres, et qu’elles ne sont jamais sujettes à être contredites ; car il n’y a rien de plus permis que de donner à une chose qu’on a clairement désignée un nom tel qu’on voudra. Il faut seulement prendre garde qu’on n’abuse de la liberté qu’on a d’imposer des noms, en donnant le même à deux choses différentes.
    Ce n’est pas que cela ne soit permis, pourvu qu’on n’en confonde par les conséquences, et qu’on ne les étende pas de l’une à l’autre.
    Mais si l’on tombe dans ce vice, on peut lui opposer un remède très sûr et très infaillible : c’est de substituer mentalement la définition à la place du défini, et d’avoir toujours la définition si présente, que toutes les fois qu’on parle, par exemple, de nombre pair, on entende précisément que c’est celui qui est divisible en deux parties égales, et que ces deux choses soient tellement jointes et inséparables dans la pensée, qu’aussitôt que le discours en exprime l’une, l’esprit y attache immédiatement l’autre. Car les géomètres et tous ceux qui agissent méthodiquement, n’imposent des noms aux choses que pour abréger le discours, et non pour diminuer ou changer l’idée des choses dont ils discourent. Et ils prétendent que l’esprit supplée toujours la définition entière aux termes courts, qu’ils n’emploient que pour éviter la confusion que la multitude des paroles apporte.
    Kropernic

  9. #9
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Au temps pour moi, je n'avais pas compris cela ainsi

    Je crois que mon explication n'a encore pas été assez claire Je vais essayer de vous représenter l'architecture système qui est la notre :
    Un SHeM (Service d'Hébergement Mutualisé) est une baie regroupant un ensemble permettant la virtualisation de serveur dans notre cas.
    Dans cette baie, il y a le stockage (non représenté volontairement dans notre modèle) et des ESXi. Ces ESXi sont des serveurs en gros permettant d'héberger des hosts virtuels. Ils leurs sont quand même attribué un nombre de processeur, une mémoire vive, etc...
    Ce que nous appelons SI ici est assez mal nommé (mais imposé ) est en faites le nom des projets nécessitant une infrastructure system (le déploiement d'un environnements AD par exemple ou la mise en place d'une installation Exchange 2010 multi-serveur).
    Petite particularité à ce système : un host peut également être un serveur non virtualisé (physique) et ainsi n'avoir aucun lien avec un ESXi.

    Pour synthétiser :
    - Les SHeM sont composé d'au moins un ESXi
    - Les ESXi hébergent de 0 à n hosts
    - Un host peut être physique (serveurs "a l'ancienne") ou virtuel
    - Un SI regroupe au moins un host (physiques ou virtuels)

    Du coup, la proposition que vous avez faîtes est, je le crains, incorrecte

    Pour donner un exemple complet concret concernant la documentation maintenant :
    Nous avons déployé un environnement Exchange 2010 en début d'année. Ce projet (SI) s'appelle 'ALPHA'. Nous avons reçu un cahier des charges initiales et nous avons émis une solution technique en retour de ce cahier des charges (ces 2 documents concernent donc l'occurrence 'ALPHA' de la table 'sis').
    Pour la réalisation de ce système, nous avons préconisé un ensemble de 16 serveurs réparties sur 4 ESXi, tous regroupé sur un seul SHeM. Pour assuré un suivi complet, une fiche technique détaillé est créer pour chacun des 16 hosts virtuels nécessaires (1 document a attaché à chacune des 16 occurrences de la table 'hosts').
    Une facture a également été émise pour l'achat du SHeM et des 4 ESXis (la facture est donc a rattaché à l’occurrence de la table 'shems' et aux 4 occurrences de la tables 'esxis').

    Je ne sais pas si l'univers de la virtualisation vous est familier mais au moins, nous partons sur une explication qui devrait vous donnez une meilleure vue d'ensemble.

    Concernant le nom de mes entités, le pluriels viens du fait que j'utilise CakePHP pour interfacer un site Web de gestion de parc serveur et que, par convention, CakePHP à besoin de tables au pluriels pour trouver de façon natif les modèles de l'architecture MVC mis en place

  10. #10
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonjour,


    Comme je l’ai expliqué précédemment, avant de foncer sur la façon de prendre en compte le concept de documentation, il faut d’abord s’assurer que la base de l’édifice est solide, sinon si on doit la remettre en cause, ça aura des conséquences pouvant être dévastatrices sur le reste.


    Citation Envoyé par Torrent007007 Voir le message
    En espérant que tu y trouves les informations dont tu peux avoir besoin
    Pas assez...

    Un MCD est une représentation graphique qui permet d'avoir une certaine vision de la situation, mais ça n’a aucune valeur de preuve : pour conclure qu’un MCD donné est bien une conséquence logique du corpus des règles de gestion, encore faut-il que l’énoncé en français (correct et sans flou) de chaque règle soit fourni, notamment pour celles qui décrivent les relations qu’entretiennent les entités-types et justifient les cardinalités min et max (par exemple la cardinalité 0,1 portée par la patte connectant HOST et HEBERGE est suspicieuse, même si je me doute de ce dont il retourne).

    Cela dit, les énoncés expliquant ce que sont les entités-types aident bien eux aussi. Quand je lis :

    « Pour précision, ce que nous qualifions d'host ici est soit un serveur physique, avec son OS installé, ou une machine virtuelle (VM) avec également son OS. Ce nom host est une contrainte du cahier des charges, même s'il n'est pas des plus approprié. »
    On a là une information fort utile, permettant d’interpréter le concept de HOST comme étant au plan de la modélisation une généralisation des concepts de serveur physique et de machine virtuelle.

    Une esquisse :




    Où l’on voit que :

    Les propriétés communes aux serveurs physiques et aux machines virtuelles sont « factorisées » dans le surtype HOST ;

    Les propriétés spécifiques des serveurs sont regroupées dans l’en-tête du sous-type SERVEUR_PHYSIQUE et celles qui sont spécifiques des machines virtuelles sont regroupées dans l’en-tête du sous-type MACHINE_VIRTUELLE.

    Concernant la relation entre SERVEUR_PHYSIQUE et MACHINE_VIRTUELLE, à supposer que les règles soient les suivantes (merci de les réécrire si ça n’est pas cela) :
    Une machine virtuelle est hébergée par exactement (c'est-à-dire au moins un et au plus) un serveur physique ;

    Un serveur physique peut ne pas héberger de machine virtuelle ; un serveur physique peut héberger plusieurs machines virtuelles.

    Si les règles sont correctes, alors le MCD évolue ainsi :



    Selon votre MCD :

    Un serveur physique est localisé dans exactement une baie (SHEM) : pas de problème.

    Un host (serveur ou VM) héberge un seul projet (SI) : cela paraît un peu réducteur, pourriez-vous expliquer ?

    N.B. Vu votre message de ce jour (#9) dont je viens de prendre connaissance, vous donnez des réponses à certaines de mes questions. Merci néanmoins de fournir le corpus complet (hors ce qui concerne la documentation...)


    Citation Envoyé par Torrent007007 Voir le message
    Je vais tenter maintenant de formuler/reformuler quelques questions aussi claires que possible :
    1 - Suis-je obligé d'utiliser 4 associations "documente xx" pour relier mes docs à mes entités ? Le fait que les 4 associations ont le même 'rôle' (documente) et qu'elles ont les même cardinalités me chagrine. Peut-être à tort me direz-vous, mais une confirmation/explication de votre part me serait très utile
    2 - Pour la mise en place du typage des documents, quel méthode dois-je utiliser? héritage ou simple association? Et pourquoi? J'ai regardé quelques explications sur le site concernant l'héritage mais j'ai du mal à saisir l'intérêt dans mon cas en fait.
    Chaque chose en son temps. On discutera de tout cela quand la base sera stabilisée, sinon on risque de se fourvoyer.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Je suis en mission jusqu'à le fin de semaine.
    Je prendrais le temps ce WE et en début de semaine prochaine pour affiner le MCD et vous soumettre une réponse digne de ce com

  12. #12
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    (re) Bonjour !

    Désolé du silence radio pendant tout ce temps mais j'ai été très pris par d'autre projets depuis 10 jours
    Revenons à ce MCD maintenant
    Je retravaille autant que possible le MCD avec les pistes et conseils que vous m'avez donné et je posterai ce qu'il en sort.

  13. #13
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    A bientôt donc ! Et courage
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour

    Bon, depuis que j'ai posté mon dernier message, je me suis pas mal documenté sur la conception en générale et sur Merise plus spécialement. A chaque tuto que je lisais, je me rendais compte de plus en plus que j'ai pris mon projet comme un vrai amateur, c'est à dire complètement a l'envers

    J'ai donc pris la décision de recommencer mon projet dans le bon ordre cette fois !
    (j'espère ne pas vous avoir fait fuir avec cette dernière phrase )

    Sachez d'ailleurs que le travail fait en amont n'est pas vain : c'est vos explications/conseils qui m'ont donné envie de comprendre/connaitre la modélisation et la conception. J'aime bien faire ; et pour bien faire dans l'informatique, il faut apprendre en permanence !

    L'idée première de mon projet est de créer une application web permettant de documenter et de regrouper toutes les informations de systèmes informatiques. Cependant, le coté pédagogique de toutes les phases du projet a également, pour moi, un énorme intérêt.

    Je devrais normalement commencer par étudier/créer un cahier des charges. Cependant, il n'y en a aucun car le projet viens de moi et n'est pas plus précis que ce que j'ai écris le paragraphe précédent :

    Une application web permettant de documenter et de regrouper toutes les informations de systèmes informatiques.


    Pour cela, j'ai besoin de concevoir une base de donnée regroupant un maximum de caractéristiques techniques et administratives sur des serveurs (physique ou virtuel), des projets, des personnels, etc...

    D'après mes lectures, le point de départ de la conception est le dictionnaire des données. Suis-je dans le vrai ?
    En attendant votre confirmation, j'ai trouvé un résumé (sur developpez.com d'ailleurs je crois) qui me paraît pas mal de ce que doit être un dictionnaire des données :

    Un dictionnaire des données doit respecter les contraintes suivantes :
    - Tous les noms doivent être monovalués et non décomposables.
    - Il ne doit pas y avoir d'homonymes, ni de synonymes.
    - Les données y sont regroupées par entité.
    - Les identifiants sont complètement précisés,
    - Les commentaires doivent être pertinents.
    Mon dictionnaire avance bien en suivant ces 5 règles

    Une fois de plus, merci de m'avoir lu et encore plus de m'aider

  15. #15
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par Torrent007007 Voir le message
    J'ai donc pris la décision de recommencer mon projet dans le bon ordre cette fois !
    Ah ! Si tous les forumeurs pouvaient dire comme vous !


    Citation Envoyé par Torrent007007 Voir le message
    J’espère ne pas vous avoir fait fuir avec cette dernière phrase
    De quoi aurions-nous donc peur ? Les vieux baroudeurs ont tout vu, tout entendu ! (Enfin, presque...)


    Citation Envoyé par Torrent007007 Voir le message
    D'après mes lectures, le point de départ de la conception est le dictionnaire des données. Suis-je dans le vrai ?
    C’est un bon point de départ. Et du reste on procédait déjà ainsi il y a 50 ans : avant de se jeter à corps perdu dans les développements, on analysait (par exemple à l’aide de la méthode CORIG du regretté Robert Aymé Malet à qui je dois beaucoup) et l’on recensait les informations, lesquelles immanquablement étaient incorporées à un dictionnaire (Scripta manent, verba volant !). Certes, on y trouvait des erreurs, des ambiguïtés, voire des contradictions, il y avait des manques, des causes de quiproquos, mais au moins nous disposions d’une base nous permettant — comme un baba est imbibé de rhum (et un baba sans rhum ça ne vaut pas tripette, tout comme un projet sans dictionnaire...) — de nous imbiber tranquillement du micro-monde, de cet univers à modéliser qu’est l’entreprise (qu’on appelle du reste « univers du discours » suite à Augustus de Morgan).

    Mais les définitions données dans un dictionnaire sont la source de bien des quiproquos, aussi est-il nécessaire d’en formaliser le contenu. S’il s'avère indispensable, le dictionnaire se révèle insuffisant. Disons que pour le moment on se situe dans une phase analytique de style bottom-up (approche ascendante). Il est temps de passer à la constitution du thésaurus des règles de gestion des données et là on fait dans le top-down (approche descendante), on entre dans le monde des idées, on coiffe sa casquette de philosophe pour commencer à concevoir les entités-types (types d’entités) et, point crucial ! les relations qu’elles entretiennent. Comme un dessin vaut mieux qu’un discours, on représente graphiquement les entités-types et les relations (le MCD) au moyen de son AGL, lequel offre l’avantage du formalisme permettant d’éliminer certaines ambiguïtés. Bien entendu, en permanence on lève des loups, on bombarde l’utilisateur de questions que soulève la modélisation, on corrige le dictionnaire et le MCD à la nausée...

    Dans tout cela, on ne s’est intéressé qu’au QUOI, et le COMMENT n’a rien à faire ici.

    Quoi qu’il en soit, concrètement le dictionnaire et le MCD doivent subir l’épreuve du feu... Dans ma longue carrière, j’ai eu à expertiser bien des MCD conçus dans les règles de l’art (c'est-à-dire sans erreur relevée par l'AGL...), mais impropres à la consommation, c'est-à-dire au mieux incomplets, au pire débiles ou faux.

    Exemple, il y a vingt-cinq ans, j’ai eu à engager mon entreprise (SSII) sur la performance d’une application vitale pour un client (dur en affaires). A partir d’un MCD produit par une autre SSII et partie modéliser sous d’autres cieux, mes camarades chefs de projets s’intéressaient aux traitements tandis que je devais construire la base de données. Mon 1er réflexe fut évidemment de décortiquer ce MCD, y chercher les erreurs, les failles, les manques et les contradictions, les viols de 5e forme normale, et je n’ai pas été déçu... Mes camarades chefs de projets non plus d’ailleurs, obligés de mettre nos équipes de développement au chômage technique, le temps de passer deux mois en réunion avec la MOE de notre client, à corriger et compléter le thésaurus des règles de gestion des données et le dictionnaire...

    Ainsi, le jour de mon arrivée j’avais commencé par éplucher le dictionnaire et étais tombé sur des définitions du genre :

    « Lieu commun : objet du lieu commun. »

    Vu le laconisme de la définition, je me suis dit qu’il s’agissait d’un concept faisant partie du vocabulaire courant, du jargon du client. J’ai donc posé la question à quelqu’un connaissant bien son sujet : « Qu’est-ce cela ? » Réponse : « Il s’agit d’un lieu de stockage occasionnel : par exemple, quand il n’y a plus de place pour stocker des articles dans le dépôt Tartempion, le père Matthieu nous prête sa grange le temps que. »

    Cette précision m’amena à toucher au MCD, avec impact sur les relations avec le stock, lequel est toujours délicat à modéliser.

    J’ai ensuite présenté le MCD retouché à un autre interlocuteur connaissant bien le sujet lui aussi. Pour lui, la 1re réponse qui m’avait été faite ne collait pas : « Meuh non... Il s’agit d’articles élucubrés par nos savants fous, articles dont 99% ne feront jamais partie de notre catalogue qu’il est hors de question de polluer avec des montagnes de schmilblicks éphémères... »

    Quand un 3e interlocuteur me donna une réponse encore radicalement différente (et que j’ai oubliée), j’ai compris que la véritable définition à retenir était du lieu commun était :
    « Lieu commun : poubelle pour ce dont on ne sait que faire. »

    Après investigation et quelques trouvailles et perles de la même eau, je n’ai pas eu grand mal à convaincre mes camarades qu’on partait au bain, et que si on ne revoyait pas le MCD le projet n’aboutirait pas. Certes tout n’était pas faux, mais il a fallu qu’ils repartent à l’interview de l’utilisateur, le MCD a pris pas mal de poids, tandis qu'on s'est pris deux mois dans la vue, mais qu'est-ce que deux mois dans ces conditions ?

    Aux dernières nouvelles, l’application se porte à merveille.


    Pour en revenir au dictionnaire, son absence est perturbante, voyez la discussion ici « Opérations sur des documents » : au vu du MCD et sans dictionnaire, j’ai cru qu’il s’agissait d’emprunter de la documentation, un peu comme on emprunte des livres à la bibliothèque. En réalité il s’agit de tout autre chose et je ne suis toujours pas certain de la pertinence du MCD...


    Rester dans les concepts à 10 km d’altitude ne suffit pas. N’hésitez pas à utiliser des exemples, un peu comme ici, et à la suite. Les exemples permettent par exemple de débusquer ce qui se cache derrière le concept de « lieu commun »...


    Une question à cent sous. A propos de votre citation :
    « Les identifiants sont complètement précisés ».
    Avez-vous une idée de ce que veut dire l’auteur ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Votre message est plus qu'encourageant et me conforte dans l'idée que j'ai pris la seule décision qui devait être prise.

    J'ai malheureusement un gros contre temps pour les 2 semaines qui arrivent (encore ) et je ne sais pas encore si j'aurais du temps à consacré à mon projet. En espérant vous apporter un premier jet de mon dictionnaire, aussi clair et complet que possible, d'ici là.

    Citation Envoyé par fsmrel Voir le message
    Une question à cent sous. A propos de votre citation :
    « Les identifiants sont complètement précisés ».
    Avez-vous une idée de ce que veut dire l’auteur ?
    Non je dois bien avoué ne pas avoir saisis le sens de "complètement précisé" mais je sens que vos connaissances vont éclairer ma lanterne

    Merci pour votre temps et le partage de votre expérience/connaissance !

    EDIT: Connaitriez-vous un logiciel ou autre aide pour la création du dictionnaire? J'utilise actuellement un tableur simple et je me demande s'il n'y a pas plus approprié. (NB: Je travail sur Mac OS et Windows, voir linux au besoin, donc aucun soucis de plateforme)

  17. #17
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Fabien,


    Citation Envoyé par Torrent007007 Voir le message
    J'ai malheureusement un gros contre temps pour les 2 semaines qui arrivent (encore ) et je ne sais pas encore si j'aurais du temps à consacrer à mon projet. En espérant vous apporter un premier jet de mon dictionnaire, aussi clair et complet que possible, d'ici là.
    Ne vous inquiétez pas, au Relationland la notion de temps est très élastique, un jour, un mois, un an, en gros c’est pareil ! On n'est pas à Paris, prenez votre temps


    Citation Envoyé par Torrent007007 Voir le message
    Citation Envoyé par fsmrel Voir le message
    Une question à cent sous. A propos de votre citation :
    « Les identifiants sont complètement précisés ».
    Avez-vous une idée de ce que veut dire l’auteur ?
    Non je dois bien avouer ne pas avoir saisis le sens de "complètement précisé" mais je sens que vos connaissances vont éclairer ma lanterne
    Autrement dit, l’auteur a été concis mais il eut été meilleur qu’il fût plus précis...

    Je suppose qu’il a voulu dire que chaque entité-type doit être dotée d’un identifiant. J’en profite pour poser la question : « Mais qu’est-ce qu’un identifiant ? » et parler un peu de cette chose-là, sous forme de piqûre de rappel.

    Prenons le cas de l’ouvrage de référence des merisiens « H. Tardieu, A. Rochfeld, R. Colletti. La Méthode MERISE, Tome 1. Principes et outils. (Les Éditions d'organisation. 4ème impression, septembre 1989)) », dans lequel le terme usuel entité est remplacé par celui d’individu. Je cite :

    Chaque occurrence d’un individu-type doit être unique et donc distinguable de toutes les autres occurrences de cet individu-type. Un individu est identifié à l’aide d’une propriété particulière appelée identifiant.

    Cette propriété particulière doit respecter ce que j’appelle la règle d’or , c'est-à-dire qu’elle doit être non significative et invariante, voyez à ce sujet ce qu’a écrit le grand Yves Tabourier.

    Avec le temps, les caractéristiques de l’identifiant ont été complétées. Par exemple, le document de référence Journée Afcet, 15 novembre 1990 use de certains qualificatifs : composé, principal, relatif, total. Je cite :



    J’observe que l’identifiant alternatif n’est pas mentionné, ce qui est dommage car on parle souvent. Quoi qu’il en soit, allons-y pour deux cas intéressants, l’identifiant alternatif et l’identifiant relatif.


    Identifiant alternatif

    Considérez le tableau périodique des éléments. Ce tableau permet de représenter les éléments et on y voit que l’élément de numéro atomique 6 a pour nom Carbone, pour symbole C, pour masse atomique 12, etc. Aucun autre élément n’a les caractéristiques de cet élément : numéro atomique, nom, symbole, masse atomique, etc. sont autant de propriétés devant être gouvernées par la règle d’unicité. En conséquence ces propriétés sont toutes candidates à jouer le rôle d’identifiant (ainsi, on peut parler d'identifiants candidats).

    Pendant longtemps les merisiens ont énoncé qu’il y avait un identifiant et c’est tout, mais aujourd’hui, l’identifiant alternatif a droit de cité. Pour reprendre mon exemple du Siren des entreprises, l’identifiant de l’entité-type ENTREPRISE sera {EntrepriseId}, non significatif, invariant (non modifiable), fourni par le système (auto-incrémentation en SQL par exemple), inaccessible pour l’utilisateur qui n’est intéressé que par le numéro de Siren de l’entreprise, lequel est astreint à se conformer à la règle d’unicité et fait donc l’objet d’un identifiant supplémentaire dit alternatif (qui est peut-être le pendant de ce que le document Afcet appelle par contraste identifiant principal mais en en donnant une définition malheureusement pour le moins obscure...)


    Identifiant relatif

    J’ai souvent traité de l’identification relative, par exemple ici. En l’occurrence c’était il y a 6 ans, et j’ai pu depuis compléter la liste des motifs m’incitant à utiliser l’identification relative, qui permet la plupart du temps de résoudre de façon simple et sûre les problèmes posés par les contraintes de chemin.

    Cela dit, la définition donnée par le document Afcet fait entrer les relations (associations) comme éléments des identifiants : à mon sens c’est hétérogène, j’aurais préféré qu’on y parlât d’héritage par une entité-type faible (ligne de devis, voyez à nouveau ici) de l’identifiant d’une entité-type plus forte (devis).

    Je fais observer que dans certains cas on n’a pas à « préciser » d’identifiant pour une entité-type.

    C’est le cas lorsque l’entité-type est un sous-type, en effet elle hérite alors de l’identifiant du surtype. Ci-dessous, les entités-types (sous-types) MACHINE_VIRTUELLE et SERVEUR_PHYSIQUE n’ont pas d’identifiant propre, elles héritent de celui de l’entité-type (surtype) HOST (mais au besoin, elles peuvent bien sûr être dotées d'identifiants alternatifs) :



    C’est encore le cas lorsqu'on est obligé de déguiser une association en entité-type, parce que cette association doit légitimement être mise en relation (comme ici ou ), ce que Merise n’admet pas (ne me demandez pas pourquoi, en tout cas cette contrainte a disparu dans OOM (Orientation Objet dans Merise), voyez ici).


    Citation Envoyé par Torrent007007 Voir le message
    Connaitriez-vous un logiciel ou autre aide pour la création du dictionnaire?
    Je n’en connais pas. Mais peut-être est-ce pour vous l’occasion de concevoir et développer ce logiciel ?


    Bon courage pour les quinze jours qui arrivent...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour François,

    Vos précisions sur la gestion et l'étude des identifiants me confortent dans ma réflexion les concernants. Votre exemple sur les n° SIREN des entreprises est assez parlant quand à l'importance du choix de l'identifiant. J'ai également lu les autres threads que vous avez joint à votre message et y ai appris quelques méthodologies et raisonnements à utiliser .

    Hier soir en rentrant, j'ai continué à chercher quelques documentations sur le dictionnaire de donnée et je suis tombé sur ce tutoriel. J'en ai commencé la lecture et il résume bien les étapes de conception d'une DB. Pour un concepteur débutant et amateur comme moi, ce document est un parfait fil rouge à garder sous le bras .

    J'ai également rencontré une difficulté hier soir en essayant de continuer mon DD. Je sens que ma question est trivial mais n'arrive pas cependant à y trouvé une réponse limpide. Mon problème se trouve d'ailleurs dans la partie que vous avez utilisé comme exemple ci-dessus :


    (ne vous inquitez pas ; je ne pars pas du MCD que nous avions fait pour en sortir un DD mais il illustre ici parfaitement mon problème )

    J'ai suis actuellement en train de définir les propriété d'un serveur physique et d'un serveur virtuel, qui sont pour l'instant d'un point de vue conceptuel 2 entités à part entière (pour rappel, ces 2 serveurs ont des paramètres communs et des paramètres spécifiques). Cependant, tous 2 ont un hostname (par exemple) et je me retrouve avec ces 2 données : 'hostname_physique' et 'hostname_virtuel'.
    Est-ce la bonne méthode d'analyse? Cette récurrence, bien que non identique, désigne pourtant le même type d'informations. Mes lacunes en conception me bloquent sur la résolution de ce problème alors que ma logique me dit bien que je ne regarde pas les choses avec la bonne approche.

    Citation Envoyé par fsmrel Voir le message
    Je n’en connais pas. Mais peut-être est-ce pour vous l’occasion de concevoir et développer ce logiciel ?
    Euh... On va déjà essayer d'en finir avec ce projet-ci hein ?!?!

    Citation Envoyé par fsmrel Voir le message
    Bon courage pour les quinze jours qui arrivent...
    J-18 avant les congés, je tiens le bon bout... et j'aurais plus de temps de m'occuper de mon projet pendant ces congés

  19. #19
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Fabien,


    Citation Envoyé par Torrent007007 Voir le message
    J'ai suis actuellement en train de définir les propriétés d'un serveur physique et d'un serveur virtuel, qui sont pour l'instant d'un point de vue conceptuel 2 entités à part entière (pour rappel, ces 2 serveurs ont des paramètres communs et des paramètres spécifiques). Cependant, tous 2 ont un hostname (par exemple) et je me retrouve avec ces 2 données : 'hostname_physique' et 'hostname_virtuel'.
    Est-ce la bonne méthode d'analyse? Cette récurrence, bien que non identique, désigne pourtant le même type d'informations.
    Un serveur physique est un serveur et un serveur virtuel ont quelque chose en commun : ce sont des serveurs. Donc l’idée est de factoriser ce qu’ils ont en commun : on procède alors à une généralisation, avec la mise en œuvre d’un surtype SERVEUR (ou HOST, peu importe, mais pour ma part je francise volontiers) où sont regroupées les propriétés communes aux serveurs, quel que soit leur type, et la mise en œuvre de sous-types SERVEUR_PHYSIQUE et SERVEUR_VIRTUEL pour héberger les propriétés spécifiques.

    Je change d’exemple et prends le cas de la gestion des personnes.

    Supposons que dans le système d’information de la société Dubicobit (l’« univers du discours » comme on dit), on modélise les relations qu’entretient Dubicobit avec ses clients et ses fournisseurs. Ces tiers ont des propriétés communes par exemple le numéro Siret, la raison sociale. En revanche Dubicobit fait des conditions tarifaires sous forme de montants à ses clients (ce qui est sans objet pour ses fournisseurs) tandis que ses fournisseurs lui proposent des taux de remise (ce qui est sans objet pour ses clients).

    Par ailleurs, pour ces tiers on gère par exemple des adresses (de domiciliation, facturation, livraison, ...) : un tiers a au moins une adresse et au plus plusieurs, et une adresse de tiers appartient soit à un client, soit à un fournisseur.


    Un début de modélisation, à la façon des années soixante-dix et quatre-vingts :



    Aujourd’hui, on doit avoir le réflexe d’en passer sans hésiter par le processus de généralisation, car les clients et les fournisseurs sont des tiers, ils partagent un certains nombre propriétés voire d’associations avec d’autres entités-types (adresses des tiers par exemple).

    Factorisons donc :



    On remarquera que les entités-types CLIENT et FOURNISSEUR sont des sous-types du surtype TIERS. Les seuls attributs qu’elles conservent en propre correspondent à des propriétés spécifiques. Fonctionnellement, les sous-types héritent des propriétés du surtype.

    Lecture :
    — Un client est un tiers ;

    — Un fournisseur est un tiers.
    A noter que cette fois-ci on peut remplacer les cardinalités 0,1 (pattes de connexion sur l’entité-type ADRESSE_TIERS, cf. Figure 1) par une cardinalité 1,1 : on bétonne.

    Lors de la dérivation du MCD en MLD, on aura la structure tabulaire suivante, dans laquelle l’attribut TiersId est hérité par les tables CLIENT et FOURNISSEUR :



    Clairement, au lieu d’avoir à gérer deux fois les numéros Siret, les raisons sociales, les adresses des tiers, on ne l’a plus à faire qu’une fois. Au niveau SQL, pour tout savoir sur le client Volfoni, on procèdera par jointure naturelle :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT x.TiersId, NoSiret, RaisonSociale, CondTarifaire
    FROM   TIERS AS x JOIN CLIENT AS y ON x.TiersId = y.TiersId
    WHERE  RaisonSociale = 'Volfoni' ;

    Pour recomposer l’équivalent de l’entité-type CLIENT de la figure 1, on définit une table virtuelle (vue) :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE VIEW CLIENTV (TiersId, NoSiret, RaisonSociale, CondTarifaire)
    AS
        SELECT x.TiersId, NoSiret, RaisonSociale, CondTarifaire
        FROM   TIERS AS x JOIN CLIENT AS y ON x.TiersId = y.TiersId
    ;

    Pour tout savoir sur le client Volfoni :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TiersId, NoSiret, RaisonSociale, CondTarifaire
    FROM   CLIENTV 
    WHERE  RaisonSociale = 'Volfoni' ;
    Etc.


    Je vous suggère de procéder à la généralisation des serveurs physiques et virtuels, et de montrer ce que cela donne, tout en signalant les points qui pourraient vous tracasser. A noter qu’on peut évidemment établir des relations entre sous-types, par exemple pour modéliser l’hébergement des serveurs virtuels par des serveurs physiques.

    Bon, allez, c'est du peu au jus...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

Discussions similaires

  1. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  2. Réponses: 2
    Dernier message: 13/06/2002, 14h50
  3. Documentation DirectX dans C++Builder 3
    Par srvremi dans le forum DirectX
    Réponses: 1
    Dernier message: 26/04/2002, 09h59
  4. Bibliothèques et documentation
    Par Anonymous dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/04/2002, 12h24
  5. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo