HP 3000 Manuals

ATTACH [ IMAGE/SQL Administration Guide ] MPE/iX 5.5 Documentation


IMAGE/SQL Administration Guide

ATTACH 

Attaches a TurboIMAGE/XL database to an SQL DBEnvironment.

Syntax 

AT[TACH] [WITH OWNER=OwnerName]

Parameters 

OwnerName     specifies an owner for all SQL objects that need to be
              created for the attached TurboIMAGE/XL database.  This name
              can be up to 17 bytes in length and can be made up of any
              combination of letters (A to Z), decimal digits (0 to 9),
              $, #, @, or _ (underscore).  However, the first character
              cannot be a decimal digit or an underscore.  Lowercase
              letters are automatically converted to uppercase letters.
              Note that group and account names are not included in the
              OwnerName parameter.

              If this parameter is omitted, the owner name defaults to
              the name of the TurboIMAGE/XL database defined in the most
              recent SET TURBODB command.

Prerequisites 

   *   SET SQLDBE issued.
   *   SET TURBODB issued.
   *   DBA authority.
   *   Database detached.

Description 

Use the ATTACH command to attach a TurboIMAGE/XL database to a
DBEnvironment.  This command can only be used after the database name and
the DBEnvironment name have been specified with SET commands.

You need exclusive access to the DBEnvironment when using the ATTACH
command, because it is required for the first ATTACH command.  Use the
ISQL SELECT command to find out if it is being accessed by users.
_________________________________________
|                                       |
|     :RUN ISQL.PUB.SYS                 |
|     >isql=> SELECT * FROM SYSTEM.USER;|
|     >isql=> exit;                     |
_________________________________________

            

When a database is attached to a DBEnvironment, only the DBC is defined
as an IMAGE/SQL user and default data type mapping is performed.  Once
attached, IMAGE/SQL utility commands can be used to update this default
information.  Refer to the ADD USER, UPDATE USER, UPDATE TYPE, and SPLIT
commands for more information.

A database already attached to a specific DBEnvironment cannot be
reattached.  If you attempt to do this, an error message is issued.  If
you want to reattach it, you must perform a DETACH first and then ATTACH
it.

To attach databases with the same database name but in different groups
and accounts to the same DBEnvironment, you must use the OwnerName 
parameter to specify a different owner name for all but the first such
database you attach.

If the DBEnvironment does not exist, IMAGE/SQL displays this message:

     DBE does not exist, do you want to create one? [Y/N] :

If you reply 'Y', a DBEnvironment and DBE files are automatically created
for you.  The files created are:

-------------------------------------------------------------------------------------------
|                                                                                         |
|                File Created                                  File Name                  |
|                                                                                         |
-------------------------------------------------------------------------------------------
|                                                                                         |
| DBEConFile                                  DBEnvironmentName                           |
|                                                                                         |
| DBEFile                                     DBEnvironmentNameFL                         |
|                                                                                         |
| LOG file                                    DBEnvironmentNameLG                         |
|                                                                                         |
| ATCINFO file                                DBEnvironmentNameCR                         |
|                                                                                         |
-------------------------------------------------------------------------------------------

For example, if you issue the command

     SET SQLDBE MYDBE

and the DBEnvironment MYDBE does not exist, these files are created:
MYDBE, MYDBEFL, MYDBELG, and MYDBECR.[REV BEG] 

The size of DBEFile is 5000 pages and LOG file is 10000 pages.

ATTACH triggers entering definitions for hash indices on all
TurboIMAGE/XL master keys and detail search items in the system catalog
of the DBEnvironment specified by the SET SQLDBE statement.  All master
keys, except P and Z data types, are entered as having unique hash
indices.  All detail search items, as well as master P and Z key types,
are entered as having non-unique hash indices.  With hash indices,
performance gain can be observed only when the mapped column of the key
or search item in an SQL statement employs an equality operator.  That
is, the SQL Optimizer will only derive an index scan on this mapped
column if the operator used with it is "=".  For other operators (such as
> or <) used with this mapped column, the Optimizer will not choose the
hash index scan on this mapped column.

The name of the hash index on the key item is derived by suffixing the
mapped column name of the key item with '_A1' for the automatic master
and '_M1' for the manual master.  For the detail data set, '_Dn' is
appended to the mapped column name of the search item where n is the path
number.  The definitions for hash indices can be seen in the views,
SYSTEM.IMAGEKEY and CATALOG.IMAGEKEY, of the system catalog of the
DBEnvironment.  For an example, the SQL statement, Select * from
SYSTEM.IMAGEKEY, after connecting to the DBEnvironment will display all
hash indices.

If B-Tree indices are created on the key items of the selected master
data sets using DBUTIL or DBSCHEMA, IMAGE/SQL enters definitions for the
B-Tree indices in the system catalog of the DBEnvironment.  Although the
B-Tree index can only be created on the key item, the definitions for
B-Tree indices on all of its related search items of the detail data sets
are also entered in the SQL catalog.  The B-Tree index on the key item of
the master set is perceived as an EXPLICIT index and that on the related
search item as IMPLICIT (virtual).  For an example, if a B-Tree index is
created on the key item which has paths to 16 detail data sets, a
definition for an index for all 16 data sets will be entered.  That is,
this will result into 17 (1 for master and 16 for detail data sets )
definitions.  The index on the key item of the master, except for P and Z
types, is entered as 'unique' index.  Other definitions, by default, are
non-unique.  The index name for the key items is derived by suffixing its
mapped column name with '_B1'.  For the related search item, its mapped
column is suffixed with '_Vn' where n is the path number.  With B-Tree
indices, you can use operators such as '<=', and '> ' which are
permissible in ALLBASE/SQL. The B-Tree indices can be seen in the views,
SYSTEM.INDEX and CATALOG.INDEX, of the DBEnvironment.

If the key item or its related search item is split using the SPLIT
command of IMAGESQL, definitions for both hash index and B-Tree index on
the split item will not be entered.  For an example, a key item on which
a B-Tree index exists, is split, but its related search item in the
detail set is not.  Definitions for unique hash index and unique B-Tree
index on this split key item will not be entered.  However, definitions
for non-unique hash index as well as non-unique B-Tree index on the
related search item will be entered.

If the database is enabled for third-party indices (TPI), ATTACH enters
definitions for all TPIs, excluding keyword indices and the ones for
which the third-party does not provide information.  The TPIs are entered
as unique or non-unique based on the index configuration and information
provided by the third-party for this index.

While keys, search items, and B-Tree indices are registered in the
specified DBEnvironment, third-party indices are registered in all
attached DBEnvironments.

Multiple index definitions on the same column can coexist and the SQL
optimizer derives the optimal access plan based on the statistics present
in the system catalog.  In other words, the key or search item of the set
can have a maximum of three index definitions.  One will be a hash index
definition entered automatically at ATTACH time, another can be a B-Tree
index definition, and the third can be a third-party index definition.
It is recommended that both B-Tree index and third-party index be not
created on the same item as it will have an unnecessary impact on the
performance (Optimizer calculates cost for each index).

The Optimizer decides which index to use and the proper order of
operations to ensure that the most efficient path is used.
[REV END]

Example 

In the following example, SALES is attached to PARTSDBE. The accompanying
message summarizes the mapping that took place during the attach.
___________________________________________________________________
|                                                                 |
|     >>SET TURBODB SALES                                         |
|     >>SET SQLDBE PARTSDBE                                       |
|     >>ATTACH                                                    |
|     Split 1 compound source field(s) (ATCWARN 32063).           |
|     Mapped 15 source table/source field name(s) (ATCWARN 32062).|
|     Mapped 1 incompatible source type(s) (ATCWARN 32061).       |
|     >>                                                          |
___________________________________________________________________

            

To see the specific mapping for each data set and field, use the DISPLAY
MAP command.  In the following example, the display notes that the data
type mapping performed for the mapped column CREDIT_RATING is imprecise.
Also noted is the splitting of the compound source field OTHER_VENDORS
into three mapped columns.
_________________________________________________________________________________
|                                                                               |
|     >>DISPLAY MAP                                                             |
|                                                                               |
|     TurboIMAGE/XL DB : SALES.SERED.ATC                                        |
|     DBEnvironment    : PARTSDBE.SERED.ATC                                     |
|     Owner Name       : SALES                                                  |
|                                                                               |
|     MAPPED(SOURCE)   SOURCE             MAPPED       SOURCE     MAPPED        |
|        TABLE         FIELD              COLUMN        TYPE       TYPE    NOTES|
|     ------------ ---------------- ------------------ ------- ----------- -----|
|                                                                               |
|     DATE_MASTER (DATE-MASTER)                                                 |
|                  DATE             DATE               X6      CHAR(6)          |
|                                                                               |
|     CUSTOMER (CUSTOMER)                                                       |
|                  CUSTOMER#        CUSTOMER#          J2      INTEGER          |
|                  LAST-NAME        LAST_NAME          X16     CHAR(16)         |
|                  FIRST-NAME       FIRST_NAME         X10     CHAR(10)         |
|                  INITIAL          INITIAL            U2      CHAR(2)          |
|                  STREET           STREET             X26     CHAR(26)         |
|                  CITY             CITY               X12     CHAR(12)         |
|                  STATE            STATE              X2      CHAR(2)          |
|                  ZIP              ZIP                X6      CHAR(6)          |
|                  CREDIT-RATING    CREDIT_RATING      R2      FLOAT       I    |
|                                                                               |
|     PRODUCT (PRODUCT)                                                         |
|                  PRODUCT#         PRODUCT#           U8      CHAR(8)          |
|                  PRODUCT-DESCRIPT PRODUCT-DESCRIPT   X20     CHAR(20)         |
|                                                                               |
|                                                                               |
|     VENDOR (VENDOR)                                                           |
|                  VENDOR           VENDOR             X16     CHAR(16)         |
|                  STREET           STREET             X26     CHAR(26)         |
|                  CITY             CITY               X12     CHAR(12)         |
|                  STATE            STATE              X2      CHAR(2)          |
|                                                                               |
|     INVENTORY (INVENTORY)                                                     |
|                  PRODUCT#         PRODUCT#           U8      CHAR(8)          |
|                  ON-HAND-QTY      ON_HAND_QTY        J2      INTEGER          |
|                  VENDOR           VENDOR             X16     CHAR(16)         |
|                  OTHER-VENDORS    OTHER_VENDORS_1    X16     CHAR(16)     S   |
|                  OTHER-VENDORS    OTHER_VENDORS_2    X16     CHAR(16)     S   |
|                  OTHER-VENDORS    OTHER_VENDORS_3    X16     CHAR(16)     S   |
|                  UNIT-COST        UNIT_COST          P8      DECIMAL(7,0)     |
|                  LAST-SHIP-DATE   LAST_SHIP_DATE     X6      CHAR(6)          |
|                  LOCATION-BIN     LOCATION_BIN       Z2      DECIMAL(2,0)     |
|                  PART-INFO        PART_INFO          X60     CHAR(60)         |
|                                                                               |
|     SALES (SALES)                                                             |
|                  CUSTOMER#        CUSTOMER#          J2      INTEGER          |
|                  PRODUCT#         PRODUCT#           U8      CHAR(8)          |
|                  QUANTITY         QUANTITY           I1      SMALLINT         |
|                  PRICE            PRICE              J2      INTEGER          |
|                  TAX              TAX                J2      INTEGER          |
|                  TOTAL            TOTAL              J2      INTEGER          |
|                  PURCHASED-DATE   PURCHASED_DATE     X6      CHAR(6)          |
|                  DELIVERED-DATE   DELIVERED_DATE     X6      CHAR(6)          |
|                                                                               |
|     NOTES:                                                                    |
|       I: Imprecise(float)/Incompatible(others) mapping between source and     |
|          mapped data types                                                    |
|       S: Source field has been split                                          |
|     >>                                                                        |
_________________________________________________________________________________

            



MPE/iX 5.5 Documentation