Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


11.6.1 SDBデータベース定義【4V AFM】

*ENTRY DICTIONARY文または*ALTER DICTIONARY文に指定するSDBデータベース定義について説明します。

注意事項

*ENTRY DICTIONARY文または*ALTER DICTIONARY文に指定したSDBデータベース定義は保存しておいてください。*ALTER DICTIONARY文でSDBデータベース定義を変更する際,変更個所だけを指定するのではなく,変更後のSDBデータベース定義をすべて指定する必要があります。このとき,保存しておいたSDBデータベース定義が必要になります。

〈この項の構成〉

(1) 機能

SDBデータベースの論理構造を定義します。

(2) 形式

項番

形式

オペランドの追加可否※1

(a)

SCHEMA SDBデータベース名

×

(b)

DBTYPE 4V {DAM|MAM|TAM|SAM}

×

(c)

 RECORD レコード型名

※2

(d)

     {レベル番号|ITEM} 構成要素名

(e)

     〔{CHARACTER 長さ

        |XCHARACTER 長さ

        |PACKED 〔DECIMAL FIXED〕 整数部桁数〔,小数部桁数〕

        |INTEGER}

(f)

      TYPE データ種別1,データ種別2〔,データ種別3〕

      〕…

(g)

     〔FUNCTION

        〔REFER {USE|NOUSE}〕

        〔ADD {USE|NOUSE}〕※3

        〔UPDATE {USE|NOUSE}〕※4

        〔ERASE {USE|NOUSE}〕

        〔ALLERASE {USE|NOUSE}〕

      〕

(h)

     〔RECORDID レコード識別コード〕

 …

(i)

 SET 親子集合型名

(j)

   OWNER 親レコード型名

(k)

   ORDER {LAST|SORTED DUPLICATES PROHIBITED}

(l)

   MEMBER 子レコード型名

(m)

   INSERTION AUTOMATIC

(n)

   RETENTION FIXED

(o)

   〔KEY {ASCENDING|DESCENDING} 構成要素名〕

(p)

     〔SETOPTION

(q)

       〔OCCURRENCE NUMBER 一連番号の最大値

(r)

         〔WARNING {一連番号使用比率1

                〔,一連番号使用比率2

                〔,一連番号使用比率3〕〕|0}〕

(s)

         〔REUSE {YES|NO}〕

        〕

      〕

 …

(t)

 〔SDBOPTION

×

(u)

   〔FUNCTION

      〔REFER {USE|NOUSE}〕

      〔ADD {USE|NOUSE}〕※3

      〔UPDATE {USE|NOUSE}〕※4

      〔ERASE {USE|NOUSE}〕

      〔ALLERASE {USE|NOUSE}〕

      〔DBLODUTL {USE|NOUSE}〕※5

      〔FORMAT {USE|NOUSE}〕

    〕

(v)

   〔TAMMODE {NONPROTECTED RETRIEVE|SHARED RETRIEVE}〕

(w)

   〔OCCURRENCE WARNING {一連番号使用比率1

                    〔,一連番号使用比率2

                    〔,一連番号使用比率3〕〕|0}〕

×

  〕

(x)

END SCHEMA

×

(凡例)

○:*ALTER DICTIONARY文の実行時に追加できるオペランドです。

×:*ALTER DICTIONARY文の実行時に追加できないオペランドです。

注※1

*ALTER DICTIONARY文実行時のオペランド追加可否です。

注※2

最下位の子レコード型の追加とその親子集合の追加ができます。

RECORD句とSET句は必ず両方指定してください。どちらか片方だけを指定することはできません。

注※3

省略値については,「表11-43 ADD句の省略値(4V AFMのSDBデータベースの場合)」を参照してください。

注※4

省略値については,「表11-44 UPDATE句の省略値(4V AFMのSDBデータベースの場合)」を参照してください。

注※5

省略値については,「表11-52 DBLODUTL句の省略値(4V AFMのSDBデータベースの場合)」を参照してください。

参考

SDBOPTION句下のREADYMODE句の指定は無視されるため,バージョン09-66のマニュアルから,上記の形式にREADYMODE句は記載していません。READYMODE句を指定したままでもエラーにはなりません。また,READYMODE句の指定値によってシステムの動作が変わることはありません。

(3) 定義句の指定順序

SDBデータベース定義の定義句の指定順序には,次に示す規則があります。

(4) *ALTER DICTIONARY文によるSDBデータベースの定義変更

*ALTER DICTIONARY文によるSDBデータベースの定義変更は,最下位の子レコード型の追加とその親子集合の追加ができます。子レコード型を追加できる位置と追加できない位置の例については「図11-12 子レコード型を追加できる位置と追加できない位置」を参照してください。

なお,*ALTER DICTIONARY文では,既存のレコード型の定義は変更できません。

*ALTER DICTIONARY文によるSDBデータベースの定義変更の例を次の図に示します。

図11‒16 *ALTER DICTIONARY文によるSDBデータベースの定義変更の例(4V AFMのSDBデータベースの場合)

[図データ]

[図データ]

[図データ]

*ALTER DICTIONARY文で実行できるSDBデータベースの定義変更を次の表に示します。

表11‒37 *ALTER DICTIONARY文で実行できるSDBデータベースの定義変更

定義名

定義変更の内容

説明

SDBデータベース定義

レコード型の追加(RECORD句の追加)

次に示す条件をすべて満たす場合にレコードを追加できます。

  • 追加するレコード型が子レコード型である。

  • 仮想ルートレコード型の構成要素に,データ種別がK,Rの構成要素がある。

  • 仮想ルートレコード型で管理している子レコード用の管理領域の予備領域がある(子レコード型を追加しても問題ないだけの予備領域がある)。

また,次に示す定義の追加または変更を行う必要があります。

  • 仮想ルートレコード型を親レコード型,追加するレコード型を子レコード型とする親子集合を追加する。

  • SDBデータベース格納定義のKEYDEF句およびDATA句を追加し,データ種別がK,Rの構成要素に対応するキー値と格納レコード名を指定する。

  • SDBデータベース格納定義のSTORAGE RECORD句を追加し,対応する格納レコード名を指定する。

親子集合の追加(SET句の追加)

追加した子レコード型の親子集合を追加できます。

仮想ルートレコード型を親レコード型とし,追加するレコード型を子レコード型とする親子集合を追加してください。

SDBデータベース格納定義

格納レコードの追加(STORAGE RECORD句の追加)

SDBデータベース定義で子レコード型を追加した場合に,対応する格納レコード名を追加します。子レコード型を追加していない場合に,格納レコード名だけを追加することはできません。

なお,追加した子レコード型にデータ種別がK,Nの構成要素が存在する場合は,K,NまたはU,Kの構成要素数分の二次インデクスを追加してください。二次インデクスの追加に伴い,二次インデクスを格納するRDエリアを追加できます。

格納親子集合の追加(SET句の追加)

子レコード型を追加する際に追加する親子集合に対応する格納親子集合を追加できます。子レコード型を追加しないで,格納親子集合だけを追加することはできません。

キー値の追加(KEYDEF句の追加)

■4V DAM,4V TAM,4V SAMのSDBデータベースの場合

次に示す条件をすべて満たす場合は,追加する子レコード型ごとに,それぞれ1個以上のデータベースキーを追加できます。

  • KEYDEF句の構成要素に対応するSDBデータベース定義の構成要素のデータ種別がK,Rの場合

  • 定義変更によって子レコード型を追加する場合

■4V MAMのSDBデータベースの場合

次に示す条件をすべて満たす場合は,追加する子レコード型ごとに,それぞれ1個のデータベースキーを追加できます。

  • KEYDEF句の構成要素に対応するSDBデータベース定義の構成要素のデータ種別がK,Rの場合

  • 定義変更によって子レコード型を追加する場合

(5) オペランドの説明

SDBデータベース定義の各オペランドの指定内容を説明します。

(a) SCHEMA

SCHEMA SDBデータベース名

〜<識別子>((1〜30バイト))

SDBデータベースのSDBデータベース名を指定します。

すでに使用しているSDBデータベース名は指定できません。

(b) DBTYPE

DBTYPE 4V {DAM|MAM|TAM|SAM}

定義するSDBデータベースのSDBデータベース種別を指定します。

DAM

SDBデータベース種別が4V DAMのSDBデータベースを定義する場合に指定します。

MAM

SDBデータベース種別が4V MAMのSDBデータベースを定義する場合に指定します。

TAM

SDBデータベース種別が4V TAMのSDBデータベースを定義する場合に指定します。

SAM

SDBデータベース種別が4V SAMのSDBデータベースを定義する場合に指定します。

4V DAM,4V MAM,4V TAM,または4V SAMのSDBデータベースとは,階層構造を持たないデータベースで,メインフレームのTMS-4V/SPがサポートしているDAM,MAM,TAM,またはSAMのデータベースに相当します。詳細については,「2.3.3 SDBデータベース」を参照してください。

注意事項

SDBデータベース種別が4V(4V FMBまたは4V AFM)のSDBデータベースとSD FMBのSDBデータベースをシステム内で混在して定義することはできません。混在させた場合,動作を保証しません。

(c) RECORD

RECORD レコード型名

〜<識別子>((1〜30バイト))

レコード型名を指定します。

《規則》
  • レコード型名は,同一スキーマ内で一意になるように指定してください。

  • 1つのSDBデータベース定義内で指定できるRECORD句は,2〜128個です。

(d) レベル番号,ITEM

{レベル番号│ITEM} 構成要素名

構成要素に関する情報を指定します。1つのRECORD句内での構成要素の階層レベルを指定します。

  • すべての構成要素が基本項目の場合,ITEMを指定できます。

  • 1つのレコード型内で,レベル番号とITEMは同時に指定できません。

データベースにアクセスするためのAPIで「DBKEY」の名称を利用するため,構成要素名として「DBKEY」を指定する必要があります。指定方法の詳細については,「表11-41 仮想ルートレコード型の構成要素の指定」〜「表11-42 子レコード型(2階層)の構成要素の指定」を参照してください。

レベル番号

〜<符号なし整数>((2〜49))

1つのRECORD句内での構成要素の階層レベルを指定します。

階層が深くなるに従ってレベル番号を増やすように指定してください。レベル番号は連続した値である必要はありません。

階層が浅くなるときは,すでに指定したレベル番号にしてください。

ITEM

すべての構成要素が基本項目の場合に指定できます。

構成要素名

〜<識別子>((1〜30バイト))

構成要素名を指定します。

《規則》

  • 構成要素名は,RECORD句内で一意にしてください。

  • RECORD句内に指定できる構成要素の合計長は最大30,000バイトです。また,RECORD句内に指定できる構成要素の個数は最大30,000個です。

  • 各レコード型の最初の基本項目の構成要素のデータ種別1には,Dを指定してください。

  • 上位レコードのキーの構成要素,および一連番号の構成要素は,下位レコードの構成要素として,データ型とデータ種別を同じように指定してください。

  • ユーザデータ(データ種別1,2(TYPE U,D))の構成要素は,幾つかの構成要素をまとめて,ユーザ任意の集団項目内に指定できます。

    ユーザキー(データ種別1,2(TYPE U,K)),ユーザファイル通番(データ種別1,2(TYPE U,F))の構成要素は,集団項目内に指定できません。

(e) データ型

{CHARACTER 長さ

│XCHARACTER 長さ

│PACKED 〔DECIMAL FIXED〕 整数部桁数〔,小数部桁数〕

│INTEGER}

構成要素のデータ型を指定します。構成要素に指定できるデータ型を次の表に示します。

表11‒38 構成要素に指定できるデータ型

データ種別

データ型

データ形式

文字列

CHARACTER

固定長文字列

16進形式の文字列

XCHARACTER

16進固定長文字列

数値

PACKED 〔DECIMAL FIXED〕

符号付きパック形式10進データ

INTEGER

整数

CHARACTER 長さ

〜<符号なし整数>((1〜30,000))

文字列データの長さを指定します。

XCHARACTER 長さ

〜<符号なし整数>((1〜30,000))

16進形式の文字列データの長さを指定します。

PACKED 〔DECIMAL FIXED〕 整数部桁数〔,小数部桁数〕

整数部桁数

  〜<符号なし整数>((0〜38))

小数部桁数

  〜<符号なし整数>((0〜38))

符号付きパック形式の10進データの整数部桁数,および小数部桁数を指定します。

整数部桁数と小数部桁数の和は,1〜38になるようにしてください。

INTEGER

値の範囲が-2,147,483,648〜2,147,483,647の整数を指定します。長さは指定できません。

《規則》
  • 一連番号の構成要素には,必ずINTEGERを指定してください。

  • 基本項目の場合,データ型およびTYPE句を指定してください。

  • 集団項目の場合,データ型およびTYPE句を省略してください。

  • KEYDEF句に指定する構成要素については,データの長さを1〜30バイトで指定してください。KEYDEF句については,「11.6.2(3)(u) KEYDEF」を参照してください。

(f) TYPE

TYPE データ種別1,データ種別2〔,データ種別3〕

構成要素のデータ種別を指定します。

データ種別1

〜<英字>((1バイト))

データベースキーかユーザデータかを区別するための種別を指定します。

データ種別2

〜<英字>((1バイト))

データ種別1をさらに分類するための詳細な種別を指定します。

データ種別3

〜X'<16進数字>'((2バイト))

{X'ユーザ情報'│X'0000'}

ユーザ情報を指定します。

TYPE句で指定するデータ種別の指定値と意味を次の表に示します。

表11‒39 データ種別の指定値と意味

データ種別

指定値

意味

データ種別1

D

データベース名称を識別する構成要素

K

データベースキーで,次に該当する場合の構成要素

  • データベースキー

  • 上位レコードの一連番号

  • 自レコードの一連番号(一連番号の最大値(OCCURRENCE NUMBER句の指定)が1以上の場合)

N

自レコードの一連番号(一連番号の最大値(OCCURRENCE NUMBER句の指定)が0の場合)

U

ユーザデータ

データ種別2

A※1

RDエリア分割キーとする構成要素(SDBデータベースを横分割する際,レコードの格納RDエリアを決める構成要素)

R※2

レコード分割キーとする構成要素

M※3

AかつRの構成要素

N

自レコードの一連番号の構成要素

  • データ種別1がKの場合,一連番号属性あり

  • データ種別1がNの場合,一連番号属性なし

L

そのほかのデータベースキーの構成要素

F

ユーザファイル通番の構成要素

K

ユーザキーの構成要素

D

そのほかのユーザデータの構成要素

データ種別3

2バイトの16進数字

ユーザが独自に設定する属性

注※1

データ種別1がDの場合,SDBデータベースの横分割がされていないことを示します。

注※2

データ種別1がDの場合,レコード分割がされていないことを示します。

注※3

データ種別1がDの場合,SDBデータベースの横分割およびレコード分割がされていないことを示します。

《規則》

共通の規則

  • D,K,N,Uの順に,必要な種別を指定してください。

  • ユーザデータのあとにデータベースキーを指定することはできません。

  • レコード型の先頭にデータ種別1がDの構成要素を指定してください。

  • 子レコード型が1つのときはデータ種別1がKかつ,データ種別2がMの構成要素を指定できません。

  • 子レコード型が2つ以上のときは,データ種別1がKかつ,データ種別2がRまたはMの構成要素の指定が必要になります。

4V MAMのSDBデータベースの規則

  • データ種別2がKの構成要素を子レコード型に指定してください。

  • データ種別1がK,かつデータ種別2がAの構成要素に対して,2つ以上のRDエリア分割キー値を指定できません。

4V TAMのSDBデータベースの規則

  • データ種別2がKの構成要素を子レコード型に指定してください。

  • データ種別1がK,かつデータ種別2がA,Mの構成要素は指定できません。

4V DAMのSDBデータベースの規則

  • データ種別2がKの構成要素は子レコード型には指定できません。

4V SAMのSDBデータベースの規則

  • データ種別2がKの構成要素は子レコード型には指定できません。

  • データ種別1がK,かつデータ種別2がA,Mの構成要素は指定できません。

そのほかの規則

  • データ種別1がK,かつデータ種別2がA,Mの構成要素は,仮想ルートレコード型と子レコード型で同一名称にしてください。

  • データ種別1がK,かつデータ種別2がA,Mの構成要素は,データの長さを1〜30バイトの範囲で指定してください。

  • RECORD句内では,データ種別1の指定に関係なく,データ種別2がA,R,またはMの構成要素は,それぞれ最大1つ指定できます。

  • RECORD句内では,データ種別1の指定に関係なく,データ種別2がMの構成要素を指定した場合,データ種別2がA,Rの構成要素は指定できません。

  • データ種別1がK,かつデータ種別2がNの場合,一連番号属性があります。OCCURRENCE NUMBER句には1以上を指定するか,または指定を省略してください。

  • データ種別1がN,かつデータ種別2がNの場合,一連番号属性がありません。OCCURRENCE NUMBER句には0を指定してください。

  • データ種別2がFの構成要素はレコード型内の最後の構成要素に1つだけ指定できます。

  • データ種別2がKの構成要素は1レコード型に最大1つのユーザキーを指定できます。

  • データ種別1がK,かつデータ種別2がMの構成要素を指定した場合,*ALTER DICTIONARY文によるSDBデータベースの定義変更はできません。

  • 構成要素のデータ種別1,データ種別2,データ種別3で指定できる組み合わせを次の表に示します。

    表11‒40 データ種別1,データ種別2,データ種別3で指定できる組み合わせ

    データ種別1

    データ種別2

    データ種別3

    D

    L

    A

    R

    M

    K

    L

    A※1

    R

    M※1

    N※2

    N

    N※3

    U

    D

    F※4

    K※5,※6

    (凡例)

    ○:指定あり

    −:指定なし

    注※1

    4V TAMまたは4V SAMのSDBデータベースの場合は指定できません。

    注※2

    OCCURRENCE NUMBER句は省略するか,または1以上を指定してください。

    注※3

    OCCURRENCE NUMBER句には0を指定してください。

    注※4

    レコード型内で最後に1つだけ指定できます。

    注※5

    フォーマットライト機能は使用できません。FUNCTION句のFORMATを省略するか,NOUSEを指定してください。

    注※6

    レコード型内で最大1つだけ指定できます。

  • 仮想ルートレコード型と子レコード型の構成要素の指定を次の表に示します。指定順序や指定する個数,データ種別の組み合わせに誤りがある場合は,エラーとなります。なお,1つの項番の中で基本項目と集団項目を複数指定できる場合,指定順序は任意です。

    表11‒41 仮想ルートレコード型の構成要素の指定

    指定順

    項目

    説明

    データ種別

    1

    2

    3

    1

    データベースキー1

    データベース名称を識別する構成要素名

    • 構成要素名を「DBKEY」以外とします。

    • レコードの先頭の構成要素として指定します。

    • 基本項目として指定します。

    D

    L

    A

    R

    個数

    1

    M

    2

    データベースキー2〜7※4

    構成要素名

    • 構成要素名を「DBKEY」以外とします。

    • データベースキー2〜7を,基本項目として指定します。

    K

    L

    A※1

    R※3

    個数

    0〜6

    M※1,※2,※3

    (凡例)

    −:該当しません。

    注※1

    4V TAMまたは4V SAMのSDBデータベースの場合,指定するとエラーになります。

    注※2

    子レコード型が1つの場合,指定するとエラーになります。

    注※3

    子レコード型が2つ以上の場合,データ種別1がK,かつデータ種別2がRまたはMの構成要素がないとエラーになります。

    注※4

    一連番号の最大値(OCCURRENCE NUMBER句の指定値)が0の場合,データベースキー2〜7が最低1つ必要です。

    表11‒42 子レコード型(2階層)の構成要素の指定

    指定順

    項目

    説明

    データ種別

    1

    2

    3

    1

    データベースキー1

    データベース名称を識別する構成要素名

    仮想ルートレコード型で指定したデータベースキー1(データベースを識別する構成要素名)を,基本項目として指定します。

    D

    L

    個数

    1

    A

    R

    M

    2

    「DBKEY」の構成要素名

    次のどちらかの場合,構成要素名「DBKEY」の集団項目を指定します。

    • データベースキー2〜7がある。

    • 一連番号の最大値(OCCURRENCE NUMBER句の指定値)が1以上である。

    3

    データベースキー2〜7

    構成要素名

    仮想ルートレコード型で指定したデータベースキー2〜7を集団項目「DBKEY」下の基本項目として指定します。

    K

    L

    A

    R

    個数

    0〜6

    M

    4

    一連番号

    OCCURRENCE NUMBER句の指定値が1以上の場合

    集団項目「DBKEY」下の基本項目として指定します。

    K

    N

    OCCURRENCE NUMBER句の指定値が0の場合

    • 構成要素名を「DBKEY」以外とします。

    • 基本項目として指定します。

    N

    N

    5

    ユーザデータの構成要素名

    ユーザデータの構成要素名を指定します。

    U

    D

    K

    F

    (凡例)

    −:該当しません。

    注※

    集団項目「DBKEY」下の基本項目として指定するとエラーになります。

(g) FUNCTION

FUNCTION

〔REFER {USE|NOUSE}〕

〔ADD {USE|NOUSE}〕※1

〔UPDATE {USE|NOUSE}〕※2

〔ERASE {USE|NOUSE}〕

〔ALLERASE {USE|NOUSE}〕

注※1

省略値については,「表11-43 ADD句の省略値(4V AFMのSDBデータベースの場合)」を参照してください。

注※2

省略値については,「表11-44 UPDATE句の省略値(4V AFMのSDBデータベースの場合)」を参照してください。

SDBデータベースへのアクセス属性を指定します。

SDBデータベースへのアクセス属性は,SDBOPTION句下のFUNCTION句でも指定できます。RECORD句内で指定する場合は,各RECORD句にアクセス属性が指定できます。指定を省略した場合は,SDBOPTION句下のFUNCTION句の指定値,または省略値が仮定されます。

REFER

レコードの検索を許可するかどうかを指定します。

USE:レコードの検索を許可します。

NOUSE:レコードの検索を許可しません。

ADD

レコードの追加を許可するかどうかを指定します。

USE:レコードの追加を許可します。

NOUSE:レコードの追加を許可しません。

表11‒43 ADD句の省略値(4V AFMのSDBデータベースの場合)

SDBデータベース種別

レコード型の指定条件

RECORD句下のFUNCTION句が省略された場合

SDBOPTION句下のFUNCTION句が省略された場合

仮想ルートレコード型

仮想ルートレコード型以外

4V AFM

USE

SDBOPTION句下のFUNCTION句の指定値,または省略値

NOUSE

UPDATE

レコードの更新を許可するかどうかを指定します。

USE:レコードの更新を許可します。

NOUSE:レコードの更新を許可しません。

表11‒44 UPDATE句の省略値(4V AFMのSDBデータベースの場合)

SDBデータベース種別

レコード型の指定条件

RECORD句下のFUNCTION句が省略された場合

SDBOPTION句下のFUNCTION句が省略された場合

仮想ルートレコード型

仮想ルートレコード型以外

4V DAM

4V MAM

4V TAM

USE

SDBOPTION句下のFUNCTION句の指定値,または省略値

USE

4V SAM

USE

SDBOPTION句下のFUNCTION句の指定値,または省略値

NOUSE

ERASE

レコードの削除を許可するかどうかを指定します。

USE:レコードの削除を許可します。

NOUSE:レコードの削除を許可しません。

ALLERASE

レコードの一括削除を許可するかどうかを指定します。

USE:レコードの一括削除を許可します。

NOUSE:レコードの一括削除を許可しません。

《規則》
  • SDBデータベース種別ごとの,仮想ルートレコード型に対するFUNCTION句の指定可否を次の表に示します。

    表11‒45 仮想ルートレコード型に対するFUNCTION句の指定可否

    SDBデータベース種別

    RECORD句下のFUNCTION句の指定

    REFER句

    ADD句

    UPDATE句

    ERASE句

    ALLERASE句

    U

    N

    省略

    U

    N

    省略

    U

    N

    省略

    U

    N

    省略

    U

    N

    省略

    4V DAM

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    4V MAM

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    4V TAM

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    4V SAM

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    ×

    (凡例)

    U:USE指定

    N:NOUSE指定

    ○:指定できます。

    ×:指定できません。

    注※

    次の値が仮定されます。

    REFER:USE

    ADD:USE

    UPDATE:USE

    ERASE:NOUSE

    ALLERASE:NOUSE

  • SDBデータベース種別ごとの,子レコード型に対するFUNCTION句の指定可否を次の表に示します。

    表11‒46 子レコード型に対するFUNCTION句の指定可否

    SDBデータベース種別

    RECORD句下のFUNCTION句の指定

    REFER句

    ADD句

    UPDATE句

    ERASE句

    ALLERASE句

    U

    N

    省略

    U

    N

    省略

    U

    N

    省略

    U

    N

    省略

    U

    N

    省略

    4V DAM

    ×

    4V MAM

    ×

    ×

    4V TAM

    ×

    ×

    ×

    ×

    4V SAM

    ×

    ×

    ×

    (凡例)

    U:USE指定

    N:NOUSE指定

    ○:指定できます。

    ×:指定できません。

    注※

    SDBOPTION句下のFUNCTION句の指定値,または省略値が仮定されます。

(h) RECORDID

RECORDID レコード識別コード

〜X'<16進数字>'((2バイト))

レコード型を識別するコードとして,レコード識別コードを指定します。

《規則》
  • レコード識別コードを2バイトで指定します。

  • X'0000'以外は重複できません。

  • 仮想ルートレコード型に対しては,このオペランドは指定できません。

  • 4V MAMのSDBデータベースの子レコード型に対しては,このオペランドを必ず指定してください。

(i) SET

SET 親子集合型名

〜<識別子>((1〜30バイト))

親子集合型名を指定します。

《規則》
  • 親子集合型名は,SDBデータベース定義内で一意にしてください。

  • 仮想ルートレコード型の数は1つにしてください。

  • 親レコードから子レコードへの親子集合型をたどった場合に,元のレコードにたどり着くような親子集合型は定義できません。

  • 1つのSDBデータベース定義内に指定できる親子集合型数は,1〜127個です。指定できる親子集合の階層は,2です。

(j) OWNER

OWNER 親レコード型名

〜<識別子>((1〜30バイト))

親子集合の親レコード型名を指定します。

《規則》

親レコード型名には,RECORD句で定義したレコード型名を指定してください。

(k) ORDER

ORDER {LAST│SORTED DUPLICATES PROHIBITED}

APIによるレコードの格納時(STORE),HiRDB/SDデータベース作成ユティリティ(pdsdblod),またはHiRDB/SDデータベースアクセスユティリティ(pdsdbexe)で,子レコード実現値を親子集合内の任意の実現値に格納する際の位置(親子集合内の子レコードへの挿入順序)を指定します。

LAST

子レコード実現値群の最後に格納します。

SORTED DUPLICATES PROHIBITED

子レコード型で指定したキー項目(KEY句に指定した構成要素)の値に従って,昇順または降順に格納します。

同じ親レコードに対して,同じ値のキー項目を持つ子レコードが格納済みの場合,格納できません。

データ種別1,2(TYPE U,K)を指定している場合は,SORTED DUPLICATES PROHIBITEDを指定してください。それ以外の場合は,LASTを指定してください。

《規則》

1つのSET句の指定には,必ずORDER句を指定してください。

(l) MEMBER

MEMBER 子レコード型名

〜<識別子>((1〜30バイト))

親子集合内の子レコード型名を指定します。

《規則》
  • 子レコード型名には,RECORD句で定義したレコード型名を指定してください。ただし,親子集合の親レコード型名と重複する子レコード型名は指定できません。

  • 1つのSET句には,必ずMEMBER句を指定してください。

(m) INSERTION

INSERTION AUTOMATIC

子レコードを親子集合に格納するときの挿入方法を指定します。

AUTOMATIC

子レコードのレコード実現値がデータベースに格納されると,自動的に親レコードが属する親子集合型の親子集合実現値に格納されます。

(n) RETENTION

RETENTION FIXED

子レコードを親子集合から切り離すまでの属性を指定します。

FIXED

レコードが,ある親子集合の子レコードになったレコードは,データベースから削除されるまで,その親子集合の子レコードでなければなりません。

(o) KEY

KEY {ASCENDING│DESCENDING} 構成要素名

ORDER句でSORTED DUPLICATES PROHIBITEDを指定した親子集合の子レコードを構成要素の値に従って,昇順に格納するか,または降順に格納するかを指定します。指定した構成要素をキー項目とします。

ASCENDING

子レコードを昇順に格納します。

DESCENDING

子レコードを降順に格納します。

構成要素名

〜<識別子>((1〜30バイト))

格納時のキーになる構成要素名を指定します。

《規則》
  • キーの構成要素長は254バイト以内としてください。

  • 構成要素名に,集団項目の構成要素名は指定できません。

  • 指定できる構成要素は,データ種別1がユーザデータ(U),データ種別2がユーザキー(K)の構成要素だけです。

  • 構成要素名には,RECORD句で定義した構成要素名を指定してください。

  • 1つのKEY句に構成要素名を2つ以上指定できません。

  • ORDER句でLASTを指定した場合,KEY句は指定できません。

  • ORDER句でSORTED DUPLICATES PROHIBITEDを指定した場合,必ずKEY句を指定してください。

(p) SETOPTION

SETOPTION

親子集合に関するオプションを指定します。

(q) OCCURRENCE NUMBER

OCCURRENCE NUMBER 一連番号の最大値

〜<符号なし整数>((0〜2,147,483,647))≪30,000≫

一連番号の最大値を指定します。

0を指定した場合,非オカレンスであることを示します。

FUNCTION句下のFORMAT句にUSEを指定した場合(フォーマットライト機能を使用する場合),KEYDEF句の組み合わせ数×OCCURRENCE NUMBER句の指定値分のレコードが作成されます。このため,この句の値が大きいと,フォーマットライトに時間が掛かるため,注意してください。

《規則》
  • 構成要素のデータ種別1,2の指定がN,Nの場合,OCCURRENCE NUMBER句に0以外を指定,または省略することはできません。

  • 構成要素のデータ種別1,2の指定がK,Nの場合,0は指定できません。

  • 1つのSDBデータベース定義内で一連番号の最大値の値に0と1以上(OCCURRENCE NUMBER句の指定を省略する場合も含む)を混在させることはできません。

  • WARNING句またはREUSE句を指定する場合は,この句も指定する必要があります。

(r) WARNING

WARNING {一連番号使用比率1〔,一連番号使用比率2〔,一連番号使用比率3〕〕|0}

一連番号の使用状況を監視する場合に,一連番号の使用比率を%単位で指定します。

一連番号使用比率1,一連番号使用比率2,一連番号使用比率3

〜<符号なし整数>((50〜99))

割り当て済み一連番号の割合が一連番号使用比率1〜3で指定した値に達した場合に,メッセージを1回ずつ出力します。0を指定した場合は,割り当て済みの一連番号の監視をしません。

注※ 監視値=↑一連番号の最大値×一連番号使用比率n↑

この句とSDBOPTION句下のOCCURRENCE WARNING句の両方を指定した場合,この句での指定が有効となります。この場合,一連番号使用比率の指定値の個数が異なっていても,双方で補ってメッセージを出力することはありません。

OCCURRENCE NUMBER句の指定が0で,この句を省略した場合,割り当て済みの一連番号の監視をしません。

OCCURRENCE NUMBER句の指定が0以外で,この句を省略した場合,SDBOPTION句下のOCCURRENCE WARNING句の指定が有効となります。

SDBOPTION句下のOCCURRENCE WARNING句も省略した場合,割り当て済みの一連番号の監視をしません。

一度に複数の一連番号使用比率に達した場合は,対応するメッセージがすべて出力されます。例えば,WARNING句の指定を60,70,80とした場合に,1回目のレコードの格納で75%に達した場合は,指定値60と70に対応するメッセージが出力されます。

一連番号の最大値が小さいと,重複指定でなくても内部的に重複指定と同じような扱いになる場合があります。例えば,OCCURRENCE NUMBER句が10,WARNING句が97,98,99と定義した場合,どの指定値も割り当て済み一連番号が10になった時点で,97(%)と98(%)と99(%)に対応するメッセージが出力されます。

一連番号の監視については,「5.25 一連番号の監視」を参照してください。

《規則》

  • 4V TAMのSDBデータベースの場合は指定できません。

  • 一連番号使用比率を複数指定する場合,指定値が昇順になるように指定してください。

  • SDBOPTION句下のFUNCTIONでFORMAT USEを指定している場合は指定できません。

  • OCCURRENCE NUMBER句との組み合わせ可否を次の表に示します。

    表11‒47 SETOPTION句下のOCCURRENCE NUMBER句とWARNING句の組み合わせ可否

    SETOPTION句下のOCCURRENCE NUMBER句の指定

    SETOPTION句下のWARNING句の指定

    0以外

    0

    0以外

    0

    ×

    (凡例)

    ○:WARNING句が指定できます。

    ×:WARNING句は指定できません。

    表11‒48 SETOPTION句下のOCCURRENCE NUMBER句とSDBOPTION句下のOCCURRENCE WARNING句の組み合わせ可否

    SETOPTION句下のOCCURRENCE NUMBER句の指定

    SDBOPTION句下のOCCURRENCE WARNING句の指定

    0以外

    0

    すべて0以外

    一部0

    すべて0

    ×

    (凡例)

    ○:OCCURRENCE WARNING句が指定できます。

    ×:OCCURRENCE WARNING句は指定できません。

  • FUNCTION句のADD指定との組み合わせとレコードの追加可否を次の表に示します。

    表11‒49 FUNCTION句のADD指定との組み合わせとレコードの追加可否

    SDBデータベース種別

    SDBOPTION句下のFUNCTION句のADD指定

    省略

    U

    N

    子レコードのFUNCTION句のADD指定

    省略

    U

    N

    省略

    U

    N

    省略

    U

    N

    4V DAM

    4V MAM

    4V SAM

    ×

    ×

    ×

    ×

    ×

    4V TAM

    ×

    ×

    ×

    ×

    (凡例)

    U:USE指定

    N:NOUSE指定

    ○:レコードの指定ができます。

    ×:レコードの指定ができません。

    −:該当しません。

  • 子レコードへの追加可否との組み合わせを次の表に示します。

    表11‒50 子レコードへの追加可否とWARNING句の組み合わせ可否

    子レコードへの追加

    SETOPTION句下のWARNING句の指定

    0以外

    0

    できる

    できない

    ×

    (凡例)

    ○:WARNING句が指定できます。

    ×:WARNING句は指定できません。

    表11‒51 子レコードへの追加可否とSDBOPTION句下のOCCURRENCE WARNING句の組み合わせ可否

    子レコードへの追加

    SDBOPTION句下のOCCURRENCE WARNING句の指定

    0以外

    0

    すべての子レコードに対してできる

    一部の子レコードに対してできる

    すべての子レコードに対してできない

    ×

    (凡例)

    ○:OCCURRENCE WARNING句が指定できます。

    ×:OCCURRENCE WARNING句は指定できません。

(s) REUSE

REUSE {YES│NO

削除された一連番号を再利用するかどうかを指定します。

レコードを一括削除した場合,または全件削除した場合は,REUSE句の指定に関係なく,最初から一連番号を振り直します。

YES

一連番号を再利用します。

4V DAMまたは4V SAMのSDBデータベースで,ALLERASE句にUSEを指定した場合に,一連番号を再利用できます。

なお,OCCURRENCE NUMBER句に0を指定してもエラーにはなりません。

ORDER句でSORTED DUPLICATES PROHIBITEDを指定した場合は指定できません。

NO

削除された一連番号を再利用しません。

一連番号の再利用の例については,「図11-14 一連番号再利用の例」を参照してください。

(t) SDBOPTION

SDBOPTION

SDBデータベースのオプション機能を定義します。

(u) FUNCTION

FUNCTION

〔REFER {USE|NOUSE}〕

〔ADD {USE|NOUSE}〕※1

〔UPDATE {USE|NOUSE}〕※2

〔ERASE {USE|NOUSE}〕

〔ALLERASE {USE|NOUSE}〕

〔DBLODUTL {USE|NOUSE}〕※3

〔FORMAT {USE|NOUSE}〕

注※1

省略値については,「表11-43 ADD句の省略値(4V AFMのSDBデータベースの場合)」を参照してください。

注※2

省略値については,「表11-44 UPDATE句の省略値(4V AFMのSDBデータベースの場合)」を参照してください。

注※3

省略値については,「表11-52 DBLODUTL句の省略値(4V AFMのSDBデータベースの場合)」を参照してください。

SDBデータベースへのアクセス属性を指定します。

REFER句,ADD句,UPDATE句,ERASE句,ALLERASE句の説明については,「11.6.1(5)(g) FUNCTION」を参照してください。

DBLODUTL

HiRDB/SDデータベース作成ユティリティ(pdsdblod)のデータロード機能の実行を許可するかどうかを指定します。

USE:HiRDB/SDデータベース作成ユティリティ(pdsdblod)のデータロード機能の実行を許可します。

NOUSE:HiRDB/SDデータベース作成ユティリティ(pdsdblod)のデータロード機能の実行を許可しません。

表11‒52 DBLODUTL句の省略値(4V AFMのSDBデータベースの場合)

SDBデータベース種別

FUNCTION句下のADD句の指定

USE

NOUSE

4V DAM

NOUSE

NOUSE

4V MAM

4V SAM

NOUSE

USE

4V TAM

USE

(凡例)

−:4V TAMのSDBデータベースの場合,ADD句にUSEは指定できません。

FORMAT

HiRDB/SDデータベース作成ユティリティ(pdsdblod)のフォーマットライト機能の実行を許可するかどうかを指定します。

SET句下のOCCURRENCE NUMBER句の指定値が大きいとフォーマットライトに時間が掛かるため,注意してください。

USE:HiRDB/SDデータベース作成ユティリティ(pdsdblod)のフォーマットライト機能の実行を許可します。

NOUSE:HiRDB/SDデータベース作成ユティリティ(pdsdblod)のフォーマットライト機能の実行を許可しません。

《規則》
  • 4V DAMのSDBデータベースの場合,次の指定をするとデータベースにデータを格納できないため,指定しないでください。

    ・ADD句,DBLODUTL句,およびFORMAT句の指定をすべて省略する。

    ・ADD句,DBLODUTL句,およびFORMAT句にすべてNOUSEを指定する。

  • SDBデータベース種別とSDBOPTION句下のFUNCTION句(ADD句,DBLODUTL句,FORMAT句)の指定の組み合わせ可否を次の表に示します。

    表11‒53 SDBOPTION句下のFUNCTION句の指定の組み合わせ可否

    SDBデータベース種別

    ADD句の指定

    USE

    NOUSE

    DBLODUTL句の指定

    USE

    NOUSE

    USE

    NOUSE

    FORMAT句の指定

    USE

    NOUSE

    USE

    NOUSE

    USE

    NOUSE

    USE

    NOUSE

    4V DAM

    ×

    ×

    4V MAM

    4V SAM

    ×

    ×

    ×

    ×

    ×

    4V TAM

    ×

    ×

    ×

    (凡例)

    ○:指定できます。

    ×:指定できません。

    −:4V TAMのSDBデータベースの場合,ADD句にUSEは指定できません。

    注※

    データベースにデータを格納できない組み合わせの指定のため,指定しないでください。

(v) TAMMODE

TAMMODE {NONPROTECTED RETRIEVE|SHARED RETRIEVE}

4V TAMのSDBデータベースの場合に,TAMのデータベースの無排他検索機能を適用し,ページまたはサブページに排他を掛けないで検索するかどうかを指定します。

この指定は,個別開始時に指定するSDBデータベースを操作するAPIで,排他モード1に'S'(共用モード)を指定した場合に有効となります。

詳細については,「2.9.6 TAMのデータベースの無排他検索機能【4V TAM】」を参照してください。

なお,4V TAMのSDBデータベース以外の場合に,この指定をするとエラーになります。

NONPROTECTED RETRIEVE

TAMのデータベースの無排他検索機能を適用し,4V TAMのSDBデータベースのページまたはサブページに排他を掛けないで検索します。

SHARED RETRIEVE

TAMのデータベースの無排他検索機能を適用しません(共用モードで,4V TAMのSDBデータベースのレコードを検索します)。

(w) OCCURRENCE WARNING

OCCURRENCE WARNING {一連番号使用比率1〔,一連番号使用比率2〔,一連番号使用比率3〕〕

0

一連番号の使用状況を監視する場合に,一連番号の使用比率を%単位で指定します。

一連番号使用比率1,一連番号使用比率2,一連番号使用比率3

〜<符号なし整数>((50〜99))

割り当て済み一連番号の割合が,一連番号使用比率1〜3で指定した値に達した場合に,メッセージを1回ずつ出力します。0を指定した場合,またはこの句を省略した場合は,割り当て済み一連番号の監視はしません。

この指定はすべての子レコード型に対して有効となりますが,SETOPTION句下でWARNING句を指定した場合は,SETOPTION句下のWARNING句の指定が有効となります。この場合,一連番号使用比率の指定値の個数が異なっても,双方で補ってメッセージを出力することはありません。

一連番号の監視については,「5.25 一連番号の監視」を参照してください。

《規則》

  • このオペランドの指定規則については,「(r) WARNING」の規則を参照してください。

(x) END SCHEMA

END SCHEMA

SDBデータベース定義の終了を示します。