Metadata-Version: 2.1
Name: mocodo
Version: 3.0
Summary: Modélisation Conceptuelle de Données. Nickel. Ni souris.
Home-page: https://www.mocodo.net
License: MIT
Keywords: education,relational,database,drawing,ERD,SVG,Merise
Author: Aristide Grange
Requires-Python: >=3.6.1,<4.0.0
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Framework :: IPython
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Database
Classifier: Topic :: Education
Project-URL: Repository, https://github.com/laowantong/mocodo/
Project-URL: issues, https://github.com/laowantong/mocodo/issues
Description-Content-Type: text/markdown

![](https://cdn.rawgit.com/laowantong/mocodo/master/logos/banner.svg)

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

- En entrée, il prend une description textuelle des entités et associations du modèle conceptuel de données ([MCD](https://fr.wikipedia.org/wiki/Modèle_entité-association)).
- En sortie, il produit son diagramme entité-association en [SVG](https://fr.wikipedia.org/wiki/Scalable_Vector_Graphics) et son schéma relationnel ([MLD](
https://fr.wikipedia.org/wiki/Merise_%28informatique%29#MLD_:_mod.C3.A8le_logique_des_donn.C3.A9es)) en [SQL](https://fr.wikipedia.org/wiki/Structured_Query_Language), [LaTeX](https://fr.wikipedia.org/wiki/LaTeX), [Markdown](https://fr.wikipedia.org/wiki/Markdown), etc.

Ci-dessous, un exemple sous [Jupyter Notebook](https://jupyter.org). L'appel du programme se fait en première ligne, sur un texte d'entrée donné lignes suivantes.

    %%mocodo --mld --colors brewer+1 --shapes copperplate --relations diagram markdown_data_dict
    :
    Classe: Num. classe, Num. salle
    ::

    DF, 11 Élève, 1N Classe
    Personne: Nom, Prénom, Contact
    Faire Cours, 1N Classe, 1N Prof: Vol. horaire
    Catégorie: Code catégorie, Nom catégorie

    Élève: Num. élève, Date naissance
    /XT\, 1N Personne, 10 Élève, 10 Prof
    Prof: Num. prof, Num. bureau
    Relever, 0N Catégorie, 11 Prof

    Date: Date
    Noter, 1N Élève, 0N Prof, 0N Matière, 1N Date: Note
    Matière: Libellé matière
    Enseigner, 11 Prof, 1N Matière
    En sortie, le MCD (diagramme conceptuel) et le MLD (schéma relationnel) correspondants:

![](https://cdn.rawgit.com/laowantong/mocodo/master/doc/readme_1.svg)

**Classe** (<ins>Num. classe</ins>, Num. salle)  
**Faire Cours** (<ins>_Num. classe_</ins>, <ins>_Num. prof_</ins>, Vol. horaire)  
**Catégorie** (<ins>Code catégorie</ins>, Nom catégorie)  
**Élève** (Nom, Prénom, Contact, <ins>Num. élève</ins>, Date naissance, _Num. classe_)  
**Prof** (Nom, Prénom, Contact, <ins>Num. prof</ins>, Num. bureau, _Code catégorie_, _Libellé matière_)  
**Noter** (<ins>_Num. élève_</ins>, <ins>_Num. prof_</ins>, <ins>_Libellé matière_</ins>, <ins>_Date_</ins>, Note)  

L'appel ci-dessus a également construit le dictionnaire des données:

- Num. classe
- Num. salle
- Nom
- Prénom
- Contact
- Vol. horaire
- Code catégorie
- Nom catégorie
- Nom
- Prénom
- Contact
- Num. élève
- Date naissance
- Nom
- Prénom
- Contact
- Num. prof
- Num. bureau
- Date
- Note
- Libellé matière

Ainsi que le diagramme relationnel, qui peut être visualisé par un nouvel appel:


    %mocodo --input mocodo_notebook/sandbox.mld --colors brewer+1


![](https://cdn.rawgit.com/laowantong/mocodo/f06f70a/doc/readme_2.svg)

La devise de Mocodo, « nickel, ni souris », en résume les principaux points forts:

- description textuelle des données. L'utilisateur n'a pas à renseigner, placer et déplacer des éléments comme avec une lessive ordinaire. Il ne fournit rien de plus que les informations définissant son MCD. L'outil s'occupe tout seul du plongement;
- propreté du rendu. La sortie se fait en vectoriel, prête à être affichée, imprimée, agrandie, exportée dans une multitude de formats sans perte de qualité;
- rapidité des retouches. L'utilisateur rectifie les alignements en insérant des éléments invisibles, en dupliquant des coordonnées ou en ajustant des facteurs mutiplicatifs: là encore, il travaille sur une description textuelle, et non directement sur le dessin.

Mocodo est libre, gratuit et multiplateforme. Si vous l'aimez, répandez la bonne nouvelle en incluant l'un de ses logos dans votre support: cela multipliera ses chances d'attirer des contributeurs qui le feront évoluer.

Pour vous familiariser avec Mocodo, le mieux est d'utiliser [sa version en ligne](http://mocodo.net).

Pour en savoir plus, lisez la documentation [au format HTML](https://rawgit.com/laowantong/mocodo/master/doc/fr_refman.html) ou téléchargez-la [au format Jupyter Notebook](doc/fr_refman.ipynb).

