mocodo


Namemocodo JSON
Version 4.2.6 PyPI version JSON
download
home_pagehttps://www.mocodo.net/
SummaryModélisation Conceptuelle de Données. Nickel. Ni souris.
upload_time2024-03-25 12:52:02
maintainerNone
docs_urlNone
authorAristide Grange
requires_python<4.0.0,>=3.6.1
licenseMIT
keywords education relational database drawing erd svg merise
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            **Janvier 2024.** Mocodo [4.2](https://github.com/laowantong/mocodo/releases/tag/4.2.0) est maintenant disponible sous [Basthon](https://basthon.fr). Après [Mocodo _online_](https://www.mocodo.net), Basthon constitue donc une deuxième manière d'utiliser Mocodo sans rien installer. Elle a l'avantage de donner accès à l'intégralité des fonctionnalités du logiciel. Merci à son auteur, Romain Casati !

**Novembre 2023.** Mocodo [4.1](https://github.com/laowantong/mocodo/releases/tag/4.1.0) gère les bibliothèques de MCD. Un enseignant peut par exemple placer sur son propre serveur la correction d'un MCD sous un nom « secret », que le moment venu il communiquera oralement à ses étudiants pour leur permettre de le récupérer (soit sous Mocodo online, soit en ligne de commande).

**Octobre 2023.** Mocodo [4](https://github.com/laowantong/mocodo/releases/tag/4.0.4) introduit la gestion manuelle et automatique des contraintes d'optionalité et d'unicité, améliore les interfaces graphique et en ligne de commande, et ajoute un grand nombre de fonctionnalités : coloration syntaxique, liens de partage, exportation en UML, en notation de Chen et _crow's foot_, génération de MCD aléatoires, décomposition des associations et autres opérations de réécriture.

**Septembre 2022.** Mocodo 3 introduit l'[héritage](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#Héritage-(ou-spécialisation)), l'[agrégation](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#Agrégation-(ou-pseudo-entité)), les [calques](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#Héritage-(ou-spécialisation)), les [sorties PDF et PNG](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#Héritage-(ou-spécialisation)), etc. : [3.0](https://github.com/laowantong/mocodo/releases/tag/3.0), [3.1](https://github.com/laowantong/mocodo/releases/tag/3.1.0), [3.2](https://github.com/laowantong/mocodo/releases/tag/3.2.0).

------

[Documentation](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html) sur une seule page, incluant la sortie de [`mocodo --help`](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#mocodo---help) et l'[aide-mémoire des transformations](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#Aide-mémoire-des-arguments-de---transform).

----

![](logos/banner.svg)

Mocodo est un logiciel d'aide à l'enseignement et à l'apprentissage des [bases de données relationnelles](https://fr.wikipedia.org/wiki/Base_de_données_relationnelle).

- En entrée, il prend un [MCD](https://fr.wikipedia.org/wiki/Modèle_entité-association) (modèle conceptuel de données) décrit dans un langage dédié minimaliste.
- En sortie, il produit un diagramme entité-association et, à la demande, un [MLD](https://fr.wikipedia.org/wiki/Merise_(informatique)#MLD_:_modèle_logique_des_données) (schéma relationnel, sous forme graphique ou textuelle), un [DDL](https://fr.wikipedia.org/wiki/Langage_de_définition_de_données) (script SQL de création de la base), un [diagramme de classes UML](https://fr.wikipedia.org/wiki/Diagramme_de_classes), etc.
- En bonus, il est capable de réarranger automatiquement votre MCD de façon esthétique, et de lui appliquer des opérations de réécriture qui vont du mondain (typographie) à l'académique (décomposition d'associations), en passant par le merveilleux (inférence de types, génération d'exercices et d'exemples).

Vous pouvez utiliser Mocodo :

- sur son site web [Mocodo _online_](https://www.mocodo.net) ;
- dans un document [Jupyter Notebook](https://jupyter.org), avec ou [sans](https://basthon.fr) installation ;
- en ligne de commande ;
- comme une bibliothèque Python.

## Tracé du modèle conceptuel

Ci-dessous, un exemple d'utilisation sous Jupyter Notebook. L'appel du programme est en première ligne ; le texte-source proprement dit, lignes suivantes. En sortie, le diagramme conceptuel, égayé au passage par l'option `--colors` :

![png](doc/readme/ccp_mcd.png)

![svg](doc/readme/ccp_mcd.svg)

## Opérations de conversion

On peut récupérer ce texte-source avec `--input` pour lui appliquer diverses opérations. Ainsi, l'appel suivant génère et affiche son MLD, son diagramme relationnel et son DDL :

```
%mocodo --input ccp --transform mld diagram ddl --colors desert
```

---

- **CLIENT** (<ins>Réf. client</ins>, Nom, Prénom, Adresse)
- **COMMANDE** (<ins>Num. commande</ins>, Date, Montant, _#Réf. client_)
- **INCLURE** (<ins>_#Num. commande_</ins>, <ins>_#Réf. produit_</ins>, Quantité)
- **PRODUIT** (<ins>Réf. produit</ins>, Libellé, Prix unitaire)

---

![svg](doc/readme/ccp_mld.svg)

---

```sql
CREATE TABLE CLIENT (
  PRIMARY KEY (ref_client),
  ref_client VARCHAR(8) NOT NULL,
  nom VARCHAR(255),
  prenom VARCHAR(255),
  adresse VARCHAR(255)
);

CREATE TABLE COMMANDE (
  PRIMARY KEY (num_commande),
  num_commande VARCHAR(8) NOT NULL,
  date DATE,
  montant DECIMAL(10,2),
  ref_client VARCHAR(8) NOT NULL
);

CREATE TABLE INCLURE (
  PRIMARY KEY (num_commande, ref_produit),
  num_commande VARCHAR(8) NOT NULL,
  ref_produit VARCHAR(8) NOT NULL,
  quantite INTEGER
);

CREATE TABLE PRODUIT (
  PRIMARY KEY (ref_produit),
  ref_produit VARCHAR(8) NOT NULL,
  libelle VARCHAR(50),
  prix_unitaire DECIMAL(10,2)
);

ALTER TABLE COMMANDE ADD FOREIGN KEY (ref_client) REFERENCES CLIENT (ref_client);

ALTER TABLE INCLURE ADD FOREIGN KEY (ref_produit) REFERENCES PRODUIT (ref_produit);
ALTER TABLE INCLURE ADD FOREIGN KEY (num_commande) REFERENCES COMMANDE (num_commande);
```

Dans la suite, pour épargner la frappe, les options `--input` et `--transform` seront respectivement abrégées en `-i` et `-t`.

Les opérations de conversion ne se limitent pas forcément au schéma relationnel. En voici une qui extrait un dictionnaire des données, par défaut sous la forme d'un tableau Markdown à trois colonnes :

```
%mocodo -i ccp -t data_dict
```

---

| Entité ou association | Libellé de l'attribut | Type          |
|:----------------------|:----------------------|:--------------|
| CLIENT                | Adresse               | VARCHAR(255)  |
| "                     | Nom                   | VARCHAR(255)  |
| "                     | Prénom                | VARCHAR(255)  |
| "                     | Réf. client           | VARCHAR(8)    |
| COMMANDE              | Date                  | DATE          |
| "                     | Montant               | DECIMAL(10,2) |
| "                     | Num. commande         | VARCHAR(8)    |
| INCLURE               | Quantité              | INTEGER       |
| PRODUIT               | Libellé               | VARCHAR(50)   |
| "                     | Prix unitaire         | DECIMAL(10,2) |
| "                     | Réf. produit          | VARCHAR(8)    |

Une autre qui transcrit le MCD dans la notation _crow's foot_ (`crow`) pour [Mermaid](http://mermaid.js.org) (`mmd`) :

```
%mocodo -i ccp -t crow:mmd
```

---

```mmd
erDiagram
  CLIENT {
    VARCHAR(8) ref_client PK
    VARCHAR(255) nom
    VARCHAR(255) prenom
    VARCHAR(255) adresse
  }
  COMMANDE {
    VARCHAR(8) num_commande PK
    DATE date
    DECIMAL(10-2) montant
  }
  INCLURE {
    INTEGER quantite PK
  }
  PRODUIT {
    VARCHAR(8) ref_produit PK
    VARCHAR(50) libelle
    DECIMAL(10-2) prix_unitaire
  }
  CLIENT ||--o{ COMMANDE: PASSER
  INCLURE }|..|| COMMANDE: DF
  INCLURE }o..|| PRODUIT: DF

```

Le rendu des diagrammes décrits dans des langages-tiers (comme Mermaid) n'est pas directement pris en charge, mais peut être délégué (`--defer`) de façon transparente au service web approprié. Dans ce cas, c'est la sortie graphique qui est affichée :

```
%mocodo -i ccp -t crow:mmd --defer
```

---

![svg](doc/readme/ccp_erd_crow.svg)

## Opérations de réécriture

Une **réécriture** transforme un MCD Mocodo en un autre MCD Mocodo (au contraire d'une **conversion**, qui produit un animal d'une espèce différente).

Heureusement, l'utilisateur n'a pas à réfléchir si la transformation qu'il souhaite appliquer est une réécriture ou une conversion : dans les deux cas, il invoque `-t` (c'est-à-dire `--transform`), et Mocodo se débrouille.

En guise de premier exemple de réécriture, mettons les noms des entités et associations (`boxes`) en majuscules, et les libellés (`labels`) en ASCII et _snake case_ :

```
%mocodo -i ccp -t upper:boxes ascii:labels snake:labels --colors brewer+3
```

![svg](doc/readme/ccp_mcd_ascii.svg)

---

    %%mocodo --colors brewer+3
    CLIENT: ref_client [VARCHAR(8)], nom [VARCHAR(255)], prenom [VARCHAR(255)], adresse [VARCHAR(255)]
    PASSER, 0N CLIENT, 11 COMMANDE
    COMMANDE: num_commande [VARCHAR(8)], date [DATE], montant [DECIMAL(10,2)]
    INCLURE, 1N COMMANDE, 0N PRODUIT: quantite [INTEGER]
    PRODUIT: ref_produit [VARCHAR(8)], libelle [VARCHAR(50)], prix_unitaire [DECIMAL(10,2)]

Remarquez que l'exécution d'une réécriture affiche, au-dessous du diagramme, le code-source résultant. Celui-ci est précédé de la commande magique originale, _privée de l'option `-i` et de toute opération de réécriture_. Ces dispositions permettent de continuer à travailler directement dessus si on le copie-colle dans une autre cellule.

Plusieurs opérations de réécriture de nature sémantique sont également offertes. Par exemple, on peut décomposer un MCD quelconque en un MCD équivalent, mais n'employant que des dépendances fonctionnelles et des entités faibles :

```
%mocodo -i ccp --select mcd -t explode:weak,arity=2 arrange:wide --seed=3 --colors brewer+3
```

![svg](doc/readme/ccp_mcd_explode.svg)

Notez la sous-option `arrange:wide`. Elle a procédé à une réorganisation aléatoire des boîtes, ce que l'insertion de deux nouvelles associations de dépendance fonctionnelles avait rendu nécessaire. Quant à l'option `--seed=3`, elle garantit que le résultat sera le même à chaque exécution.

Pour vous familiariser avec Mocodo, le plus simple est d'utiliser [sa version en ligne](https://www.mocodo.net). Vous pourrez ensuite vous plonger dans la [documentation](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html).

            

Raw data

            {
    "_id": null,
    "home_page": "https://www.mocodo.net/",
    "name": "mocodo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0.0,>=3.6.1",
    "maintainer_email": null,
    "keywords": "education, relational, database, drawing, ERD, SVG, Merise",
    "author": "Aristide Grange",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/33/fe/ca5ba50fa0005dbafa752e4b1b87f8cd7a90411062d75eef6ad8beb47f50/mocodo-4.2.6.tar.gz",
    "platform": null,
    "description": "**Janvier 2024.** Mocodo [4.2](https://github.com/laowantong/mocodo/releases/tag/4.2.0) est maintenant disponible sous [Basthon](https://basthon.fr). Apr\u00e8s [Mocodo _online_](https://www.mocodo.net), Basthon constitue donc une deuxi\u00e8me mani\u00e8re d'utiliser Mocodo sans rien installer. Elle a l'avantage de donner acc\u00e8s \u00e0 l'int\u00e9gralit\u00e9 des fonctionnalit\u00e9s du logiciel. Merci \u00e0 son auteur, Romain Casati\u00a0!\n\n**Novembre 2023.** Mocodo [4.1](https://github.com/laowantong/mocodo/releases/tag/4.1.0) g\u00e8re les biblioth\u00e8ques de MCD. Un enseignant peut par exemple placer sur son propre serveur la correction d'un MCD sous un nom \u00ab\u00a0secret\u00a0\u00bb, que le moment venu il communiquera oralement \u00e0 ses \u00e9tudiants pour leur permettre de le r\u00e9cup\u00e9rer (soit sous Mocodo online, soit en ligne de commande).\n\n**Octobre 2023.** Mocodo [4](https://github.com/laowantong/mocodo/releases/tag/4.0.4) introduit la gestion manuelle et automatique des contraintes d'optionalit\u00e9 et d'unicit\u00e9, am\u00e9liore les interfaces graphique et en ligne de commande, et ajoute un grand nombre de fonctionnalit\u00e9s\u00a0: coloration syntaxique, liens de partage, exportation en UML, en notation de Chen et _crow's foot_, g\u00e9n\u00e9ration de MCD al\u00e9atoires, d\u00e9composition des associations et autres op\u00e9rations de r\u00e9\u00e9criture.\n\n**Septembre 2022.** Mocodo 3 introduit l'[h\u00e9ritage](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#H\u00e9ritage-(ou-sp\u00e9cialisation)), l'[agr\u00e9gation](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#Agr\u00e9gation-(ou-pseudo-entit\u00e9)), les [calques](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#H\u00e9ritage-(ou-sp\u00e9cialisation)), les [sorties PDF et PNG](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#H\u00e9ritage-(ou-sp\u00e9cialisation)), etc.\u00a0: [3.0](https://github.com/laowantong/mocodo/releases/tag/3.0), [3.1](https://github.com/laowantong/mocodo/releases/tag/3.1.0), [3.2](https://github.com/laowantong/mocodo/releases/tag/3.2.0).\n\n------\n\n[Documentation](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html) sur une seule page, incluant la sortie de [`mocodo --help`](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#mocodo---help) et l'[aide-m\u00e9moire des transformations](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html#Aide-m\u00e9moire-des-arguments-de---transform).\n\n----\n\n![](logos/banner.svg)\n\nMocodo est un logiciel d'aide \u00e0 l'enseignement et \u00e0 l'apprentissage des [bases de donn\u00e9es relationnelles](https://fr.wikipedia.org/wiki/Base_de_donn\u00e9es_relationnelle).\n\n- En entr\u00e9e, il prend un [MCD](https://fr.wikipedia.org/wiki/Mod\u00e8le_entit\u00e9-association) (mod\u00e8le conceptuel de donn\u00e9es) d\u00e9crit dans un langage d\u00e9di\u00e9 minimaliste.\n- En sortie, il produit un diagramme entit\u00e9-association et, \u00e0 la demande, un [MLD](https://fr.wikipedia.org/wiki/Merise_(informatique)#MLD_:_mod\u00e8le_logique_des_donn\u00e9es) (sch\u00e9ma relationnel, sous forme graphique ou textuelle), un [DDL](https://fr.wikipedia.org/wiki/Langage_de_d\u00e9finition_de_donn\u00e9es) (script SQL de cr\u00e9ation de la base), un [diagramme de classes UML](https://fr.wikipedia.org/wiki/Diagramme_de_classes), etc.\n- En bonus, il est capable de r\u00e9arranger automatiquement votre MCD de fa\u00e7on esth\u00e9tique, et de lui appliquer des op\u00e9rations de r\u00e9\u00e9criture qui vont du mondain (typographie) \u00e0 l'acad\u00e9mique (d\u00e9composition d'associations), en passant par le merveilleux (inf\u00e9rence de types, g\u00e9n\u00e9ration d'exercices et d'exemples).\n\nVous pouvez utiliser Mocodo\u00a0:\n\n- sur son site web [Mocodo _online_](https://www.mocodo.net)\u00a0;\n- dans un document [Jupyter Notebook](https://jupyter.org), avec ou [sans](https://basthon.fr) installation\u00a0;\n- en ligne de commande\u00a0;\n- comme une biblioth\u00e8que Python.\n\n## Trac\u00e9 du mod\u00e8le conceptuel\n\nCi-dessous, un exemple d'utilisation sous Jupyter Notebook. L'appel du programme est en premi\u00e8re ligne\u00a0; le texte-source proprement dit, lignes suivantes. En sortie, le diagramme conceptuel, \u00e9gay\u00e9 au passage par l'option `--colors`\u00a0:\n\n![png](doc/readme/ccp_mcd.png)\n\n![svg](doc/readme/ccp_mcd.svg)\n\n## Op\u00e9rations de conversion\n\nOn peut r\u00e9cup\u00e9rer ce texte-source avec `--input` pour lui appliquer diverses op\u00e9rations. Ainsi, l'appel suivant g\u00e9n\u00e8re et affiche son MLD, son diagramme relationnel et son DDL\u00a0:\n\n```\n%mocodo --input ccp --transform mld diagram ddl --colors desert\n```\n\n---\n\n- **CLIENT** (<ins>R\u00e9f. client</ins>, Nom, Pr\u00e9nom, Adresse)\n- **COMMANDE** (<ins>Num. commande</ins>, Date, Montant, _#R\u00e9f. client_)\n- **INCLURE** (<ins>_#Num. commande_</ins>, <ins>_#R\u00e9f. produit_</ins>, Quantit\u00e9)\n- **PRODUIT** (<ins>R\u00e9f. produit</ins>, Libell\u00e9, Prix unitaire)\n\n---\n\n![svg](doc/readme/ccp_mld.svg)\n\n---\n\n```sql\nCREATE TABLE CLIENT (\n  PRIMARY KEY (ref_client),\n  ref_client VARCHAR(8) NOT NULL,\n  nom VARCHAR(255),\n  prenom VARCHAR(255),\n  adresse VARCHAR(255)\n);\n\nCREATE TABLE COMMANDE (\n  PRIMARY KEY (num_commande),\n  num_commande VARCHAR(8) NOT NULL,\n  date DATE,\n  montant DECIMAL(10,2),\n  ref_client VARCHAR(8) NOT NULL\n);\n\nCREATE TABLE INCLURE (\n  PRIMARY KEY (num_commande, ref_produit),\n  num_commande VARCHAR(8) NOT NULL,\n  ref_produit VARCHAR(8) NOT NULL,\n  quantite INTEGER\n);\n\nCREATE TABLE PRODUIT (\n  PRIMARY KEY (ref_produit),\n  ref_produit VARCHAR(8) NOT NULL,\n  libelle VARCHAR(50),\n  prix_unitaire DECIMAL(10,2)\n);\n\nALTER TABLE COMMANDE ADD FOREIGN KEY (ref_client) REFERENCES CLIENT (ref_client);\n\nALTER TABLE INCLURE ADD FOREIGN KEY (ref_produit) REFERENCES PRODUIT (ref_produit);\nALTER TABLE INCLURE ADD FOREIGN KEY (num_commande) REFERENCES COMMANDE (num_commande);\n```\n\nDans la suite, pour \u00e9pargner la frappe, les options `--input` et `--transform` seront respectivement abr\u00e9g\u00e9es en `-i` et `-t`.\n\nLes op\u00e9rations de conversion ne se limitent pas forc\u00e9ment au sch\u00e9ma relationnel. En voici une qui extrait un dictionnaire des donn\u00e9es, par d\u00e9faut sous la forme d'un tableau Markdown \u00e0 trois colonnes :\n\n```\n%mocodo -i ccp -t data_dict\n```\n\n---\n\n| Entit\u00e9 ou association | Libell\u00e9 de l'attribut | Type          |\n|:----------------------|:----------------------|:--------------|\n| CLIENT                | Adresse               | VARCHAR(255)  |\n| \"                     | Nom                   | VARCHAR(255)  |\n| \"                     | Pr\u00e9nom                | VARCHAR(255)  |\n| \"                     | R\u00e9f. client           | VARCHAR(8)    |\n| COMMANDE              | Date                  | DATE          |\n| \"                     | Montant               | DECIMAL(10,2) |\n| \"                     | Num. commande         | VARCHAR(8)    |\n| INCLURE               | Quantit\u00e9              | INTEGER       |\n| PRODUIT               | Libell\u00e9               | VARCHAR(50)   |\n| \"                     | Prix unitaire         | DECIMAL(10,2) |\n| \"                     | R\u00e9f. produit          | VARCHAR(8)    |\n\nUne autre qui transcrit le MCD dans la notation _crow's foot_ (`crow`) pour [Mermaid](http://mermaid.js.org) (`mmd`)\u00a0:\n\n```\n%mocodo -i ccp -t crow:mmd\n```\n\n---\n\n```mmd\nerDiagram\n  CLIENT {\n    VARCHAR(8) ref_client PK\n    VARCHAR(255) nom\n    VARCHAR(255) prenom\n    VARCHAR(255) adresse\n  }\n  COMMANDE {\n    VARCHAR(8) num_commande PK\n    DATE date\n    DECIMAL(10-2) montant\n  }\n  INCLURE {\n    INTEGER quantite PK\n  }\n  PRODUIT {\n    VARCHAR(8) ref_produit PK\n    VARCHAR(50) libelle\n    DECIMAL(10-2) prix_unitaire\n  }\n  CLIENT ||--o{ COMMANDE: PASSER\n  INCLURE }|..|| COMMANDE: DF\n  INCLURE }o..|| PRODUIT: DF\n\n```\n\nLe rendu des diagrammes d\u00e9crits dans des langages-tiers (comme Mermaid) n'est pas directement pris en charge, mais peut \u00eatre d\u00e9l\u00e9gu\u00e9 (`--defer`) de fa\u00e7on transparente au service web appropri\u00e9. Dans ce cas, c'est la sortie graphique qui est affich\u00e9e\u00a0:\n\n```\n%mocodo -i ccp -t crow:mmd --defer\n```\n\n---\n\n![svg](doc/readme/ccp_erd_crow.svg)\n\n## Op\u00e9rations de r\u00e9\u00e9criture\n\nUne **r\u00e9\u00e9criture** transforme un MCD Mocodo en un autre MCD Mocodo (au contraire d'une **conversion**, qui produit un animal d'une esp\u00e8ce diff\u00e9rente).\n\nHeureusement, l'utilisateur n'a pas \u00e0 r\u00e9fl\u00e9chir si la transformation qu'il souhaite appliquer est une r\u00e9\u00e9criture ou une conversion\u00a0: dans les deux cas, il invoque `-t` (c'est-\u00e0-dire `--transform`), et Mocodo se d\u00e9brouille.\n\nEn guise de premier exemple de r\u00e9\u00e9criture, mettons les noms des entit\u00e9s et associations (`boxes`) en majuscules, et les libell\u00e9s (`labels`) en ASCII et _snake case_\u00a0:\n\n```\n%mocodo -i ccp -t upper:boxes ascii:labels snake:labels --colors brewer+3\n```\n\n![svg](doc/readme/ccp_mcd_ascii.svg)\n\n---\n\n    %%mocodo --colors brewer+3\n    CLIENT: ref_client [VARCHAR(8)], nom [VARCHAR(255)], prenom [VARCHAR(255)], adresse [VARCHAR(255)]\n    PASSER, 0N CLIENT, 11 COMMANDE\n    COMMANDE: num_commande [VARCHAR(8)], date [DATE], montant [DECIMAL(10,2)]\n    INCLURE, 1N COMMANDE, 0N PRODUIT: quantite [INTEGER]\n    PRODUIT: ref_produit [VARCHAR(8)], libelle [VARCHAR(50)], prix_unitaire [DECIMAL(10,2)]\n\nRemarquez que l'ex\u00e9cution d'une r\u00e9\u00e9criture affiche, au-dessous du diagramme, le code-source r\u00e9sultant. Celui-ci est pr\u00e9c\u00e9d\u00e9 de la commande magique originale, _priv\u00e9e de l'option `-i` et de toute op\u00e9ration de r\u00e9\u00e9criture_. Ces dispositions permettent de continuer \u00e0 travailler directement dessus si on le copie-colle dans une autre cellule.\n\nPlusieurs op\u00e9rations de r\u00e9\u00e9criture de nature s\u00e9mantique sont \u00e9galement offertes. Par exemple, on peut d\u00e9composer un MCD quelconque en un MCD \u00e9quivalent, mais n'employant que des d\u00e9pendances fonctionnelles et des entit\u00e9s faibles\u00a0:\n\n```\n%mocodo -i ccp --select mcd -t explode:weak,arity=2 arrange:wide --seed=3 --colors brewer+3\n```\n\n![svg](doc/readme/ccp_mcd_explode.svg)\n\nNotez la sous-option `arrange:wide`. Elle a proc\u00e9d\u00e9 \u00e0 une r\u00e9organisation al\u00e9atoire des bo\u00eetes, ce que l'insertion de deux nouvelles associations de d\u00e9pendance fonctionnelles avait rendu n\u00e9cessaire. Quant \u00e0 l'option `--seed=3`, elle garantit que le r\u00e9sultat sera le m\u00eame \u00e0 chaque ex\u00e9cution.\n\nPour vous familiariser avec Mocodo, le plus simple est d'utiliser [sa version en ligne](https://www.mocodo.net). Vous pourrez ensuite vous plonger dans la [documentation](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html).\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Mod\u00e9lisation Conceptuelle de Donn\u00e9es. Nickel. Ni souris.",
    "version": "4.2.6",
    "project_urls": {
        "Homepage": "https://www.mocodo.net/",
        "Repository": "https://github.com/laowantong/mocodo/",
        "issues": "https://github.com/laowantong/mocodo/issues"
    },
    "split_keywords": [
        "education",
        " relational",
        " database",
        " drawing",
        " erd",
        " svg",
        " merise"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2c450777c670223cefba29d9a8968b994f777d14f9d3f6a607e9106bceb8fcb7",
                "md5": "d843dc053f30fcb55bdc4d305a9df713",
                "sha256": "46b9cd8a6d68d609603707b17961989c3e6fe0649a9a2223b3cdda51304fc27f"
            },
            "downloads": -1,
            "filename": "mocodo-4.2.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d843dc053f30fcb55bdc4d305a9df713",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0.0,>=3.6.1",
            "size": 341784,
            "upload_time": "2024-03-25T12:51:57",
            "upload_time_iso_8601": "2024-03-25T12:51:57.408505Z",
            "url": "https://files.pythonhosted.org/packages/2c/45/0777c670223cefba29d9a8968b994f777d14f9d3f6a607e9106bceb8fcb7/mocodo-4.2.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "33feca5ba50fa0005dbafa752e4b1b87f8cd7a90411062d75eef6ad8beb47f50",
                "md5": "2f07ea2801d0d9a7988b2f3a9a8c340d",
                "sha256": "88f956580179e8c8012305270499b229542f3f9b92d47e1e1fcbf8b4a536a709"
            },
            "downloads": -1,
            "filename": "mocodo-4.2.6.tar.gz",
            "has_sig": false,
            "md5_digest": "2f07ea2801d0d9a7988b2f3a9a8c340d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0.0,>=3.6.1",
            "size": 278208,
            "upload_time": "2024-03-25T12:52:02",
            "upload_time_iso_8601": "2024-03-25T12:52:02.790516Z",
            "url": "https://files.pythonhosted.org/packages/33/fe/ca5ba50fa0005dbafa752e4b1b87f8cd7a90411062d75eef6ad8beb47f50/mocodo-4.2.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-25 12:52:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "laowantong",
    "github_project": "mocodo",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "mocodo"
}
        
Elapsed time: 0.22498s