Utilisation sans installation

L'application web peut être utilisée sans installation, en faisant pointer le navigateur sur la version en ligne : DBConcept Online. Un effort particulier a été fait pour qu'elle puisse être utilisée depuis un smartphone.

L'application s'éxécute intégralement dans le navigateur et aucune donnée ne transite sur le réseau.

La version en ligne ne permet pas la génération d'une base de données, ni la rétroconception.

Installation

L'archive distribuée comprend les exécutables multi-plateformes (Java et Web/Javascript) précompilés, le code source et la documentation.

sudo cp -R out/java /opt/dbconcept
sudo ln -sf /opt/dbconcept/dbconcept /usr/local/bin/
  • L'application web (DBConcept Online) est disponible dans le dossier out/web.

    • Elle requiert un navigateur récent (testé avec Android, Chromium et Firefox).
    • Le fichier index.html s'ouvre directement dans le navigateur (un serveur HTTP n'est pas nécessaire).

Utilisation en ligne de commande

Pour exécuter le programme :

dbconcept -s mcd:chemin/fichier.dbc [-d sqlite ]			#génère le script SQL de création de la base de données
dbconcept -s mcd:chemin/fichier.dbc [-d sqlite:chemin/fichier.db ]	#génère la base de données (et le script SQL)
dbconcept -s sqlite:chemin/fichier.db [-d chemin/destination ]		#rétroconception

Ainsi, la commande dbconcept -s mcd:fichier.dbc -d sqlite:fichier.db génère :

  • fichier-mcd.svg : schema MCD
  • fichier.mld : modèle relationnel
  • fichier-sqlite.sql : script SQL de création de la base de données
  • fichier.db : base de données

Options de la ligne de commande :

  • L'option --univ permet d'obtenir un MLD avec une représentation universitaire (par défaut, c'est celle du BTS-SIO / Éducation Nationale).

Syntaxe du fichier source Mocodo

Principe de fonctionnement

  • Chaque ligne constitue la définition d'une boîte (entité ou association).
  • Les boîtes définies sur des lignes consécutives sont tracées sur une même rangée.
  • Un saut de ligne commence une nouvelle rangée.
  • Les boîtes sont alignées verticalement. Une ligne réduite à un deux-points (:) insère une boîte invisible.

Définir une entité

entité: attr1, attr2, attr3, ...
  • Un nom d'entité est séparé de ses attributs par un deux-points.
  • Les attributs sont séparés par des virgules.
  • Le premier attribut est par défaut l'identifiant de l'entité. Pour inclure un autre attribut dans l'identifiant (ou exclure le premier), préfixer le nom de l'attribut par un tiret bas ; exemple : _attr
  • Le type de donnée (pour le SGBD) peut être précisé entre crochets après le nom de l'attribut (la valeur par défaut est VARCHAR(50)). Le type COUNTER est un mot clé pour définir un nombre auto-incrémenté ; exemple : attr [INT]

Définir une association

assoc, 01 ent1, 1N ent2, ... : attr1, ...
  • Un nom d'association est séparé de sa première patte par une virgule.
  • Les pattes d'une association sont séparées par des virgules.
  • Chaque patte est définie par ses cardinalités (01, 11, 0N, 1N, ou XX pour les masquer) suivies du nom de l'entité (ou association dans le cas d'une agrégation).
  • Les éventuels attributs d'une association sont placés à la fin après un deux-points.
  • Le rôle de la patte peut être indiqué entre crochet, entre les cardinalités et le nom de l'entité ; exemple : 11 [role] entité
  • Pour indiquer un lien relatif, préfixer les cardinalités par un tiret bas ; exemple : _11 entité faible

Définir une sous-classe d'entité

/\ parent - enfant1, enfant2
  • La ligne commence par les caractères / et \ suivis du nom de l'entité parent, d'un tiret (-) puis des noms des entités enfants (sous-classes) séparéespar des virgules.
  • Des contraintes d'eXclusion et/ou de Totalité peuvent être placées entre les / et \ ; exemple : /XT\ Personne - Eleve, Prof
  • Si les entités enfants partagent l'identifiant du parent, préfixer leur premier attribut par un tiret bas (_).
  • Le séparateur entre parents et enfants permet de spécifier un choix pour la génération du modèle relationnel :

    • - pour générer la relation parent et une relation par enfant ;
    • < [champCodeType] pour supprimer les relations enfants et en faire remonter les attributs vers celle du parent ([champCodeType] est facultatif) ;
    • > pour supprimer (en cas de Totalité) et faire descendre les attributs de la relation parent vers celles des enfants (requiert eXclusion).

Abbréviations

  • HTTP : Hyper Text Transfer Protocol
  • MCD : Modèle Conceptuel de Données
  • MLD : Modèle Logique de Données
  • SGBD : Système de Gestion de Base de Données
  • SQL : Structured Query Language
  • SVG : Scalable Vector Graphics