Introduction to Domains

Production databases typically contain data in tables that are optimized for storage and retrieval. Columns with data relevant to users need to be joined across several tables, filtered by business needs, secured against unauthorized access, and labeled using user-friendly names. In relational databases, a view can perform some of these functions. In the server, a Domain performs all these functions and more, such as the localization of report text and permissions based on data values.

A Domain is a virtual view, created and stored in the server without modifying the data source. Through a Domain, users see columns that have been joined, filtered, and labeled for their business needs. Security policies limit the data values users can access through a Domain. Administrators define Domains, and users create reports based on Domains using either the Ad Hoc Editor or iReport.

Typically, database administrators or business analysts create Domains for end users who understand the structure of the raw data in the database. In the default server installation, those who create Domains must have organization admin privileges.

Domains, like Topics, are used in the Ad Hoc Editor as a basis for designing reports. Users can save a report based on a Domain for others to run, and can also save the settings in a Domain Topic so others can design similar reports.

Using a Domain instead of a Topic has the following advantages:

Domains can be created directly through the server user interface.
Domains can use virtual data sources, which combine data residing in multiple JDBC or JNDI data sources into a single data source that can query the combined data.
Domain creators can write SQL queries, joins, filter expressions, and security files to specify exactly what data can be accessed, as well as labels and locale bundles to specify how the data appears.
When designing a report based on a Domain, the server can optimize database access to allow editing of reports that access huge datasets.
A Domain design typically includes data filtering, but users who create reports using the Domain can filter data even further. Users can select a subset of columns to appear in the Ad Hoc Editor and give them custom labels. Users can filter the data for each column.
Users who create reports can design prompts for input from report readers to filter data that appears in the document.

For more information, see Creating a View from a Domain and Creating Topics from Domains.