Affected DbVisualizer features
One of the most important and central features in DbVisualizer is the database objects tree, used to navigate databases, and the object view, showing details about specific objects. The general problem exploring any database is that they are all different with respect to the information describing what's in the database (also called system tables or database meta data). This basically means that it's rather complex to implement a multi-database support product, such as DbVisualizer, since each database must be handled specifically. All databases also support different object types, apart from the most common ones, such as table, view, index, etc.
The database profile framework is used to simplify the process of defining what information DbVisualizer will display and operate on for a specific database. Technically, a database profile is an XML file with all of the logic, structure and actions mapped to the visual components in DbVisualizer. Another great benefit of separating the database specific logic from the implementation of DbVisualizer is that anyone with some degree of domain knowledge can create a database profile. All that is needed is a text editor (preferably with XML support) and some ideas of what should be the final result.
A great source for inspiration (except for related sections in the user guide) is all the existing database profiles that comes with DbVisualizer. All database profiles that comes with DbVisualizer are stored in the DBVIS-HOME/resources/profiles
directory (exact path is OS dependent).
The following figure illustrates which features in DbVisualizer are controlled by the database profile.
The red box at the left shows the database objects tree. This tree is used to navigate the objects in the database. Selecting an object in the tree shows the object view (blue box) for the selected object type. An object view may have several data views (green), showing object information. DbVisualizer shows these as labeled tabs. The green box in the screenshot shows the content of the data view labeled Columns. The type of viewer that is presenting the data in the screenshot is the grid viewer. Read more about all data viewers in the Viewers section.
Common to both the database objects tree and the object view are the SQL commands that are used to fetch the information from the database. The associated SQL is executed by DbVisualizer whenever a node in the tree is expanded (to expose any child objects) or when a node is selected (to fill the object data views).
Right-clicking the mouse on an object in the tree or clicking the Actions button in the object view shows a menu with all valid actions for the selected object. These are also defined per database profile and object type. Read more about the capabilities of actions in the definition of user actions section.
The mapping from the visual components in the user interface described earlier and the element definitions in the XML file is, briefly, as follows:
- The database objects tree (green box) is described by the ObjectsTreeDef root element,
- The object views (green and blue boxes) are described by the ObjectsViewDef root element, The commands used to execute the SQL to get the information for ObjectsTreeDef, ObjectsViewDef and ObjectsActionDef definitions are defined by the Commands root element,
- All Actions for an object are defined by the ObjectsActionDef root element.