Click to expand :
What makes DB-MAIN different from other tools ?
DB-MAIN offers the same functions and features as most other standard data-modeling tools, but it also includes many powerful components that these other tools rarely or never offer.
- DB-MAIN is model-neutral :
Its data model encompasses major conceptual models (ER, UML class diagram, UML activity diagram, UML use case diagram and others), modern logical models (relational, object-relational, object-oriented, XML, ...), legacy logical models (CODASYL, IMS, COBOL files, RPG files, ...) and physical models (C, C++, Java, Pascal, COBOL data structures, etc). In addition, the method modelling component allows you to define any of these sub-models.
- DB-MAIN is methodology-neutral :
It allows users to work the way that suits them best without constraints on processes or on products. The method modeling component allows you to define specific methods.
- DB-MAIN is not just a draw-and-generate tool :
It includes powerful analysis, transformation and generation toolboxes for building and fine-tuning complex databases systematically and reliably. The tool preserves all specifications (information structures and integrity constraints) from the conceptual level down to the code, a warranty that most current CASE tools simply cannot give you.
- DB-MAIN for reverse engineering :
DB-MAIN includes specific models and processors to really reverse engineer most existing (i.e. ill designed and undocumented) legacy databases, ranging from COBOL and RPG files to relational and XML databases.
- DB-MAIN includes several assistants :
DB-MAIN includes several assistants to help developers perform complex and tedious tasks reliably: schema transformation, schema analysis, schema integration, physical design, code analysis (including programming cliché/pattern search engine, dependency graph analysis and program slicer). Most of them include a scripting facility to record and reuse frequent procedures.
- DB-MAIN is programmable :
Four levels of programmability allow the user to build reusable process fragments or complete processors that are integrated seamlessly into DB-MAIN.
- DB-MAIN is extensible :
Various plugins have been developed (by the DB-MAIN team or by the users themselves) to cope with advanced engineering processes: interoperability, wrapper design and generation, XML engineering, Java generators, parametric SQL generators, report generators, special graphic tools, temporal database design and generation, trigger analysis, etc.
- DB-MAIN is available through the Internet :
DB-MAIN is distributed through the Internet, making the error detection/fixing cycle very short (a new release is available in less than 2 weeks). The tool is distributed with a rich collection of tutorials, manuals, sample code and case studies that help users understand the database engineering realm and master the various components of the tool.
The tool also allows the development of specialized modeling tool, either according to specific methodologies, or by adding new concepts and new functions to the basic toolset.
There are three ways to derive customized modeling tools :
- Functional extension :
The JIDBM library is proposed to the engineer (analyst or method engineer) to develop new functions which will be seamlessly incorporated in the tool. For instance, they allow the building of specific report and code generators, text analyzers (e.g. importers), complex transformations or specifications checkers for specific problems and usage contexts.
The JIDBM library is a Java Interface for DB-MAIN. It can be used to develop Java plug-ins accessing the DB-MAIN repository in read and write mode. This library can access to all menu items of DB-Main.
There are two samples of Java programs :
- a small program that displays some statistics about an ER-schema
- a SQL generator for relational compliant ER-schemas
Note : Voyager 2 was the first programming language in DB-MAIN before the success of Java. For backward compatibility, the execution of Voyager 2 plug-ins is always available but, currently, Java is the only programming language for DB-MAIN plug-ins.
- Extension of the repository :
The repository is implemented as an object-base in which the tool records the current methodology, the project history, and the product specifications (mainly schemas and texts). New properties can be dynamically added and managed through Java functions.
- Methodological customization :
Due to its basic architectural assumptions (e.g. generic specification model, transformation operators, toolkit architecture), the tool is methodologically neutral, and can assist the analyst in practicing a large spectrum of methodologies. The methodological customization is carried out in two steps, namely the description of the selected methodology with the Method Description Language (MDL), and the enacting of this methodology through the method engine of the DB-MAIN tool.
The language allows the description of the processes, the strategies and the products of the methodology, as well as the specific aspects of the user interface (e.g. menu contents, graphical conventions, concept names).
This customization is useful for user guidance, but above all it provides a precise and structured way to record engineering histories necessary for the control of system maintenance and evolution.
DB-MAIN offers a strong support for most forward and reverse engineering activities. More specifically, it includes the following functions and components:
- specifications management : access, browsing, creation, update, copy, analysis, memorizing
- representation of the project history comprising the products (schemas, source texts, generated programs), the processes that use or generate the products and the decisions
- a generic, wide-spectrum, representation model for conceptual, logical and physical objects
- a generic model that describes procedural components of information systems at different abstraction levels as well as there relations
- semantic and technical semi-formal annotations attached to each specification object
- multiple views of the specifications (4 hypertexts and 3 graphical views); some views are particularly intended for very large schemas
- a tool box of more than 25 semantics-preserving transformational operators intended to carry out in a systematic way such activities as conceptual normalization, or the development of optimized logical and physical schemas from conceptual schemas, and conversely (i.e., reverse engineering)
- code generators (including a sophisticated SQL generator); report generators
- code parsers extracting physical schemas from SQL, COBOL, CODASYL, IMS, RPG source programs and XML documents
- interactive and programmable source text analysers which can be used, a.o., to detect complex programming patterns or clichés in source texts, and to build data flow diagrams through program variables
- a sophisticated name processor in order to clean, normalize, convert and translate the names of selected objects in a schema
- a method engine that help users follow engineering methods, that maintains the history of the engineering activities, and that makes their further automatic or assisted replay possible
- import and export of specifications in XML format
- a series of assistants : an assistant is a sort of expert in a specific kind of tasks, or in a class of problems, intended to help the analyst in frequent, tedious or complex tasks. It also provides the environment to develop scripts which automate process fragments. A library of predefined scripts is provided for the most frequent activities. Six assistants are currently available:
- a basic global transformation assistant proposes some standard solutions to most frequent structural problems
- an advanced global transformation assistant automates the application of complex transformations and makes it possible to develop sophisticated scripts
- a schema analysis assistant allows the evaluation of schemas against user defined or predefined data submodels and searching large schemas for complex structural patterns
- an integration assistant offers a set of tools for integrating schemas, entity types, rel-types and compound attributes at different levels of automation
- a text analysis assistant offers a set of tools for text analysis
- a referential key assistant which proposes some popular heuristics to find foreign keys in legacy databases.
DB-MAIN has been developed in C++. It is widely used by industrial partners, in system development, but also in reverse engineering, redocumentation, reengineering and migration projects.