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

PowerAMC Discussion :

contraintes inclusion exclusion totalité


Sujet :

PowerAMC

  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 25
    Par défaut contraintes inclusion exclusion totalité
    ms fsmrel
    j'ai pas bien compris comment j'exprime les contraintes (inclusion,exlusion,totalité...) sous PowerAMC 12 et sous MySql 5.0.
    est ce que tu peut me donné quel que exemples ou des cours.
    merci d'avance

  2. #2
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 211
    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 211
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Avec Power AMC, concernant la spécialisation des entités-types.

    1) Pour définir un héritage entre Personne et Individu et entre Personne et Entreprise, utiliser l’icône qui va bien.




    2) Pour une contrainte d’exclusion, cocher « Enfants mutuellement exclusifs » et/ou pour une contrainte de totalité, cocher « Complet ».




    Avec MySQL :

    Voyez l’instruction CREATE TRIGGER. Comme je n’utilise pas MySQL, le mieux est que vous exploriez le forum ad-hoc.
    (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.

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 25
    Par défaut
    merci bcp
    ça va m aidé
    il me reste l'unicité entre trois entités et l'inclusion entre deux relation mai concerne un entité prici.
    et est ce que tu peut me donné quelque' explication des trigger et leur intérêts.

  4. #4
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 211
    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 211
    Billets dans le blog
    16
    Par défaut
    Bonjour,


    il me reste l'unicité entre trois entités[...]
    Propos ambigu. Veuillez préciser votre problème, à l’aide d’un exemple concret pour illustrer.

    [...]inclusion entre deux relation mai concerne un entité prici.
    Le mieux est que vous fournissiez là aussi un exemple.


    [...]explication des trigger et leur intérêts
    Pour faire court, disons qu’un trigger est un programme composé de requêtes SQL et dont la rédaction est à votre charge. Ce programme est attaché à une table en particulier et automatiquement activé dès qu’une opération de mise à jour de la table a lieu (INSERT. UPDATE, DELETE). Vous n’avez pas à exécuter vous-même ce programme, car c’est bien le SGBD qui s’en charge tout seul.

    On peut se servir d’un trigger pour s’assurer que chaque mise à jour d’une table respecte les contraintes que l’on a définies, et en conséquence autoriser ou interdire la mise à jour. Le SGBD présente l’état de la table avant mise à jour (old) et après (new) vous permettant d’analyser la situation et de décider de la suite des opérations.
    Voyez la FAQ MySQL Les nouveautés de MySQL 5.0, paragraphe B « Les triggers ».
    (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 averti
    Inscrit en
    Mars 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 25
    Par défaut
    c'est l'inclusion
    Nom : inclusion.JPG
Affichages : 985
Taille : 14,2 Ko

    c'est pour l'unicité
    Nom : unicité.JPG
Affichages : 854
Taille : 13,4 Ko

    merci

  6. #6
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 25
    Par défaut
    Ajout d’une contrainte d’unicité:
    Il est possible (facultatif) de donner un nom à la contrainte.
    Cette contrainte peut s’appliquer à plusieurs attributs.
    Si les valeurs déjà présentes dans la relation sont en contradiction avec cette
    nouvelle contrainte, alors cette dernière ne sera pas appliquée et une erreur
    sera générée.

    Syntaxe :
    ALTER TABLE relation ADD UNIQUE [contrainte] (attributs)
    Exemple pour interdire tout doublon sur l’attribut fax de la relation Personnes :
    ALTER TABLE Personnes ADD UNIQUE u_fax (fax)
    Autre exemple fictif :
    ALTER TABLE Moto ADD UNIQUE u_coul_vitre (couleur,vitre)

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


    Concernant votre message du 26/03/2009, 15h18.


    Cas de l’inclusion

    Votre diagramme exprime en fait une double inclusion, car les associations-types Association_1 et Association_2 jouent manifestement un rôle symétrique : tout élément de l’entité-type Entite_3 qui participe à l’association-type Association_1 doit aussi participer à l’association-type Association_2, et tout élément de l’entité-type Entite_3 qui participe à l’association-type Association_2 doit aussi participer à l’association-type Association_1. Les ensembles d’éléments qui participent à chacune des deux relations doivent être inclus l’un dans l’autre, c'est-à-dire être égaux. On appelle cela une contrainte d’égalité (=, ou « simultanéité », S).

    En passant au niveau SQL, vous serez obligé de définir un trigger pour garantir le respect de la contrainte.

    Cas de l’unicité

    Vous utilisez la notation Merise. Considérons que les attributs qui sont les identifiants des entités-types Entite_1, Entite_2 et Entite_3 ont respectivement pour nom : Id_1, Id_2, Id_3. Au niveau du MLD, pour Power AMC, la clé primaire de la table Association_2 est
    {Id_1, Id_2, Id_3}.
    En effet, Power AMC ne sait pas ce qu’est une contrainte d’unicité (CIF en Merise).
    Pour éviter un trigger, au niveau du MLD vous modifierez manuellement la composition de cette clé primaire en la réduisant à
    {Id_1, Id_3}.
    Vous pouvez aussi remplacer la notation Merise par la notation Entité/Relation et régler directement le problème au niveau du MCD :

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

  8. #8
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 25
    Par défaut
    merci beaucoup
    c'était gentil de ta part.

    Pour l'unicité j'avais 1 autre idée mais c'était presque la même.
    J'ai fait une contrainte unique pour les deux identifiants de l'unicité.

Discussions similaires

  1. Contraintes d'exclusion / totalité / inclusion
    Par Sandriiine dans le forum PowerAMC
    Réponses: 2
    Dernier message: 24/07/2009, 13h10
  2. Réponses: 2
    Dernier message: 27/02/2007, 13h50
  3. Comment modeliser contrainte inclusion?
    Par djsbens dans le forum Schéma
    Réponses: 4
    Dernier message: 13/02/2006, 07h21
  4. Trigger inclusion / exclusion
    Par huhuhtml dans le forum Développement
    Réponses: 5
    Dernier message: 26/01/2006, 23h17
  5. Inclusion/exclusion de fichiers/répertoires
    Par GLDavid dans le forum Linux
    Réponses: 17
    Dernier message: 10/11/2005, 16h17

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