Présentation
Cette application est la version en ligne de DBConcept, un logiciel de modélisation de structures et de bases de données qui opère à partir d'une description textuelle des contraintes ensemblistes.
Exemples :
Les panneaux de visualisation sont multifonctions : utiliser les menus et pour choisir le type de diagramme (UML, MCD, MLD, MPD) ou de code (SQL, Haxe, Java, PHP, Python).
Note pour Firefox : la fonctionnalité de presse papier est par défaut désactivée ;
pour l'activer, saisir l'URL about:config et définir la valeur true pour la propriété dom.events.asyncClipboard.clipboardItem.
Définir une classe
classe: attr1, attr2, attr3, ...
- Le nom de la classe est suivit par un deux-points.
- Les attributs sont séparés par des virgules.
- Le premier attribut est par défaut l’identifiant de la classe. 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 peut être précisé entre crochets après le nom de l’attribut
(la valeur par défaut est
VARCHAR(50)). Le typeCOUNTERest un mot clé pour définir un nombre auto-incrémenté ;
exemple :attr [INT] - Ce qui est entre
/*et*/ou ce qui suit//est ignoré (commentaire).
Spécificités UML / OOP :
- La visibilité des attributs est par défaut protégée. Des accesseurs et mutateurs
sont automatiquement générés à moins que la visibilité ne soit rendue explicite
par le préfixe
+(publique),#(protégée) ou-(privée) - Un attribut préfixé par
~est à portée classe. - Le type
Tindique un type générique.
Définir une association
assoc, 01 ent1, 1N ent2, ... : attr1, ...
- Le nom de l’association est suivit 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, ouXXpour les masquer) suivies du nom de la classe impliquée dans l’association. - Les éventuels attributs d’une association sont placés à la fin après un deux-points.
- Le rôle de que joue la classe dans l’association peut être indiqué entre
crochets, après les cardinalités ;
exemple :11 [role] entité - Pour indiquer un lien relatif, préfixer les cardinalités (dont la maximum
devrait être 1) par un tiret bas ;
exemple :_11 entité faible
Spécificité UML / OOP :
- Pour indiquer une agrégation préfixer les cardinalités par la lettre
o(en minuscule) ; le tiret du bas_(cf lien relatif) ou l’étoile*indique une composition. - La visibilité des liens (par défaut protégée avec accesseurs et mutateurs)
peut être rendue explicite en préfixant les cardinalités par
+,#ou-.
Définir une sous-classe
/\ parent - enfant1, enfant2
La ligne commence par les caractères
/et\suivis du nom de la classe parent, d’un tiret (-) puis des noms des classes enfants (sous-classes) séparées par des virgules.Des contraintes d’e
Xclusion et/ou deTotalité peuvent être placées entre les/et\;
exemple :/XT\ Personne - Eleve, ProfLe 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 la relation parent (en cas deTotalité) et en faire descendre les attributs vers celles des enfants (requiert eXclusion).
Définir les méthodes d’une classe (spécificités UML / OOP)
Les méthodes doivent être définies séparément et après la classe et ses attributs. Elles ne constituent pas des boîtes.
classe(): méthode(param [type]) [type], ...
- Pour définir les méthodes d’une classe, indiquer le nom de la classe suivi de parenthèses (il peut y avoir plusieurs lignes pour une même classe).
- Un nom de méthode est suivi par la liste de paramètres entre parenthèses, et du type de la valeur retournée (entre crochet) le cas échéant.
- Par défaut, le type des paramètres est déduit de celui des attributs (si le paramètre porte le même nom) ou est chaîne de caractères.
- Par défaut, un constructeur prenant la valeur de chaque attribut en paramètre
est automatiquement généré, à moins qu’un constructeur ne soit explicitement
défini sous la forme d’une méthode sans nom ;
exemple :classe(): (attr, attr)