The data describing the Data Model’s Objects and Attributes is itself a part of the model, and is accessible via the standard facilities used to query the model. In addition, there is a model browser within the application that allows you to navigate through the model and see the Objects and their attributes. The browser is accessed from the “Tools” menu by selecting “Metadata”.

Meta data example illustrates a sample browser diagram of part of the Metadata. Object classes (such as Device or Interface) can be identified because they are expandable to show the Attributes that Object class contain, as well as any Object classes that are contained in the Object that is expanded.

From the following example, Network is expanded to see it contains Device objects, and attributes such as NetworkDescription and NetworkName, and the Device object is expanded to show that it has attributes of Alias, Banner, Description, DeviceClass, etc. Attributes are shown with their type in parenthesis followed by a description of the attribute.

Figure 1. Meta data example

The Meta Data information itself is stored in multiple database tables. Meta data database tables provides a description of these tables.

Table 1. Meta data database tables

DisplayName

Description

MetaDataTable

Contains an entry describing each Object class, such as Device, Network, or Interface. The entry contains information such as the primary key name, default sorting order, and how to construct objects from one or more database tables.

MetaDataColumn

Contains an entry for each attribute of an Object that gives the attributes of that attribute, such as their database column name, type, and information about their XML representation. Each entry in the MetaDataColumn table is associated with a single MetaDataTable entry.

MetaDataProjection

Contains one or more entries for each defined projection of an Object. A projection is a set of columns that may be referenced by a logical name. All objects in the model contain a projection named “basic”. Other projections could be defined by adding additional entries. Each entry in the MetaDataProjection table is associated with a single MetaDataTable entry and a single projection name.

MetaDataNavigation

Contains entries that define relationships between objects, such as Object A contains Object B, or Object B is contained in Object A. The MetaDataNavigation table is used to construct relationships from one part of the model to another; for example to find the Interfaces within a Device. Each entry in the MetaDataNavigation table is associated with a single MetaDataTable entry, and it defines one relationship for the Object represented by that entry.

Translation Tables (named md_xxx_translation)

Translation tables are used to translate enumerated values (either integers or internal string representations) to their external string value used for display purposes. For example, the md_protocol_number_translation table contains the information that “tcp” is ip protocol number 6. There are many translation tables defined in the model, each of which translates a set of values for an attribute to their displayable string representation.