Database modelling is not the same as object-oriented application modelling. The principal difference is that in most (if not all) database management systems, the notion of partitioning the schema into sub-schemas is not present. Consequently, reverse engineering the database (such as EA does with ODBC) means having to select from a "flat" list of database objects.
For anything other than a trivial database, managing this flat set of database objects without some sort of structure is very, to extremely, difficult. Most database modelling tools allow the creation of sub-models. Many allow synchronisation (both forward and reverse engineering) via these sub-models.
Typically, these sub-models are sets of tables and views linked back to the main model. We can simulate this in EA by the use of diagrams as the definition of the sub-models. A given database object can thus appear in many sub-models (diagrams). Also analogously, a database object may be rendered differently in one sub-model from how it is rendered in another sub-model. EA can also do this via diagrams.
However, what's missing is the ability to easily select subsets of the database for synchronization. Without a doubt, there will need to be a package that is the equivalent of the schema and all database objects below that are considered to belong to that schema.
In the thread:
Packages, Namespaces & groupings, I observed that the application of a "Grouping Only" would solve some of the problems with UML Namespaces and groupings of Classifiers for OO modelling.
It seems to me that the same idea can be applied to this problem. Grouping Only packages can be used to "flatten out" a structure. The schema package mentioned above acts like a Namespace Root. Thus if I select the schema package and request an Import DB Schema from ODBC; I would get the full list of tables with all objects selected (by default). I could then tune the import manually. If I select a lower level package, and repeat the procedure, I'd get all the objects below the selected package selected in the dialog. I could then modify the selection manually.
In all cases however, the selected objects are synchronised with the named objects below the schema, regardless of where they exist in the grouping hierarchy.
I think this would make a great feature and make database modelling a lot easier (might even make a neat USP for EA).
[size=0]©2006 Paolo Cantoni, -Semantica-[/size]
Thoughts? Votes?
Paolo