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 :

Gestion de stock [MCD]


Sujet :

Schéma

  1. #41
    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
    C# et Java sont tous deux de bons langages (en fait, y en a-t-il de mauvais ??? tout dépend je pense de la façon de les utiliser).

    Je connais plutôt mal java donc je vais me contenter de parler pour C#. C# est préféré à son petit frère VB.NET par les pures et dures. Cependant, il n'y à ma connaissance rien que l'on puisse faire en C# qu'on ne pourrait faire en VB. VB est plus verbeux et nécessite de se faite d'écrire un peu plus. Mais je pense que si vous êtes débutant, ce n'est pas plus mal. Cela vous permettra d'aborder plus facilement le langage (pour peu que vous parliez un anglais de base minimum).
    (pour info, je suis programmeur .NET et nous programmons en VB chez nous, ie. les magasins Galeria Inno en Belgique).
    De plus, en VB.NET, il y a La BIBLE du débutant qui se trouve sur developez à cette adresse.

    C'est un excellent cours fort complet et truffé d'exemple.
    Kropernic

  2. #42
    Futur Membre du Club
    Homme Profil pro
    Elève ingénieur
    Inscrit en
    Mars 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Elève ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 50
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup Krop, vous m'avez énormément aidé
    En attendant l'intervention de fsmrel, je vais commencer mon auto-formation en VB.NET .

    Cordialement

  3. #43
    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
    Totalement par hasard, je viens de tomber là-dessus. Je pense que cela vous intéressera et pourra beaucoup vous aider dans votre utilisation de SQL SERVER.
    Kropernic

  4. #44
    Futur Membre du Club
    Homme Profil pro
    Elève ingénieur
    Inscrit en
    Mars 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Elève ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 50
    Points : 8
    Points
    8
    Par défaut
    Merciiiii encore une fois Krop : )
    Apparemment j'ai du travail à faire

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


    J’ai pas mal de choses à dire, je vous ai laissés tomber mais je me suis occupé entre autres d’apporteurs commissionnés, avec des problèmes d’historisation intéressants...

    Il faudrait quand même que vous proposiez un MCD à jour, voire un MLD façon MySQL Workbench (vu les délais serrés...), sinon vous risquez de partir dans le mur. Vous en êtes déjà à plus de 40 messages en rafale alors que j’en suis resté au #23, mais je vais à mon rythme.


    Citation Envoyé par RZinaoui Voir le message
    Concernant les stocks.

    Pour la quantité stock, vous l'avez mis comme attribut de l'association stock qui est plusieurs à plusieurs. Pour passer au MLD, cette association sera transformée en une table ayant pour identifiant {code_article,date} donc on sera amené à saisir des informations dans cette table, ce qui n'est pas désiré car on cherche à récupérer cette information (la quantité actuelle en stock, dans un niveau donné ) sans avoir recours à remplir ces champs !
    L’association de plusieurs à plusieurs concernant la date est dans le style Merise 1re génération, mais en Merise 2 on peut préférer l’utilisation de l’identification relative. Dans le style PowerAMC, la cardinalité 1,1 est mise entre parenthèses :




    MLD produit par l’AGL :



    Je rappelle en passant que vous parliez de gestion d'historique. Quoi qu’il en soit, le fait qu’on soit « amené à saisir des informations dans cette table » n’est pas la conséquence du passage du MCD au MLD, mais tout simplement de la présence dans le MCD de l’attribut StockQuantite, et qu’il soit hébergé par une entité-type ou une association, peu importe. Je rappelle à cette occasion qu’on modélise le Quoi mais pas le Comment : saisir la quantité, remplir un « champ » (terme impropre dans les bases de données relationnelles, réservé aux SGBD prérelationnels) n’est pas nécessairement une opération manuelle et peut être sous-traité au SGBD au moyen d’un snapshot (instantané). Si ST représente une expression relationnelle calculant le stock à partir des entrées et des sorties, et si l’on veut par exemple déclencher le calcul une fois par heure, on écrit en Tutorial D :

    Code D : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    VAR STOCK_DU_JOUR SNAPSHOT (ST)
        REFRESH EVERY HOUR ;

    Dans le cas de SQL, ça commence à devenir scabreux, car en général le terme utilisé n’est snapshot mais Materialized View (vue matérialisée), ce qui est un oxymore puisque par définition une vue est par définition strictement virtuelle. Qui plus est, chaque SGBD SQL voit les choses à sa façon, ça devient le parcours du combattant pour ne pas dire l’horreur.

    Exemple du paramétrage de REFRESH avec ORACLE (ne comptez pas sur moi pour détailler !) :




    Vous pouvez préférer mettre en oeuvre un trigger pour répercuter instantanément dans la table STOCK chaque entrée/sortie d’article. Vous pouvez aussi ne pas définir de table STOCK et calculer à la demande de l’utilisateur : vous aurez certainement à faire du réglage (tuning) si la performance n’est pas au rendez-vous lors des travaux de prototypage.

    En tout cas, si je vous suis, dans tous les cas, vous partez du principe que le stock que vous calculez est conforme à la réalité : prévoyez quand même les anomalies et exceptions (articles cassés, perdus, etc.), il faut que l’utilisateur puisse noter les différences si elles existent entre le stock théorique et ce qu’il a réellement dans ses rayons.


    De la dénormalisation

    En regardant rapidement vos échanges, je constate que vous parlez de dénormalisation : il faudrait plutôt parler d'optimisation (même si je n'apprécie pas cet anglicisme), je reviendrai là-dessus si vous n'avez pas encore échangé mille messages entre temps.

    Quant à la normalisation et aux dépendances fonctionnelles, il va falloir que je vous reprenne en main...
    (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. #46
    Futur Membre du Club
    Homme Profil pro
    Elève ingénieur
    Inscrit en
    Mars 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Elève ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 50
    Points : 8
    Points
    8
    Par défaut
    Bonjour Monsieur, content de vous revoir de nouveau


    Citation Envoyé par fsmrel Voir le message
    Il faudrait quand même que vous proposiez un MCD à jour, voire un MLD façon MySQL Workbench (vu les délais serrés...), sinon vous risquez de partir dans le mur. Vous en êtes déjà à plus de 40 messages en rafale alors que j’en suis resté au #23, mais je vais à mon rythme.
    La durée d'exploitation de mon PowerMCD a expiré .. je vais devoir soit télécharger un autre logiciel soit chercher un serial pour l'activer :/


    Citation Envoyé par fsmrel Voir le message
    L’association de plusieurs à plusieurs concernant la date est dans le style Merise 1re génération, mais en Merise 2 on peut préférer l’utilisation de l’identification relative.
    Vous avez parlé de deux choses dont j'ignore complètement le sens : Merise 2 et l’identification relative.
    A vrai dire je ne sais pas si j'avais bien choisit, relativement à ma spécialité qui est le génie industriel et logistique, le bon endroit pour partager mon sujet car mes connaissances dans ce domaine (Conception des systèmes d'info et bases de données) ne sont pas tellement approfondies par rapport les vôtres et j'essaye toujours de faire des efforts pour comprendre ce que vous dites afin de pouvoir suivre avec vous. Excusez-moi ce retard ..


    Citation Envoyé par fsmrel Voir le message
    Je rappelle à cette occasion qu’on modélise le Quoi mais pas le Comment : saisir la quantité n’est pas nécessairement une opération manuelle et peut être sous-traité au SGBD au moyen d’un snapshot (instantané).
    Compris
    Il faut donc trouver l'expression du stock_actuel
    Si on veut chercher cette expression, on sait que le stock initial est une constante donc le stock_actuel varie en fonction des deux autres paramètres:stock_actuel=f(entrées, sorties). Je vais essayer de trouver l'expression et la partager avec vous ...


    Citation Envoyé par fsmrel Voir le message
    Dans le cas de SQL, ça commence à devenir scabreux, car en général le terme utilisé n’est snapshot mais Materialized View (vue matérialisée), ce qui est un oxymore puisque par définition une vue est par définition strictement virtuelle. Qui plus est, chaque SGBD SQL voit les choses à sa façon, ça devient le parcours du combattant pour ne pas dire l’horreur.
    Mr Krop m'a parlé hier de la vue mais il n'a pas précisé qu'il s'agit d'une vue matérialisée, c'est quoi la différence ?

    Citation Envoyé par fsmrel Voir le message
    Exemple du paramétrage de REFRESH avec ORACLE (ne comptez pas sur moi pour détailler !) :
    Vous parlez ici d'ORACLE, est-ce que je suis censé travailler avec ça ( qui est payant biensur ) ou non car j'ai commencé une auto-formation en sql server

    Citation Envoyé par fsmrel Voir le message
    Vous pouvez préférer mettre en oeuvre un trigger pour répercuter instantanément dans la table STOCK chaque entrée/sortie d’article.
    C'est l'idée dont parlait Krop ..
    Citation Envoyé par fsmrel Voir le message
    Vous pouvez aussi ne pas définir de table STOCK et calculer à la demande de l’utilisateur : vous aurez certainement à faire du réglage (tuning) si la performance n’est pas au rendez-vous lors des travaux de prototypage.
    Celle-ci c'est la mienne, mais vous et krop dites la même chose qu'il y'a risque de performance sauf que vous avez ajouté une solution pour ce risque: tuning (Encore un terme dont j'ignore le sens).

    P.S: Dites moi s'il vous plait monsieur fsmrel, si je demande une prolongation du délai de livraison de mon application, est-ce que je pourrais terminer ce grand sujet vu les contraintes de savoir que j'ai rencontrées pour l'instant ?


    Citation Envoyé par fsmrel Voir le message
    En tout cas, si je vous suis, dans tous les cas, vous partez du principe que le stock que vous calculez est conforme à la réalité : prévoyez quand même les anomalies et exceptions (articles cassés, perdus, etc.), il faut que l’utilisateur puisse noter les différences si elles existent entre le stock théorique et ce qu’il a réellement dans ses rayons.
    Oui bien entendu, il y'a toujours un contrôle pour comparer entre la réalité et ce que leur affiche leur système d'information qui présente des problèmes dont j'essaye de trouver la solution en développant cette application. Pour avoir l'égalité on va devoir tenir compte des articles perdus, cassés, etc



    Citation Envoyé par fsmrel Voir le message
    Quant à la normalisation et aux dépendances fonctionnelles, il va falloir que je vous reprenne en main...
    A mon avis, il y'a ce problème de bagage car je vois que ce que j'ai appris n'est pas conforme à 100% à ce que vous savez concernant la dépendance fonctionnelle ...
    Pour vous mettre au courant de ce qui s'est passé entre moi et Krop lors de votre absence au reste de la discussion, je le résume dans les points suivants:
    • On a discuté son MCD surtout les entités FOR, CON, UTI et JAU.
    • On a parlé de la solution qui va nous permettre de récupérer le stock_actul: La vue et les triggers
    • On a parlé aussi de la "dénormalisation" (optimisation) et la dépendance fonctionnelle

  7. #47
    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
    Citation Envoyé par RZinaoui Voir le message
    La durée d'exploitation de mon PowerMCD a expiré .. je vais devoir soit télécharger un autre logiciel soit chercher un serial pour l'activer :/
    J'ai le même problème que vous. C'est pourquoi j'utilise à présent MySqlWorkBench qui est certe beaucoup moins complet que PowerAMC (j'imagine que PowerMCD en est un dérivé) mais qui présente l'avantage d'être gratuit. Par contre, lui ne fait pas de MCD. Il faudra modéliser directement à l'étape du MLD.
    Citation Envoyé par RZinaoui Voir le message
    Vous avez parlé de deux choses dont j'ignore complètement le sens : Merise 2 et l’identification relative.
    A vrai dire je ne sais pas si j'avais bien choisit, relativement à ma spécialité qui est le génie industriel et logistique, le bon endroit pour partager mon sujet car mes connaissances dans ce domaine (Conception des systèmes d'info et bases de données) ne sont pas tellement approfondies par rapport les vôtres et j'essaye toujours de faire des efforts pour comprendre ce que vous dites afin de pouvoir suivre avec vous. Excusez-moi ce retard ..
    Merise 2 est simplement la 2e version de Merise (1). C'est une mise à jour de la norme (est-ce le bon terme) Merise.

    L'identification relative, c'est l'identification d'un objet relativement à un objet tiers dont il dépend.

    Voici un exemple avec les entités-type FACTURE et LIGNE_DE_FACTURE dont voici un MCD.
    Règle de gestion : Une FACTURE regroupe une ou plusieurs LIGNE_DE_FACTURE et une LIGNE_DE_FACTURE est regroupée par une FACTURE.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FACTURE--1,N--regrouper--(1,1)--LIGNE_DE_FACTURE
    L'identification relative est représentée ici par la mise entre parenthèses de la cardinalité à la façon de PowerAMC.

    Au niveau des tables du MLD, nous aurions une table T_FACTURE_FAC tout ce qu'il y a de plus classique dont la clef primaire serait la colonne FAC_ID de type entier auto incrémenté et une table T_LIGNE_DE_FACTURE_LDF dont la clef primaire serait composée de deux colonnes, à savoir FAC_ID de type entier et LDF_ID de type entier (ou un dérivé plus petit) où FAC_ID sert en même temps de clef étrangère et référence la colonne du même nom dans la table FAC et la colonne LDF_ID serait auto-incrémentée mais recommencerait à 1 pour chaque facture.

    De cette manière, chaque ligne de facture est identifiée relativement par rapport à la fature à laquelle elle se rapporte.
    Citation Envoyé par RZinaoui Voir le message
    Vous parlez ici d'ORACLE, est-ce que je suis censé travailler avec ça ( qui est payant biensur ) ou non car j'ai commencé une auto-formation en sql server
    SQL SERVER (express j'imagine) fera très bien l'affaire je pense. Attention cependant que cette version est limitée à 10GB (à vérifier si cette limitation s'applique à l'instance ou à chaque DB).
    Citation Envoyé par RZinaoui Voir le message
    Celle-ci c'est la mienne, mais vous et krop dites la même chose qu'il y'a risque de performance sauf que vous avez ajouté une solution pour ce risque: tuning (Encore un terme dont j'ignore le sens).
    C'était mon idée de base également . Mais il ne faut pas avoir 40 ans d'expérience dans le domaine pour se rendre compte que devoir parcourir l'historique complet de l'article pour connaître son stock actuel va prendre de plus en temps à la longue. Combien de temps, je l'ignore. C'est pourquoi je parlais de faire des tests, d'ajouter des indexes si possible et de retester. Le tuning est l'action, par exemple, d'ajouter des indexes pour améliorer l'efficacité des requêtes.
    Le fait que le temps nécessaire pour parcourir cet historique est un fait que je pense certain. Par contre, il n'est pas dit que le temps supplémentaire sera pénalisant. Il se peut que ce laps de temps ne soit pas mesurable pour le commun des mortels et se compte en fraction de seconde. C'est pourquoi, je le répète, il faudrait faire des tests.
    Citation Envoyé par RZinaoui Voir le message
    Oui bien entendu, il y'a toujours un contrôle pour comparer entre la réalité et ce que leur affiche leur système d'information qui présente des problèmes dont j'essaye de trouver la solution en développant cette application. Pour avoir l'égalité on va devoir tenir compte des articles perdus, cassés, etc
    Il faut alors prévoir les entités (MCD) nécessaires pour tenir compte de cela.
    Kropernic

  8. #48
    Futur Membre du Club
    Homme Profil pro
    Elève ingénieur
    Inscrit en
    Mars 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Elève ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 50
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    J'ai le même problème que vous. C'est pourquoi j'utilise à présent MySqlWorkBench qui est certe beaucoup moins complet que PowerAMC (j'imagine que PowerMCD en est un dérivé) mais qui présente l'avantage d'être gratuit. Par contre, lui ne fait pas de MCD. Il faudra modéliser directement à l'étape du MLD.
    On va demander à fsmrel de nous dire le nom du logiciel avec lequel il travaille : )

    Citation Envoyé par Kropernic Voir le message
    Merise 2 est simplement la 2e version de Merise (1). C'est une mise à jour de la norme (est-ce le bon terme) Merise.
    Les règles de normalisation ont resté les mêmes ?

    Citation Envoyé par Kropernic Voir le message
    L'identification relative, c'est l'identification d'un objet relativement à un objet tiers dont il dépend.

    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FACTURE--1,N--regrouper--(1,1)--LIGNE_DE_FACTURE
    De cette manière, chaque ligne de facture est identifiée relativement par rapport à la fature à laquelle elle se rapporte.
    Je croyais autre chose
    On parle donc de la relativité d'une clé étrangère par rapport à une clé primaire qu'on trouve en MLD.

    Citation Envoyé par Kropernic Voir le message
    SQL SERVER (express j'imagine) fera très bien l'affaire je pense. Attention cependant que cette version est limitée à 10GB (à vérifier si cette limitation s'applique à l'instance ou à chaque DB).
    Si c'est 10GB pour toute la base de données je serai foutu

    Citation Envoyé par Kropernic Voir le message
    C'était mon idée de base également . C'est pourquoi je parlais de faire des tests, d'ajouter des indexes si possible et de retester. Le tuning est l'action, par exemple, d'ajouter des indexes pour améliorer l'efficacité des requêtes.
    Je vais expliquer ce que j'ai compris:
    Je vais devoir créer tout d'abord ma base de données à partir du MCD qu'on a réalisé, après je vais remplir mes tables (MLD). Enfin, je dois trouver une requête qui va m'envoyer le stock_actuel en parcourant tous les enregistrements, c'est ça ? Et pour l'histoire des index, que faut-il faire au juste pour améliorer cette performance ?


    Citation Envoyé par Kropernic Voir le message
    Il faut alors prévoir les entités (MCD) nécessaires pour tenir compte de cela.
    Je crois qu'on va avoir besoin d'une table qui sera liée aux entités niveau et article , n'est ce pas ?
    C'est le plus grand MCD que je n'ai jamais vu --"

  9. #49
    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
    Citation Envoyé par RZinaoui Voir le message
    Les règles de normalisation ont resté les mêmes ?
    Je crois qu'il ne faut pas confondre normalisation et méthode de conception. Merise est méthode de conception (ce n'est p-e pas le terme exacte mais ça décrit bien son utilité) au même titre que UML. Après, que l'on choisisse de concevoir le conceptuel en UML ou en Merise, les règles de normalisation reste les mêmes. Pour résumé, en merise on parle d'entité-type et en UML, on parle de classe (c'est en très gros et caricaturé mais c'est presque ça).
    Citation Envoyé par RZinaoui Voir le message
    Je croyais autre chose
    On parle donc de la relativité d'une clé étrangère par rapport à une clé primaire qu'on trouve en MLD.
    Euh non... Je vais faire un schéma pour être sûr qu'il n'y a pas de malentendu.
    ...
    Le voici : Nom : identification_relative.png
Affichages : 1196
Taille : 9,5 Ko
    J'ai tâché de faire simple mais pas trop (Albert si tu me lis...).

    On y voit donc une table pour les factures, une table pour les lignes de facture et une table pour les produits.
    N.B. : Dans la table FAC la colonne CLI_ID fait normalement office de clef étrangère vers la table des clients que je n'ai pas représentée ici.

    Pour la facture dont l'id est le 821 créée aujourd'hui pour le client dont l'id est 987, nous aurons les lignes suivantes :

    • Dans la table FAC :
      • FAC_ID = 821
      • FAC_DATE = 20130718
      • CLI_ID = 987

    • Dans la table LDF :
      • une ligne avec :
        • FAC_ID = 821
        • LDF_ID = 1
        • PRO_ID = 4876
        • LDF_QUANTITE = 2

      • une autre ligne avec :
        • FAC_ID = 821
        • LDF_ID = 2
        • PRO_ID = 65468
        • LDF_QUANTITE = 5

      • une autre ligne avec :
        • FAC_ID = 821
        • LDF_ID = 3
        • PRO_ID = 46967
        • LDF_QUANTITE = 1


    • Dans la table PRO :
      • Je vous laisse le soin d'inventer les produits vendus


    On voit ici que le client 821 a acheté 2 unités du produit d'id 4876, 5 unités du produit d'id 65468 et 1 unité du produit d'id 46967.
    Et on voit bien que dans la table LDF, chaque ligne de facture est identifiée de manière unique car LDF_ID change à chaque ligne MAIS uniquement relativement à la colonne FAC_ID. Pour la facture portant l'id 822, nous aurons aussi LDF_ID = 1 (et 2, 3, ... n où n est le nombre de produits différents présents sur la facture 822).


    J'espère avoir dissipé tout possible malentendu.

    Citation Envoyé par RZinaoui Voir le message
    Si c'est 10GB pour toute la base de données je serai foutu
    Je vous confirme qu'il s'agit bien de 10GB pour
    Citation Envoyé par RZinaoui Voir le message
    la base de données.
    Je vais expliquer ce que j'ai compris:
    Je vais devoir créer tout d'abord ma base de données à partir du MCD qu'on a réalisé, après je vais remplir mes tables (MLD). Enfin, je dois trouver une requête qui va m'envoyer le stock_actuel en parcourant tous les enregistrements, c'est ça ? Et pour l'histoire des index, que faut-il faire au juste pour améliorer cette performance ?
    Pour l'histoire des indexes, chaque chose en son temps. Faites d'abord votre DB correctement avec toutes les relations nécessaires. Une fois que ce serait fait, il sera temps de s'attaquer aux indexes. A vos heures perdues, vous pouvez toujours lire cet article et/ou celui-là.
    Citation Envoyé par RZinaoui Voir le message
    Je crois qu'on va avoir besoin d'une table qui sera liée aux entités niveau et article , n'est ce pas ?
    Reliée aux articles, je suis d'accord mais aux niveaux, je ne vois pas pourquoi. Je ne dis pas que c'est faux ! Je ne comprends pas l'utilité.
    Citation Envoyé par RZinaoui Voir le message
    C'est le plus grand MCD que je n'ai jamais vu --"
    Et pourtant, il est encore petit ;-).
    Kropernic

  10. #50
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 000
    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 000
    Points : 30 895
    Points
    30 895
    Billets dans le blog
    16
    Par défaut
    Pendant que j’ai une minute...


    Citation Envoyé par RZinaoui Voir le message
    C'est le plus grand MCD que je n'ai jamais vu
    J’espère que vous ne vous évanouirez pas quand on vous présentera un MCD de 1500 entités-types !


    Citation Envoyé par RZinaoui Voir le message
    Si c'est 10GB pour toute la base de données je serai foutu
    L’avez-vous démontré ? Pour le moment on en est au stade de l’émotion, de la subjectivité bien mauvaise conseillère... Commencez par estimer le besoin en octets pour les tables que vous jugez les plus volumineuses.

    Prenons l’exemple de la table DEMANDE_ARTICLE par référence au MLD (provisoire) ci-dessous :



    Les données de chaque ligne de la table DEMANDE_ARTICLE représente 12 octets (3 attributs de 4 octets chacun) :

    Supposons que l’on fasse des demandes pour 1000 articles par jour en moyenne, on consomme donc 12000 octets/jour, c'est-à-dire moins de 5 MO par an (en supposant que Dubicobit travaille 365 jours par an). Si l’on tient compte des besoins représentés par les index, arrondissons à la louche à 10 MO. En fonction du SGBD et de ses possibilités, les chiffres peuvent varier. Ainsi, avec DB2 les besoins pour la table montent à 7,5 MO, à cela j’ajoute 6 MO pour un index de clé {DemandeId, ArticleId} et 6 autres MO pour un index de clé {ArticleId, DemandeId} : au total la volumétrie est de l’ordre de 20 MO sur un an pour 1000 articles commandés par jour. Effectuez le calcul à votre tour en fonction du nombre prévu par Dubicobit de demandes d'articles.

    Ainsi, pour chaque table vous estimerez son coût de stockage : je doute qu’au final votre base de données dépasse les 10 GO...

    A votre calculette !
    (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. #51
    Futur Membre du Club
    Homme Profil pro
    Elève ingénieur
    Inscrit en
    Mars 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Elève ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 50
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    J’espère que vous ne vous évanouirez pas quand on vous présentera un MCD de 1500 entités-types !
    j'aurai besoin d'un écran Plasma pour ce MCD + quelques jours de planification pour placer les entités au bon endroit .. C'est trop !


    Citation Envoyé par fsmrel Voir le message
    Commencez par estimer le besoin en octets pour les tables que vous jugez les plus volumineuses.
    la table la plus volumineuse est celle contenant les articles.
    Les fournisseurs, les engins, les entreprises et les utilisateurs ne présentent pas une quantité considérable de données. C'est très petit par rapport aux nombres des articles.
    Pour la table DEMANDE_ARTICLE, on fait NORMALEMENT une demande d'achat chaque 15 jours (C'est le rôle de l'approvisionnement) mais pour les cas imprévisibles ou urgents on peut demander quotidiennement.
    Pour la quantité demandée des articles de poids (pompe, vérin, transfo, radiateur, filtre, tubes ...) j'estime que c'est compris entre 3 et 7.


    Citation Envoyé par fsmrel Voir le message
    Les données de chaque ligne de la table DEMANDE_ARTICLE représente 12 octets (3 attributs de 4 octets chacun)
    Puisque l'on a 4 octets pour chaque attribut, c'est suffisant je crois : )


    Citation Envoyé par fsmrel Voir le message
    Ainsi, pour chaque table vous estimerez son coût de stockage : je doute qu’au final votre base de données dépasse les 10 GO...
    A votre calculette !
    Vous m'avez assuré, d'après les statistiques que vous m'avez données et ce que je viens de dire, je crois 10 GB EST LARGEMENT suffisant.

    P.S: Pour le MCD que vous venez de tracer, je vais y ajouter ce qu'il faut et le mettre ici pour pour pouvoir se mettre d'accord sur la version finale.
    J'attend toujours vos remarques et ce que vous avez à rédiger dont vous avez parleé dans l'un de vos anciens messages.

    Merci monsieur ^^

  12. #52
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 000
    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 000
    Points : 30 895
    Points
    30 895
    Billets dans le blog
    16
    Par défaut
    Concernant la table ARTICLE, pour la structure ci-dessous, pour 100 000 articles, la volumétrie avec DB2 est de l'ordre de 5,2 MO, ce à quoi on ajoute 1,2 MO pour l'index de clé {ArticleId} et 1,7 MO pour l'index de clé {ArticleCode}.


    Il va falloir en acheter des articles pour occuper les 10 GO...



    Citation Envoyé par RZinaoui Voir le message
    Pour la CIF on l'a jamais vu sauf en ACCESS mais, je crois que vous avez donné une autre méthode pour remédier à ce problème: pour un article et une demande donné il n’y a qu’un fournisseur.
    La CIF n’est pas un concept ACCESS. La CIF (contrainte d'intégrité fonctionnelle) est un concept merisien depuis les années soixante-dix, alors qu’ACCESS est né dans les années quatre-vingt-dix et reste muet à son propos. Je n’ai pas donné d’autre méthode :
    En Merise on résout le problème de la contrainte ARTICLE X DEMANDE -> FOURNISSEUR par le biais de la CIF (encore appelée DF (dépendance fonctionnelle) en Merise 2). PowerAMC ne connaît pas, mais WinDesign connaît parfaitement.
    J’ai utilisé la représentation suivante :



    Équivalente à celle-ci, plus dans le style de la FAQ Merise :


    Exemple proposé par WinDesign :

    MCD



    MLD



    Citation Envoyé par Kropernic Voir le message
    Autant la proposition de Tabourier, je la connais et la prêche comme un fervent défenseur, autant le théorème de Heath, je sais à quoi il sert mais de là à le connaître au sens mathématique, il y a un pas que je ne franchirais pas.
    Maintenant, il fort possible que je l'applique de manière naturelle sans savoir qu'il s'agisse en fait de cela ^^
    Pour une approche mathématique du théorème de Heath, je vous renvoie à Ullman (Principles of DATABASE SYSTEMS. Second Edition. (Computer Science Press. 1982).). L’application de ce théorème est quand même simple et ce qui est important c’est de s’en servir pour normaliser, c'est-à-dire éliminer certaines redondances et des anomalies de mise à jour.

    Supposons par exemple que la table DEMANDE ait la structure suivante :
    {DemandeId, FournisseurId, UtilisateurId, UtilisateurNom, DemandeDate}
    Et qu’elle soit munie des dépendances fonctionnelles :
    {DemandeId -> FournisseurId}
    {DemandeId -> UtilisateurId}
    {DemandeId -> UtilisateurNom}
    {DemandeId -> DemandeDate}
    {UtilisateurId -> UtilisateurNom}

    {DemandeId} détermine fonctionnellement chaque attribut de la table : c’est donc une clé.

    On observera que la BCNF est violée car il existe la DF {UtilisateurId -> UtilisateurNom} dont le déterminant {UtilisateurId} n’est pas clé, on applique donc le théorème de Heath à cette DF pour décomposer la table en :

    R1 {UtilisateurId -> UtilisateurNom}

    R2 {DemandeId, FournisseurId, UtilisateurId, DemandeDate}

    Au besoin, par jointure de R1 et R2 on retrouve la table DEMANDE peccamineuse.


    Citation Envoyé par RZinaoui Voir le message
    vous insistez trop sur le coté mathématique des choses (Algèbre relationnelle).
    Vous oubliez que la normalisation est à considérer comme une branche des mathématiques appliquées... Cela dit, l’algèbre relationnelle n’est pas partie prenante dans les concepts structurels auxquels nous nous intéressons dans cette discussion : l’algèbre relationnelle est une collection non limitée d’opérateurs qui nous permettent d’utiliser des relations en tant qu’opérandes pour produire de nouvelles relations. L’opérateur JOIN nous permet par exemple de produire une relation par jointure de deux relations : par le mariage d’un papa relation et d’une maman relation, naît un bébé relation de même nature que ses parents et capable à son tour de procréer (principe de clôture algébrique, algebraic closure) :

    Citation Envoyé par RZinaoui Voir le message
    Je vais brièvement rappeler les règles 2 et 4 de la normalisation qu'on a vues:

    N°2: On dit que A est en dépendance fonctionnelle de B si pour toutes valeurs de B il existe une et une seule valeur de A.
    Il faut que vous complétiez votre définition : Que sont A et B ici ? Il est nécessaire de préciser exactement ce dont on parle. A cette occasion voici la définition de la dépendance fonctionnelle dans son cadre naturel, c'est-à-dire la théorie relationnelle :

    Une dépendance fonctionnelle (DF) est une expression de la forme A B dans laquelle le déterminant A et le dépendant B sont des sous-ensembles (au sens de la théorie des ensembles) de l’en-tête d’une relvar R donnée ; cette expression se lit « B dépend fonctionnellement de A » ou « A détermine fonctionnellement B ». La relvar R satisfait à la dépendance fonctionnelle A B si pour chaque valeur légale de R, lorsque deux tuples ont même valeur pour A alors ils ont aussi même valeur pour B.

    Exemple :

    Partons de l’entité-type ARTICLE :



    Et considérons la relvar ARTICLE qui en est dérivée :
    {ArticleId INTEGER, ArticleCode CHAR, ArticleDesignation CHAR, StockInitialQte INTEGER, StockInitialDate DATE}

    Cette relvar satisfait les dépendances fonctionnelles :

    {ArticleId} {ArticleId},
    {ArticleId} {ArticleCode},
    {ArticleId} {ArticleDesignation},
    {ArticleId} {StockInitialQte},
    {ArticleId} {StockInitialDate},

    {ArticleCode} {ArticleId},
    {ArticleCode} {ArticleCode},
    {ArticleCode} {ArticleDesignation},
    {ArticleCode} {StockInitialQte},
    {ArticleCode} {StockInitialDate},

    {ArticleId, ArticleDesignation} {ArticleDesignation},
    {ArticleDesignation} {ArticleDesignation},
    {ArticleId} {}
    {} {}

    Et de très nombreuses autres !

    Notez l’emploi des accolades, car une DF est un ensemble au sens de la théorie des ensembles.

    Ce qui vaut pour les relvars vaut évidemment pour les tables SQL et pour les entités-types merisiennes (exception faite de celles qui sont identifiées relativement : voyez l'exemple des lignes de facture proposé par l'infatigable Krop : quand on remonte au niveau MCD, on doit constater que l'attribut FAC_ID ne fait pas partie de l'en-tête de l'entité-type LDF, un nombre élevé de DF ne peuvent donc pas être mises en évidence).

    Citation Envoyé par RZinaoui Voir le message
    La DF directe: les attributs d'une entité doivent dépendre directement de sa clé primaire et non par l’intermédiaire d'une autre propriété
    Faux. Le déterminant (la partie gauche de la DF, voyez ci-dessus) n’est pas nécessairement clé ! Voyez ici. En plus, si vous utilisez le terme « entité », alors il faut le remplacer par « type d’entité » (ou « entité-type ») : un type d’entité est à considérer comme une classe dont les instances sont des entités. Par ailleurs, soit vous utilisez le terme « attribut » soit le terme « propriété », mais pas deux à la fois. Attention à l’utilisation de l’expression « clé primaire » : si vous vous situez dans le contexte de Merise, alors il faut remplacer par « identifiant ».

    => La rigueur dans le vocabulaire est particulièrement importante dans la modélisation des bases de données.


    Citation Envoyé par RZinaoui Voir le message
    La DF complète: les attributs d'une entité doivent dépendre de tout l'identifiant et non une partie de cet identifiant.
    Cette fois-ci, vous vous placez clairement dans le contexte merisien puisque vous parlez d’identifiant. Même si entre nous, nous parlons des dépendances fonctionnelles, le problème est que les pères de Merise ne parlent pas des dépendances fonctionnelles entre attributs (ou plutôt propriétés) d’un type d’entité... Ils parlent seulement de DF entre types d’entités (revoyez la CIF ci-dessus).

    Là encore il y a beaucoup de mélange. Notamment, on ne doit pas limiter le déterminant à l’identifiant (ou la clé...)


    Citation Envoyé par RZinaoui Voir le message
    Les attributs d'une association doivent dépendre de tout l'identifiant de l'association (concaténation des identifiants des entités participant à l'association) et non une partie de cet identifiant.
    En Merise, une association n’a pas d’identifiant ! Voici ce qu’écrivent les pères de Merise (ils utilisent eux aussi le terme « normalisation » mais qui a seulement un vague rapport disons avec la normalisation en 2NF) :
    « La normalisation permet de s’assurer que chacune des propriétés ne peut être vérifiée sur un sous-ensemble de la collection de la relation-type »


    Citation Envoyé par RZinaoui Voir le message
    J'attends votre opinion à ce propos, est-ce qu'elles sont similaires ou non parce que je ne suis pas arrivé à bien assimiler ce qui est expliqué dans les liens que vous m'avez laissé.
    Hélas ! Les définitions que vous donnez sont incomplètes, non cohérentes, fantaisistes, voire fantaisistes, fausses... Dites-moi ce que vous n’avez pas compris, qu’on essaie de mettre la lumière...


    @Les lions :

    Plus généralement, pourriez-vous reformuler les questions quant aux points qui vous tracassent, car vous allez plus vite que la musique, il y a beaucoup de choses éparpillées dans la discussion et je ne suis pas chaud pour tout relire...
    (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.

  13. #53
    Futur Membre du Club
    Homme Profil pro
    Elève ingénieur
    Inscrit en
    Mars 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Elève ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 50
    Points : 8
    Points
    8
    Par défaut
    Bonjour,
    Excusez-moi ce retard en réponse, j'avais un problème avec mon chargeur de PC.
    Avant qu'il soit tombé en panne, j'ai commencé la relecture de cette discussion dès mon premier message jusqu'au dernier de fsmrel que je n'ai pas encore terminé son analyse puisqu'il est riche d'informations.
    L'avantage de cette relecture c'est que j'ai pu comprendre pas mal de choses qui me sont restées ambiguës et vagues. J'ai eu des réponses à 90% de mes questions et pour cette occasion, je remercie chaleureusement nos chers experts fsmrel et krop pour leur soutien. UN GRAND MERCI
    J'ai bien évidemment noté les points qui n'ont pas reçu de réponses ou bien ceux qui me dérangent encore. Je vais essayer de les poser encore une fois dans mon prochain message.
    Pour le MCD, je l'ai écrit sur papier car la durée d'exploitation de mon PowerAMC a expiré. Je vais également le poster dans mon prochain message.

    Cordialement : )

  14. #54
    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
    Citation Envoyé par RZinaoui Voir le message
    J'ai eu des réponses à 90% de mes questions et pour cette occasion, je remercie chaleureusement nos chers experts fsmrel et krop pour leur soutien. UN GRAND MERCI
    C'est avec plaisir que j'aide quand c'est dans mes cordes
    Citation Envoyé par RZinaoui Voir le message
    Pour le MCD, je l'ai écrit sur papier car la durée d'exploitation de mon PowerAMC a expiré. Je vais également le poster dans mon prochain message.
    Il est possible d'écrire au service commercial de sybase pour demander 15 jours de ralonge de la clef mais bon, en tant qu'étudiant en stage (si j'ai bien compris), ça m'étonnerait qu'ils vous l'accorde.
    Vous pouvez utiliser MySqlWorkBench qui est gratuit. La seule chose "ennuyante" (et encore pas vraiment), c'est qu'on modélise directement à l'étape du MLD (mais rien n'interdit d'avoir fait le MCD sur papier avant).
    Kropernic

  15. #55
    Futur Membre du Club
    Homme Profil pro
    Elève ingénieur
    Inscrit en
    Mars 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Elève ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 50
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Kropernic Voir le message


    Il est possible d'écrire au service commercial de sybase pour demander 15 jours de ralonge de la clef mais bon, en tant qu'étudiant en stage (si j'ai bien compris), ça m'étonnerait qu'ils vous l'accorde.
    Vous pouvez utiliser MySqlWorkBench qui est gratuit. La seule chose "ennuyante" (et encore pas vraiment), c'est qu'on modélise directement à l'étape du MLD (mais rien n'interdit d'avoir fait le MCD sur papier avant).
    Oui je suis un étudiant en période de stage ... Je vais essayer de contacter un ami qui avait le serial de ce logiciel. Au cas où il n'en dispose pas, je vais me contenter de le tracer sur papier. Pour finaliser mon MCD, il me reste encore de réfléchir aux entités FORME et CONVERSION pour trouver une combinaison entre elles et les entités article et livraison car elles sont très importantes.
    Pour les articles cassés, perdus, etc, j'ai eu une idée de les considérer comme des sorties en les affectant à un engin dont le nom est MAGASIN (càd que c'est le magasin qui les a utilisé si j'ose dire). Comme ça on peut les tenir en compte.
    Je vais relire le dernier message de fsmrel et essayer d'en retenir le maximum et par la suite écrire un message résumant tout ce que j'ai pu collecter de ce sujet pour que les gens qui nous suivent en silence et ceux qui vont le voir prochainement puissent bien assimiler la gestion de stock.

    MERCI INFINIMENT

  16. #56
    Futur Membre du Club
    Homme Profil pro
    Elève ingénieur
    Inscrit en
    Mars 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Elève ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 50
    Points : 8
    Points
    8
    Par défaut
    Bonjour,
    Je commence par remercier nos chers experts pour leur soutien et aide. J’avoue que leurs explications m’ont énormément développé coté conception des systèmes d’informations.

    Pour votre message M. fsmrel, vous avez dit :
    Citation Envoyé par fsmrel Voir le message
    Je n’ai pas donné d’autre méthode.
    D’après ce que j’ai retenu de vos explication et en se référant à une règle de gestion disant
    Citation Envoyé par fsmrel Voir le message
    Une demande fait donc mention d’un certain nombre d’articles, ainsi que d’une suggestion servant à déterminer le fournisseur à contacter.
    vous l’avez modélisé ainsi (1ère méthode)
    Cela veut dire que chaque demande d’achat contient un seul fournisseur ce qui n’est pas vrai sauf si on parle du même article. La règle de gestion correcte est la suivante :
    Chaque demande d’achat contient plusieurs fournisseurs et articles , à chaque article correspond un seul fournisseur
    c’est pourquoi j’ai utilisé une relation ternaire :
    Vous vous êtes intervenus en me répondant :
    Citation Envoyé par fsmrel Voir le message
    C'est-à-dire que la règle n’est plus celle que vous aviez formulée, selon laquelle une demande concerne un seul fournisseur, mais deviendrait celle-ci :
    Une demande peut concerner plusieurs fournisseurs.
    J’avais l’idée dans ma tête disant qu’une demande contient plusieurs fournisseurs à condition que chaque article soit demandé à un seul fournisseur (Je me suis trompé je crois dans les cardinalités liant l'association concerner et l'entité-type FOURNISSEUR). Pour pallier à cela, vous avez proposé la méthode (la 2éme d’après ce que j’ai compris au début) qui est la CIF :
    D’après l’exemple que vous avez donné du SINISTRE, ADVERSAIRE et COMPAGNIE, on peut nous aussi écrire :
    Pour une DEMANDE et un ARTICLE ==> 1 Fournisseur
    Si j’ai bien compris, la CIF est la seule méthode qui pourrait nous permettre de récupérer cette information.
    ـــــــــــــــــــــــــــــــــــــــــــــــــــــــ
    Concernant les règles de normalisations en MERISE, j’ai lu et relu plusieurs fois ce que vous avez écrit et j’ai essayé de le comparer avec ce qu’on a vu cette saison en matière de systèmes d’infos.
    EN GROS, c’est presque les mêmes règles qu’on a étudiées mais je ne savais pas comment les exprimer en fonction des mots que vous utilisez comme : en-tête, relvar, tuples, entité-type …
    Pour nous, on se contente de dire entité au lieu d’entité-type.
    Pour l’identifiant de l’association, c’était un abus de langage qu’on utilisait. Normalement c’est l’identifiant de la table en MLD qui était une association en MCD.
    A et B sont deux propriétés.
    L'identifiant c'est une propriété de l'entité-type. Pour une valeur de cet identifiant, toutes les autres propriétés de l'entité-type prennent une et une seule valeur.

    Citation Envoyé par fsmrel Voir le message
    La rigueur dans le vocabulaire est particulièrement importante dans la modélisation des bases de données.
    Je suis tout à fait d’accord avec toi M. François. Pour notre filière l’objectif c’était d’apprendre à modéliser une étude de cas en retenant les règles de normalisation et de conception d’une manière simple. J’admire votre méthode de modéliser en se basant sur la théorie des ensembles, bref en se basant sur les mathématiques que j’aime mais ce n’était pas l’objectif pédagogique visé pour nous. Cela ne veut pas dire que ce que l’on a appris est incorrecte, la preuve c’est quand j’applique ce que j’ai dans la mémoire sur ce que vous modélisez je le trouve bel et bien conforme à ce que je savais, mais cette matière n'occupait que 24 heures de la charge horaire pour nous. Quand je modélise une situation et que je commis des erreurs, ce sont dues à une absence de concentration ou mal compréhension de ma part en premier lieu et non au savoir appris à l’école …
    Je me contente de ça maintenant. Je révise calmement ce sujet et j’espère que rien ne m’échappera car c’est un sujet que j’ai bien aimé.

  17. #57
    Futur Membre du Club
    Homme Profil pro
    Elève ingénieur
    Inscrit en
    Mars 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Elève ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 50
    Points : 8
    Points
    8
    Par défaut
    Salut,
    je continue ce que j'ai commencé tout à l'heure.
    Pour l'entité-type FORME (qui est réflexive) je l'ai mis à la fois en relation ternaire avec les entités-types ARTICLE et UTILISATION et dont l'association contient une propriété appelée quantité_utilisée et en relation avec l'entité-type ARTICLE.
    L'entité-type FORME va contenir les formes sous lesquelles les articles entrent au stock et en passant au MLD, la table produite de la relation réflexive (on l'appellera CONVERSION) va contenir les équivalents de chaque FORME comme l'a montré Krop auparavant.
    La relation ternaire va nous permettre de savoir quelle utilisation a utilisé quel article avec quelle quantité sous quelle forme.
    Est-ce bien ça chers experts ?

    ــــــــــــــــــــــــــــــ
    Pour le stock_actuel, j'ai fait le tableau suivant:


    à chaque fois que l'on veut calculer le stock actuel n, on doit calculer celui de n-1 ... c'est à dire qu'on sera amené à parcourir toute l'historique pour connaitre le stock actuel par conséquent le temps de réponse sera augmenté !
    Krop vous avez dit:
    Citation Envoyé par Kropernic Voir le message
    En ajoutant la colonne ART_STOCK_COURANT à la table ART et en plaçant un trigger AFTER INSERT sur les tables ARL et JAU, nous pourrons automatiquement incrémenté ou décrémenté la valeur de ART_STOCK_COURANT. Alors, une simple requête de sélection tout à fait triviale nous renseignera sur l'état du stock d'un article.
    Est-ce qu'on peut faire ça dans ce cas ?

  18. #58
    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
    Perso, je veux un diagramme de vos relations ternaire...

    C'est bien dit mais je veux le voir sur "papier" (j'ai besoin de visualiser pour donner mon avis)
    Kropernic

  19. #59
    Futur Membre du Club
    Homme Profil pro
    Elève ingénieur
    Inscrit en
    Mars 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Elève ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 50
    Points : 8
    Points
    8
    Par défaut
    Voila la photo ci-joint, j'espère qu'elle soit claire et lisible.
    Images attachées Images attachées  

  20. #60
    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
    Faites moi le plaisir de télécharger mysqlworkbench...

    C'est gratuit et assez userfriendly... Au pire, ça vous prendra 1h pour le prendre en main et y a plein d'explication sur son utilisation sur DVP et ailleurs sur le net.

    Ou tout autre outil de modélisation qui vous plaira.
    Kropernic

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

Discussions similaires

  1. Gestion de stock : Formule en section Détail
    Par JeremieT dans le forum IHM
    Réponses: 4
    Dernier message: 16/12/2005, 17h02
  2. Gestion de stock CMUP après chaque entrée
    Par priest69 dans le forum Access
    Réponses: 9
    Dernier message: 13/12/2005, 10h03
  3. Gestion de stock - Prix Moyen Pondéré
    Par hugo69 dans le forum Access
    Réponses: 33
    Dernier message: 28/10/2005, 17h03
  4. Analyses du progiciel de gestion de stock COSWIN CS 5.2
    Par africanroseonlyone dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 13/10/2005, 15h01
  5. gestion des stocks
    Par gekondo dans le forum Access
    Réponses: 1
    Dernier message: 30/09/2005, 11h41

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