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 :

amélioration de mcd


Sujet :

Schéma

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 86
    Points : 52
    Points
    52
    Par défaut amélioration de mcd
    Bonjour,

    ca fait longtemps que je n'ai plus fait de merise, et j'aimerai savoir s'il est possible d'ameliorer le mcd joint, ou me dire ci celui ci est déjà correct..

    c'est pour intégrer dans une db une liste de cron (tache planifiée sous unix/linux). j'aimerai surtout mettre en avant le fait qu'un cron n'est défini que sur un seul serveur et n'appartient qu'à un seul utilisateur.

    merci d'avance pour vos réponses
    Images attachées Images attachées  

  2. #2
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Correct pour moi.
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Semble correct

  4. #4
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 057
    Points
    2 057
    Par défaut
    Pour moi aussi c'est correct mais (et vous allez tous dire que je pousse le bouchon un peu loin !) est-il possible qu'un CRON appartenant à un UTILISATEUR soit configuré sur un SERVEUR non utilisé par cet UTILISATEUR ?

    Par exemple : Cron1 appartient User1 et est configuré sur Serveur1. User1 doit-il obligatoirement être utilisateur de Serveur1 ?

    Si la réponse à cette 2e question est oui (donc réponse non à la 1ère question), alors il faut modéliser une contrainte exprimant la règle :

    Tout Utilisateur possédant un Cron configuré sur un Serveur doit être utilisateur de ce Serveur.

    Il s'agit d'une contrainte d'inclusion de "posséder" et "être configuré" dans "utiliser".

    Non seulement la modélisation de la contrainte enrichira la sémantique du MCD mais elle permettra également, en phase de réalisation, de ne pas oublier d'implémenter un trigger ou un contrôle par programme qui vérifiera la règle.


    JPhi33
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  5. #5
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 966
    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 : 7 966
    Points : 30 778
    Points
    30 778
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par JPhi33
    Non seulement la modélisation de la contrainte enrichira la sémantique du MCD mais elle permettra également, en phase de réalisation, de ne pas oublier d'implémenter un trigger ou un contrôle par programme qui vérifiera la règle.
    A ceci près qu’un trigger est déclenché instantanément (norme SQL), ce qui veut dire, au niveau des opérations, que le couple {user1, server1} devra d’abord être inséré dans la table Utiliser avant de l’être dans la table CRON (incidemment, ce trigger devra aussi contrôler les modifications des couples).

    Exemple SQL Server 2005
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TRIGGER mathieu57 ON CRON For Insert, Update
    As
        Select '' As 'Cron délinquant : ', x.*
        From   Inserted x 
        Where  Not Exists 
              (Select   *
               From     Utiliser y
               Where    x.id_Serveur = y.id_Serveur 
                 And    x.id_Utilisateur = y.id_Utilisateur 
              )    
    If @@Rowcount > 0
       Begin
            RAISERROR ('Et l''inclusion !',18,1)
       Return
    End

    Dans ces conditions, au trigger, on peut préférer une contrainte référentielle, plus simple de mise en oeuvre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Create Table CRON
    (    
         id_Cron         Integer       Not null
       , contenu_Cron    Varchar(64)   Not null
       , id_Serveur      Integer       Not null
       , id_Utilisateur  Integer       Not null
       , Primary Key (id_Cron)
       , Foreign Key (id_Serveur, id_Utilisateur) References Utiliser
    En observant que les contraintes référentielles liant CRON à SERVEUR d’une part, et à UTILISATEUR d’autre part, ont disparu car faisant double emploi (application du rasoir d’Ockham).


    Si l’on procède à une rétroconception (avec PowerAMC en l'occurrence), le MCD change de tête, mais ceci est une autre histoire...




    A mon tour, j'ai poussé le bouchon un peu loin. Pour revenir à la réalité, supposons que la règle d’inclusion ait été énoncée bien après la mise en production de la base de données : à moins de disposer d’un SGBD permettant de différer les contrôles d’intégrité, il est vraisemblable que le contrôle ne fera ni l’objet d’un trigger ni d’une contrainte référentielle, mais d’un développement ad-hoc, afin de ne pas avoir à casser la structure des programmes existants (de même qu'on ne touchera pas au MCD)...

    Certains SGBD (Oracle par exemple, mais pas SQL Server) permettent, conformément à la norme SQL, que soient différés les contrôles d’intégrité référentielle, faisant que l’on peut insérer un tuple dans la table CRON, avant d’insérer un tuple (de référence) dans la table Utiliser. C’est par exemple au Commit que les contrôles seront déclenchés. Pour plus d’information, se renseigner auprès du champion du SQL, SQLpro.

    Maintenant, j’ai peut-être mal interprété l’énoncé de la règle d’inclusion...

    En tout état de cause, bonne fête de Pâques
    (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.

  6. #6
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 057
    Points
    2 057
    Par défaut
    Bonjour,
    Citation Envoyé par fsmrel Voir le message
    Si l’on procède à une rétroconception (avec PowerAMC en l'occurrence), le MCD change de tête, mais ceci est une autre histoire...
    [...]
    Maintenant, j’ai peut-être mal interprété l’énoncé de la règle d’inclusion...
    L'interprétation de la contrainte d'inclusion est tout à fait juste. Et cette modélisation en est la conclusion logique.

    Mais pour y aboutir en restant dans le modèle EA, il faut utiliser des extensions de ce modèle que bien peu connaissent (et je le déplore). Ces nombreuses extensions ont été proposées par des "pointures" en la matière (Arnold ROCHFELD, José MOREJON, pour ne citer qu'eux). Bien qu'elles existent depuis 10 à 15 ans, elles n'ont jamais été prises en compte par AMC*DESIGNOR ni par PowerAMC (son successeur).

    Ici, on utilisera le concept de "Association d'association", qui aboutit à la modélisation suivante :
    Nom : Cron.gif
Affichages : 197
Taille : 6,7 Ko
    dont le MLD dérivé est strictement identique.


    JPhi33

    PS : Désolé pour ma méconnaissance des possibilités des triggers...
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  7. #7
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 966
    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 : 7 966
    Points : 30 778
    Points
    30 778
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par JPhi33 Voir le message
    ... Mais pour y aboutir en restant dans le modèle EA, il faut utiliser des extensions de ce modèle que bien peu connaissent (et je le déplore). Ces nombreuses extensions ont été proposées par des "pointures" en la matière (Arnold ROCHFELD, José MOREJON, pour ne citer qu'eux). Bien qu'elles existent depuis 10 à 15 ans, elles n'ont jamais été prises en compte par AMC*DESIGNOR ni par PowerAMC (son successeur).
    On ne peut effectivement que regretter que PowerAMC n'ait pas intégré ces extensions (que je ne connais pas de façon exhaustive, la preuve...)
    La représentation que vous proposez est élégante et illustre l’abandon de la règle "pas d’associations entre associations", abandon bien signalé par ailleurs dans OOM, en relation avec l’arbitraire de la dichotomie entre entités et associations (cf. Les Objets, page 217 dans le 2e tirage, 1998).
    Je trouve votre représentation sémantiquement comparable, mais plus simple et beaucoup plus légère que celle utilisée par exemple par Korth et Silberschatz, auxquels je fais référence pour la représentation ci-dessous, auteurs qui font référence à leur tour à l’article fondateur de John et Diane Smith (1977) "Database abstractions: Aggregation and Generalization".

    (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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MCD] Améliorer le MCD de réservation
    Par lez-j dans le forum Schéma
    Réponses: 4
    Dernier message: 03/01/2010, 18h56
  2. [MCD] améliorer mon mcd
    Par agnaou dans le forum Schéma
    Réponses: 1
    Dernier message: 16/05/2009, 01h48
  3. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 14h01
  4. [MCD] [BEST_PRACTICE] MCD d'une videotheque
    Par tonyskn dans le forum Schéma
    Réponses: 4
    Dernier message: 28/05/2003, 15h43
  5. [BEST_PRACTICE][Merise] MCD & gestion de date
    Par Seb7 dans le forum Schéma
    Réponses: 4
    Dernier message: 16/04/2003, 18h07

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