Click on the queries below to find answers to frequently asked questions about ModelRight.
Q. Why can't I connect to the database?
A. To connect to your databae, you must first run your database's client library installer. ModelRight does not install client/connectivity libraries for any of the supported databases. Here are the websites where those libraries can be obtained (make sure the appropriate version for your OS platform is installed):
The directory where the connectivity libraries are installed usually needs to be in the Windows PATH. The client library installer usually sets that, but if it doesn't, then you may need to do so manually.
NOTE for PostgreSQL users:
To work around some dependency issues withy libpq.dll you need to do one of the following:
1. Put the \bin as the first item in Windows PATH!
2. Or, go to the \bin (for instance, C:\Program Files\PostgreSQL\8.3\bin) and copy all DLLs from there and paste them in the ModelRight install folder (C:\Program Files\ModelRight\ModelRight 3.5)
Q. What are the supported platforms for ModelRight?
A. We support Windows 2000, Server (all versions), XP, Vista, Windows 7, Windows 8 - 32-bit and 64-bit (though database client connections need to be 32 bit)
Q. What databases does ModelRight support?
A. Oracle 8i, 9i, 10g. SQL Server 2008, 2005, and 2000. MySQL 5x, PostgreSQL 8.2 and 8.3, DB2 LUW 8, 9, 9.5, DB2 for z/OS 8, 9 and ODBC (supports any database not explicitly supported).
Q. Is there any way to use this tool with a central repository to store the diagrams? Or use a version control tool like CVS or Subversion?
A. There is no explicit support for version control or a repository. However, you can use a version control tool to store ypour Model as a binary file - and then use ModelRight's Model Compare feature to see and report on the differences between different Model versions. Or, you can save the model as XML and store that as text in a version control tool.
Q. How can I move objects around by selecting and then using the cursor keys?
A. If an object (table, view, etc) is selected, you can move it using Shift+Arrow keys. If a column is selected, you can move it using Ctrl+Arrow.
Q. What is the purpose of the "Column" expand/hide widget on a table object? What does it do that the "Table Name" widget doesn't do? It gives the impression that there is a column called "Column" in each table object.
A. You can display any kind of object that a table owns on the diagram (indexes, keys, etc...), not just Columns. The Columns header is a Category header. There are options in the Diagram/Display property page and Diagram/Category property page to let you control this. The Column Category just collapses the Columns. The Table expand/collapse icon does the entire table.
Q. Give me a way to globally modify a set of tables at one time. For example, let me set the OWNER of a group of tables with one operation, either by selecting on the diagram or within the model explorer.
A. You can do this by using Table Domains. For instance, any property changed for the “” table domain will be inherited by any table (unless the property is overridden). Also, some properties (like owner) can be changed for a group of tables at once by selecting the group of tables and using the Property Browser.
Q. Is there a way to add commentary (e.g. a page header block) to a diagram? Is there a way to add mark-up (cosmetic-only) to a diagram?
A. Yes, with a Text block and other graphic objects.
Q. Is there a shorthand for adding a column to a table from within a diagram?
A. Use Ctrl+Enter when on an existing column or the column category.
Q. How do I reorder columns from within a diagram?
A. In a diagram, you can use Ctrl+Up/Down or drag/drop. In the Property Browser can use Up/Down toolbar buttons.
Q. How can I switch between Column Generation Order vs. Column PK/Non-PK Order?
A. Click on the diagram, context menu, expand Column Order and select the desired ordering option.
Q. Is it possible to "mark" or flag/annotate an object (questions, issues, etc.) for future review.?
A. You can do that by using Notes page in Property Browser. You can attach formatted Notes to any object in the model. Objects with notes can be displayed with an asterisk next to them in the Model Explorer.
Q. We have successfully reverse engineer our database using the tool. However, the database in question is quite large (to give you some idea the XML export is circa 200Mb!) and we don't seem to be able to export the image as a jpg. We select the option but nothing happens. Is this a limitation of the trial version or is it the case that the task is simply too large?
A. The limitation is your computer’s physical memory. If the image is too big then there is not enough memory to be allocated to hold the entire bitmap so you end up with a 0x0 sized bitmap. There are only two solutions to it... make smaller sub-models (and print those) or zoom it down to a level where the picture can be generated (however, many times, for large models, the diagram becomes un-readable because of the small zoom level). The first approach is the preferred one because most of the time a large model needs to be split in smaller logical units for easier management.
Q. In Property Browser, what does the "inherit" hyperlink do?
A. It takes you to the object (i.e. makes it the currently selected object) that the current object inherits properties from.
Q. How does one create subclasses within ModelRight? Two or more mutually exclusive subordinate tables sharing the primary key of a parent table.
A. Supertype/subtype is more of a logical-level notion. We don't explicitly support subtype/supertype tables since ModelRight is a physical-level modeling tool. You can however create subtype/supertype tables in MR and enforce the same referential constraints, etc.. on them that you might with a supertype/subtypes.
Q. Can one define a M-M relationship or do I have to explicitly create the intersection table and the two one-many relationships with the intersection table?
A. Many-to-many relations are more of a logical-level notion. So yes, you would have to create the intersection table... You could also create two non-identifying relations between the two tables - going in different directions and change their migrate option to not migrate anything.
Q. How do I define (and associate with one or more tables) a particular schema owner/user?
A. You can right click on User in the Model Explorer and select New. Or you can click on User in the Model Explorer and then use the Property Browser to add users. To associate a user with a table/view, you can do any of the following: 1) drag/drop it onto the table from the Model Explorer 2) select the table and then edit its Owner property in the property browser. 3) define Table Domain, specify the Owner property for the Table Domain, and then assign the table domain to the tables that you want to have inherit the owner property. Also, if you right click on the diagram and select Display Table/Owner (or select the diagram, then the Display tab in the Property Browser), you can see the User/Schema that’s been assigned to the table. You can also then use on-diagram editing to change it… Also, if you select multiple tables then, you can set the owner for all the selected tables in the Property Browser
Q. If I add a table to a Submodel, why does it appear on another Submodel (diagram)?
A. You would need to uncheck the other Model Subset's Auto-Add option.
Q. How can I synchronize the column-order of my generated tables to reflect the column-order of the diagrams?
A. By default, MR keeps the column orders in sync (i.e. the PK/non-PK and the generation order). If the synchronization is turned off, then it can be restored by checking the “Synch Column Orders” option in Table Property Browser.
Q. The Oracle Database Connection is not working. I get the error. "Database Client Library not found!"
A. You need the Oracle client DLL named: oci.dll. You can find it as part of any Oracle's distribution or on our downloads page. You might already have it installed. Either way, you need to make sure that oci.dll is part of your PATH or copy it ModelRight installation directory.
Q. The MySQL Database Connection is not working. I get the error. "Database Client Library not found!"
A. You need the MySQL client DLL named: libmysql.dll. You can find it as part of any MySQL 5.x distribution and on our website (download here). You might already have it installed. Either way, you need to make sure that libmysql.dll is part of your PATH or copy it to the ModelRight installation directory. Also, certain versions of MySQL (5.0.41-5.0.43 and certain pre-5.1.19) had a defect that didn't allow libmysql to be loaded dynamically. If you are using one of these version, you would need to upgrade to use ModelRight.
Forward Engineering/SQL Generation
Q. I've noticed that when adding a foreign key constraint, the Create Script in the SQL Tab of the Property Browser doesn't have the constraint name, even though I've entered it on the Relation Tab. Is there something I'm neglecting to do? Selecting on the Generate Name check box doesn't seem to make any difference.
A. You need to turn on the Constraint Name option on the current Schema Gen Option Set. You can easily do this by selecting the SQL Tab and then selecting the Edit Script button in the toolbar, and then click the Default Schema Gen Options at the bottom of the tab. Then click the Foreign Keys/Create Constraint/Constraint Name option. Click the Navigate Back toolbar button to get back to the relation selection. In other words, to generate an FK constraint name you need to select both the Generate Name option on the Relation and the Foreign Keys/Create Constraint/Constraint Name option of the current Schema Gen Option Set.
Q. How can I generate SQL with named foreign key constraints as part of table creation?
A. Schema Gen option – Foreign Keys/Create Constraint option need to be checked. If you create the FK constraints in the create table, MR will order using the dependencies. Otherwise, it will generate them alphabetically and put the Alter add FK statements at the end. Also, if you need the constraint name to be generated in the script, make sure that the Foreign Keys/Create Constraint/Generate Name option is checked. The names will be generated only for the constraints that have the “Generate Name” property on (on Property Browser).
Q. Do you have the ability to define/manage roles and grants within the tool...?
A. Not explicitly, but you could easily use post-script for it.
Q. I want to reverse engineer parts of a large database (over 1700 tables)? How can I filter down the objects (tables, views) that I want to reverse engineer?
A. You have the ability to filter down objects in a multitude of ways… On the second screen of the reverse engineer wizard, you can filter by object type, schema/database, tablespace and SQL regular expression (for LIKE or NOT LIKE name filtering). Please consult the documentation for full details. Reporting
Q. How can I eliminate the cutesy background in the html reports?
A. You would need to edit the XSL.