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

Modélisation Discussion :

passage de diagramme de classe vers base de donnée access


Sujet :

Modélisation

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 28
    Points : 33
    Points
    33
    Par défaut passage de diagramme de classe vers base de donnée access
    je suis entraîne de réaliser un application C# et je modélise le diagramme de classe avec StarUml mais je n'arrive pas trouver comment créer une base de donnée Access à partir le diagramme de classe.?

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


    Est-ce que StarUml sait générer des CREATE TABLE à partir du diagramme de classes ? Si oui, montrez le résultat, on verra ce que l’on peut en faire avec Access.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 28
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir abboudi,


    Est-ce que StarUml sait générer des CREATE TABLE à partir du diagramme de classes ? Si oui, montrez le résultat, on verra ce que l’on peut en faire avec Access.
    non juste je cherche à l'outils qui me permettre de générer la base de donnée automatiquement.d'ailleurs je trouve cette options dans powerDesigner mais dans StarUML je trouve pas comment le faire?

  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 091
    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 091
    Points : 31 508
    Points
    31 508
    Billets dans le blog
    16
    Par défaut
    Bonsoir abboudi,


    J'ignore tout de StarUml et de ses possiblités...

    Pourriez-vous afficher votre diagramme de classes ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 28
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir abboudi,


    J'ignore tout de StarUml et de ses possiblités...

    Pourriez-vous afficher votre diagramme de classes ?
    Nom : Sans titre.png
Affichages : 16793
Taille : 25,2 Ko

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 091
    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 091
    Points : 31 508
    Points
    31 508
    Billets dans le blog
    16
    Par défaut Du diagramme de classes au code SQL, via MySql Workbench
    Bonsoir abboudi,


    Vu le nombre peu élevé de classes, donc de tables au stade SQL, pour produire le script de création de celles-ci (instruction CREATE TABLE), le plus simple est de partir à zéro, avec MySQL Workbench. On va créer le diagramme qui va bien, puis on demandera à l’outil de produire le script SQL.

    Une question : selon votre diagramme de classes, une commande donnée peut être passée par plusieurs clients, ce qui est pour le moins inhabituel... Est-ce bien ce que vous voulez modéliser ?

    Exemple avec MySQL Workbench (j’ai supposé qu’une commande ne concerne qu’un seul client) :





    Script SQL produit par MySQL Workbench

    
    -- -----------------------------------------------------
    -- Table CATEGORIE
    -- -----------------------------------------------------
    CREATE TABLE CATEGORIE 
    (
      id_categorie                INT                   NOT NULL,
      nom_categorie               VARCHAR(32)           NOT NULL,
      CONSTRAINT CATEGORIE_PK PRIMARY KEY (id_categorie)
     ) ;
    
    -- -----------------------------------------------------
    -- Table STOCK
    -- -----------------------------------------------------
    CREATE TABLE STOCK 
    (
      id_stock                    INT                   NOT NULL,
      quantite                    INT                   NOT NULL,
      disponibilite               INT                   NOT NULL,
      date_entree                 DATE                  NOT NULL,
      CONSTRAINT STOCK_PK PRIMARY KEY (id_stock)
     ) ;
    
    -- -----------------------------------------------------
    -- Table PRODUIT
    -- -----------------------------------------------------
    CREATE TABLE PRODUIT 
    (
      id_produit                  INT                   NOT NULL,
      reference_P                 VARCHAR(16)           NOT NULL,
      libelle                     VARCHAR(32)           NOT NULL,
      date_production             DATE                  NOT NULL,
      prix                        INT                   NOT NULL,
      id_stock                    INT                   NOT NULL,
      id_categorie                INT                   NOT NULL,
      CONSTRAINT PRODUIT_PK PRIMARY KEY (id_produit),
      CONSTRAINT PRODUIT_AK UNIQUE (reference_P),
      CONSTRAINT PRODUIT_STOCK_FK 
          FOREIGN KEY (id_stock) REFERENCES STOCK (id_stock),
      CONSTRAINT PRODUIT_CATEGORIE_FK
        FOREIGN KEY (id_categorie) REFERENCES CATEGORIE (id_categorie)
    );
    
    -- -----------------------------------------------------
    -- Table PERSONNE
    -- -----------------------------------------------------
    CREATE TABLE PERSONNE 
    (
      id_personne                 INT                   NOT NULL,
      adr_courriel                VARCHAR(32)           NOT NULL,
      mot_passe                   VARCHAR(32)           NOT NULL,
      nom_personne                VARCHAR(32)           NOT NULL,
      prenom_personne             VARCHAR(32)           NOT NULL,
      telephone                   VARCHAR(20)           NOT NULL,
      ville                       VARCHAR(32)           NOT NULL,
      CONSTRAINT PERSONNE_PK PRIMARY KEY (id_personne),
      CONSTRAINT PERSONNE_AK UNIQUE (adr_courriel)
    ) ;
    
    -- -----------------------------------------------------
    -- Table PERSONNE_CATEGORIE
    -- -----------------------------------------------------
    CREATE TABLE PERSONNE_CATEGORIE 
    (
       id_personne                 INT                   NOT NULL,
       id_categorie                INT                   NOT NULL,
      CONSTRAINT PERSONNE_CATEGORIE_PK PRIMARY KEY (id_personne, id_categorie),
      CONSTRAINT PERSONNE_CATEGORIE_PERSONNE_FK
        FOREIGN KEY (id_personne) REFERENCES PERSONNE (id_personne)
        ON DELETE CASCADE,
      CONSTRAINT PERSONNE_CATEGORIE_CATEGORIE_FK
        FOREIGN KEY (id_categorie)
        REFERENCES CATEGORIE (id_categorie)
    ) ;
    
    -- -----------------------------------------------------
    -- Table GESTIONNAIRE
    -- -----------------------------------------------------
    CREATE TABLE GESTIONNAIRE 
    (
       id_gestionnaire             INT                   NOT NULL,
      CONSTRAINT GESTIONNAIRE_PK PRIMARY KEY (id_gestionnaire),
      CONSTRAINT GESTIONNAIRE_PERSONNE_FK
        FOREIGN KEY (id_gestionnaire)
        REFERENCES PERSONNE (id_personne)
        ON DELETE CASCADE
    ) ;
    
    -- -----------------------------------------------------
    -- Table ADMIN
    -- -----------------------------------------------------
    CREATE TABLE ADMIN 
    (
       id_admin                    INT                   NOT NULL,
       attribute1                  VARCHAR(32)           NOT NULL,
      CONSTRAINT ADMIN_PK PRIMARY KEY (id_admin),
      CONSTRAINT ADMIN_PERSONNE_FK
        FOREIGN KEY (id_admin) REFERENCES PERSONNE (id_personne)
        ON DELETE CASCADE
    ) ;
    
    -- -----------------------------------------------------
    -- Table CLIENT
    -- -----------------------------------------------------
    CREATE TABLE CLIENT 
    (
       id_client                   INT                   NOT NULL,
      CONSTRAINT CLIENT_PK PRIMARY KEY (id_client),
      CONSTRAINT CLIENT_PERSONNE_FK
        FOREIGN KEY (id_client) REFERENCES PERSONNE (id_personne)
        ON DELETE CASCADE
     ) ;
    
    -- -----------------------------------------------------
    -- Table COMMANDE
    -- -----------------------------------------------------
    CREATE TABLE COMMANDE 
    (
      id_client                   INT                   NOT NULL,
      id_commande                 INT                   NOT NULL,
      reference_cmd               CHAR(10)              NOT NULL,
      date_cmd                    DATE                  NOT NULL,
      statut_cmd                  VARCHAR(8)            NOT NULL,
      CONSTRAINT COMMANDE_PK PRIMARY KEY (id_client, id_commande),
      CONSTRAINT COMMANDE_AK UNIQUE (reference_cmd),
      CONSTRAINT COMMANDE_CLIENT_FK
        FOREIGN KEY (id_client) REFERENCES CLIENT (id_client)
    ) ;
    
    -- -----------------------------------------------------
    -- Table LIGNE_COMMANDE
    -- -----------------------------------------------------
    CREATE TABLE LIGNE_COMMANDE 
    (
      id_client                   INT                   NOT NULL,
      id_commande                 INT                   NOT NULL,
      id_produit                  INT                   NOT NULL,
      quantite                    INT                   NOT NULL,
      CONSTRAINT LIGNE_COMMANDE_PK PRIMARY KEY (id_client, id_commande, id_produit),
      CONSTRAINT LIGNE_COMMANDE_COMMANDE_FK
        FOREIGN KEY (id_client, id_commande) REFERENCES COMMANDE (id_client, id_commande)
        ON DELETE CASCADE,
       CONSTRAINT LIGNE_COMMANDE_PRODUIT_FK
        FOREIGN KEY (id_produit) REFERENCES PRODUIT (id_produit)
    ) ;
    
    

    On peut définir une table virtuelle des clients, donc manipulable comme une table de base (plus ou moins, selon le SGBD) :

    
    CREATE VIEW CLIENT_V (id_client, adr_courriel, mot_passe, nom_personne, prenom_personne, telephone, ville)
    AS 
    SELECT  id_client, adr_courriel, mot_passe, nom_personne, prenom_personne, telephone, ville
    FROM    PERSONNE JOIN CLIENT ON PERSONNE.id_personne = CLIENT.id_client
    ;
    
    

    A ce propos, quel est (sera) votre SGBD ?


    Même principe de définition de vues pour les gestionnaires et les admins.


    A noter la contrainte à prévoir entre la disponibilité du stock (table STOCK) et les quantités commandées (table LIGNE_COMMANDE).


    A noter la clé alternative {adr_courriel} définie pour la table PERSONNE : dans l’hypothèse où deux personnes ne peuvent pas avoir la même adresse de courriel.

    Même principe pour la référence du produit (table PRODUIT) et pour la référence de la commande (table COMMANDE).

Discussions similaires

  1. Connexion vers base de données access (mdb)
    Par kochi56 dans le forum Designer
    Réponses: 2
    Dernier message: 19/02/2014, 08h51
  2. [Wamp] Wamp vers base de données ACCESS
    Par Debutant10 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 27/11/2011, 19h52
  3. Réponses: 0
    Dernier message: 25/07/2011, 17h49
  4. Réponses: 5
    Dernier message: 03/08/2009, 15h40
  5. Fix 32 vers base de données access
    Par soninkara dans le forum Automation
    Réponses: 1
    Dernier message: 02/09/2008, 20h18

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