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 :

problème de matrice [MCD]


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut problème de matrice
    Bonjour,

    on tourne cela dans tous les sens mais impossible de s'arrêter sur une solution (matrice)
    une donnée peut être consommée par un/plusieurs service(s)
    une donnée ne peut être produite que par un seul service
    Un service dès qu'il est producteur d'une donnée, il est à la fois consommateur de cette donnée
    un service peut produire plusieurs données
    un service peut consommer une (minimum) ou plusieurs données
    un service ne peut être que consommateur

    Merci pour vos éclairages ...

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Mouette62,

    Déjà, il faudrait classer tes règles de gestion par couple de la même association, à savoir :
    une donnée peut être consommée par un/plusieurs service(s)
    un service peut consommer une (minimum) ou plusieurs données
    un service peut produire plusieurs données
    une donnée ne peut être produite que par un seul service
    Ensuite, voir les particularités :
    Un service dès qu'il est producteur d'une donnée, il est à la fois consommateur de cette donnée
    un service ne peut être que consommateur


    Nous voyons déjà une incohérence entre :
    un service ne peut être que consommateur
    et
    un service peut produire plusieurs données
    Un service dès qu'il est producteur d'une donnée, il est à la fois consommateur de cette donnée
    Un service peut-il producteur et consommateur ?

    Citation Envoyé par Mouette62
    Merci pour vos éclairages ...
    ==> j'allais le dire !...
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour Richard_35,


    merci déjà pour ta réponse.
    bon il est vrai que mes neuronnes ont un peu lâcher sur :
    un service ne peut être que consommateur
    il fallait lire
    un service peut n'être que consommateur
    Oui un service peut être producteur et consommateur à la fois.

    Je pensais à la notion d'héritage avec une contrainte Totalité (couverture+non disjonction) ?

    merci !

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    OK. Il ne reste donc plus que :
    une donnée peut être consommée par un/plusieurs service(s)
    un service peut consommer une (minimum) ou plusieurs données
    donnant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Service ---1,n---[Consommer]---0,n--- Donnee

    un service peut produire plusieurs données
    une donnée ne peut être produite que par un seul service
    donnant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Service -0,n---[Produire]----1,1- Donnee

    Le "cumul" donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Service -0,n---[Produire]----1,1- Donnee
       |                                |
       |                                |
       |                                |
       +-----1,n---[Consommer]---0,n----+

    Un service dès qu'il est producteur d'une donnée, il est à la fois consommateur de cette donnée
    donnant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Service -0,n---[Produire]----1,1- Donnee
       |               |                |
       |             (???)              |
       |               |                |
       +-----1,n---[Consommer]---0,n----+
    Je ne sais pas comment est codifiée cette contrainte. A la limite, un trigger fera l'affaire.

    Les tables sont relativement évidentes à déterminer à l'aide du pense-bête (sauf ton respect...) de CinePhil.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 036
    Points
    34 036
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Un service dès qu'il est producteur d'une donnée, il est à la fois consommateur de cette donnée
    donnant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Service -0,n---[Produire]----1,1- Donnee
       |               |                |
       |             (???)              |
       |               |                |
       +-----1,n---[Consommer]---0,n----+
    Je ne sais pas comment est codifiée cette contrainte. A la limite, un trigger fera l'affaire.
    On pourrait traduire la règle énoncée de cette façon :
    Un service peut consommer plusieurs données qu'il ne produit pas + plusieurs données qu'il produit.

    La modélisation des associations "Produire" et "Consommer" me semble suffisante pour ce qui est de la conception.

    Gardons cette nouvelle règle dans la musette et descendons dans la soute de la BDD pour mettre les mains dans le cambouis du SQL.

    Si nous avons besoin de savoir quels données un service S peut consommer, il suffit de faire une vue unissant les produits faisant partie de l'une ou l'autre des deux associations.
    Un truc de ce genre :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE VIEW v_donnees_consommables AS
    SELECT d1.dnn_id, -- colonnes de la table donnee
    	c.scd_id_service AS id_service
    FROM donnee d1
    INNER JOIN srv_consommer_donnee c ON c.scd_id_donnee = d.dnn_id
    UNION
    SELECT d2.dnn_id, -- mêmes colonnes de la table donnee
    	p.spd_id_service
    FROM donnee d1
    INNER JOIN srv_produire_donnee p ON p.spd_id_donnee = d.dnn_id

    Ensuite on interroge la vue pour un service donné pour savoir quels données il a le droit de consommer.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT dnn_id, -- colonnes de la table donnee
    FROM v_donnees_consommables
    WHERE id_service = -- identifiant du service choisi
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    salut

    merci pour ces éclaircissements.

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    merci pour vos réponses qui rejoignent notre modélisation (celle de Richard_35). J'ai suivi également les conseils de CinePhil et j'arrive à exploiter cette base. Merci à tous pour votre aide.

    J'aurais encore une petite question méthodo, comment représenteriez vous alors la matrice des DF en fonction des associations ?

    Merci !

    Franck

  8. #8
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Mouette62,

    Citation Envoyé par Mouette62
    comment représenteriez vous alors la matrice des DF en fonction des associations ?
    ==> c'est une question pour les "merisiens de naissance"... qui, sans doute, ne manqueront pas d'apporter cette précision.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  9. #9
    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 060
    Points
    2 060
    Par défaut
    Bonsoir à tous,

    Citation Envoyé par Richard_35 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Service -0,n---[Produire]----1,1- Donnee
       |               |                |
       |             (???)              |
       |               |                |
       +-----1,n---[Consommer]---0,n----+
    Je ne sais pas comment est codifiée cette contrainte. A la limite, un trigger fera l'affaire.
    Il s'agit d'une contrainte d'inclusion de Produire dans (ou vers) Consommer. Autre formulation de cette contrainte :
    Une donnée ne peut être produite par un service que si celui-ci la consomme.

    Au niveau de la base de données, toute insertion dans la table Donnée d'une donnée d1 produite par le service s1 devra s'accompagner d'une insertion dans la table Consommer du couple {d1, s1} (trigger ? assertion ?).
    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

  10. #10
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    merci pour vos réponses, cela m'a aiguillé vers une solution. Pour les triggers, impossible car inexistant sur Access ...

    Je pars donc sur une union.

    Encore merci !

  11. #11
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Mouette62 et JPhi33,

    JPhi33, merci pour les précisions .

    Mouette62, il me semble que les triggers existent sous Access à partir de 2007 ou 2010 : postes sur le forum Access, il y a des spécialistes !

    N'oublies pas le bouton .
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

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

Discussions similaires

  1. [Débutant] Problème création matrice de rigidité
    Par sylvain1001 dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/12/2008, 16h42
  2. [Fortran 77] Problème de matrice
    Par info! dans le forum Fortran
    Réponses: 23
    Dernier message: 14/12/2008, 22h44
  3. Divers problèmes de matrice passant de numpy a scipy
    Par thance dans le forum Calcul scientifique
    Réponses: 25
    Dernier message: 12/06/2007, 23h33
  4. Problème de matrice
    Par anasTelecoms dans le forum MATLAB
    Réponses: 1
    Dernier message: 27/05/2007, 10h55
  5. problème de matrice
    Par micfont999 dans le forum C++
    Réponses: 9
    Dernier message: 07/01/2007, 15h19

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