SQL/MX Database Distribution White Paper
NonStop SQL/MX Database Distribution White Paper  22 November 2004 
Hewlett-Packard Company – 529627-001    Page 3 of 12
1.3.  Nonobvious Aspects of Visibility 
A database object is globally visible on all nodes where its catalog has been registered. However, catalog 
registration is not automatic, and no global monitoring of catalog names occurs on individual Expand 
nodes. 
1.3.1.  Identically Named Catalogs 
Because a catalog is initially created only on the local Expand node, it is possible (but not generally 
recommended) to create identically named catalogs on individual Expand nodes. Continuing the example 
from Section 1.2: 
On \EAST, this command is entered: 
  CREATE CATALOG CATY; 
On \NORTH, this command is entered: 
  CREATE CATALOG CATY; 
Now, a catalog named CATY exists on both \EAST and \NORTH. However, they are not the same 
catalog. CATY on \NORTH is not - and cannot be made - visible on \EAST, and vice versa. On 
\NORTH, the command 
  REGISTER CATALOG CATY ON \EAST.$EASTDB; 
would be rejected with an error saying that another catalog named CATY already exists on 
\EAST, and vice versa. 
Typically, this is not a desirable situation. A catalog that is intended for global use should be created once, 
and then registered on each of the Expand nodes where it should be visible. 
1.3.2.  Visibility of Related Catalogs 
Database objects can be interdependent through mechanisms such as views, triggers, and referential 
integrity constraints. Such interdependencies can cross schema and catalog boundaries; catalogs with 
interdependent database objects are said to be related. 
Related catalogs are required to have identical visibility. That is, they must be visible on the exact same set 
of nodes. This is easiest to illustrate with an example of what could happen if identical visibility were not 
required. 
Continuing the example from Section 1.2: 
Catalog CATX is visible on all three nodes. On \NORTH, these commands are executed: 
  CREATE CATALOG CATZ; 
  CREATE SCHEMA CATZ.Z_SCHEMA; 
  CREATE TABLE CATZ.Z_SCHEMA.T1 (....); 










