Understanding the Archibus Database

Every Archibus project has its own physical database that contains the schema as described below and contains the project data (the operational, site-specific data for each of the Archibus domains). The physical database is implemented in the Microsoft SQL Server and Oracle commercial database engines.

Archibus ships with a sample project, HQ, that includes the standard schema and the sample project data.

In addition, the distribution enables you to create, from the standard schema, project databases to hold your own data.

New project databases contain the same tables that are found in project HQ, and contain a mixture of empty and completed tables.

Note: Before you begin working with the schema, you can check its current state and resolve any issues using the Update Database Wizard's Validate Schema feature.

The Schema Tables

The schema is the operational template for data storage and retrieval in an Archibus project. In database work, the schema is the design of the database--a set of table definitions and rules that delineate the structure of the data within the database and the aspects of the relational integrity of the data that must be maintained. Additionally, the schema includes the database tables that define how the Archibus program and applications work: tables that define the Navigator, workflow rules, and so on.

All of the tables that make up the Archibus schema are named with the prefix afm_,such as afm_tables, afm_flds, afm_ptasks, and so on. These tables' titles begin with "Archibus," such as the Archibus Fields table.

Modifying the Schema

To modify the schema, you will use the tasks on the these sections of the Smart Client Navigator. The corresponding processes in the Web Central also have tasks for accessing the schema tables, but editing may be limited.

A thorough understanding of the Archibus schema tables is a must-have skill if you are making schema changes. Below is a summary of the types of tables that make up the Archibus database.

Data Dictionary

In terms of modifying the schema, the most relevant tables are the data dictionary tables. The Archibus data dictionary provides a database-independent definition of the tables and fields used by Archibus. This conceptual representation of the data structures has a one-to-one correspondence with the physical database (the SQL tables).

The data dictionary is stored in:

Table Table Name Description
Archibus Tables afm_tables Defines all the tables used in the Archibus application.
Archibus Fields afm_flds Defines all the fields in all the tables of the Archibus application. The table defines such information as the Field Heading to be presented to the user, the maximum number of characters that the field can hold, the validating table, the acceptable numeric format, and so on.

In order for the program to quickly and easily access the data dictionary information, it is held in memory while you are working in your project . For example, the Field Heading mentioned above is loaded into memory when a project is opened. When the program encounters the field to display, the program displays the field heading instead of the actual field name.

Since data dictionary information is cached, when you make changes to a data dictionary component (regardless of whether the physical structure of the database changed), you need to clear the memory and reread the new values into memory. You can do this by restarting the application server.

Additionally, if you make a change to the data dictionary that changes the structure of the database (such as adding a new field or table), you must update the physical database (the SQL tables) using the Schema Change Wizard. See:

Application Dictionary

The application dictionary consists of the set of tables that define how the elements used by the applications work. Definitions in the application dictionary make possible tailoring a module to your site specify needs often without writing code. These tables also provide the linkage to code when custom code becomes necessary.

Navigator Tables

The Navigator tables define the hierarchy of domains, applications, processes and roles, and tasks with which the user interacts when navigating through Archibus applications.

Project Security Tables

The user gains access to specific Navigator elements through definitions in the project security tables. In addition, these security tables limit who can log into Archibus, what level of access they will be permitted, and to which data they have access.

Project Application Data Tables

The project application data tables store site-specific configuration information.

Project Data Tables

The project data tables are the tables in which Archibus stores the site operational data related to Archibus applications. The data in these tables are what sites use to track and manage their facilities. They are the heart of the management information system. Examples are the Buildings, Floors, Rooms, Equipment, and Leases tables. The project data tables are not considered to be part of the schema.