JIS X 3004:1987 データベース言語NDL | ページ 2

                                                                                              3
X 3004 - 1987
むならば,を“含んでいる”生成記号とする。
生成記号
が生成記号を含み,かつの最初の展開に現れるならば,>を“直接含む”とする。
この規格の語い単位(例えば,<分離符号>,<キーワード>,<識別子>,<定義>など)は,この
規格の中で別に定義する。次の文字は,それぞれの生成規則の中で特別の意味をもつ。
<拡張識別子>中
”<文字列定数>中
(<注釈>,<条件>,<添字>中
)<注釈>,<条件>,<添字>中
*<注釈>中
+<数値定数>中
−<数値定数>中
<<関係>中
><関係>中
=<構成要素識別子致>,<関係>,<データベースキ等価テスト文>中
E<概数値定数>中
−<識別子>中
・<構成要素識別子>,<構成要素ビュー識別子>,<数値定数>,<サブスキーマ名句>,
<サブスキーマ指定>中

3.3 規約

 この規格の構文要素は,次の項目で規定する。
(1) 機能 : 要素の目的についての短い文
(2) 形式 : 要素の構文のBNF定義
(3) 構文規則 : 要素が満たされなければならない付加的な構文制約であって,BNFでは表せないもの
(4) 一般規則 : 要素の実行時の効果を順番に指定する。
構文規則中で,“(し)なければならない”という用語は,構文上規格に合致するNDL言語に要求
される条件を定義する。形式や構文規則に合致しないNDL言語の取扱いは,処理系作成者の定義に
よる。
規格に合致する処理系は,一般規則で定義される動作を一般規則の順番で実行することは要求され
ないが,データベースに対してこの順番と同じ効果を達成しなければならない。
“永続対象”という用語は,処理系作成者の定義による仕組みで生成され,破壊される<モジュー
ル>や<スキーマ>のような対象を特徴付けるために用いる。

3.4 規格合致性

 この規格は,規格に合致するNDL言語と規格に合致するNDLの処理系を規定する。
規格に合致するNDL言語は,BNF形式や対応する構文規則に従わなければならない。規格に合致するNDL
の処理系は,規格に合致するNDL言語を一般規則に従って処理しなければならない。
規格に合致する処理系は,この規格で規定されていない付加的な機能を提供してもよい。たとえ規格に
合致しないNDL言語を処理したり,規格に合致するNDL言語を規格に合致しない方法で処理したりする
利用者オプションを提供するときでさえも,処理系は,規格合致性を維持している。
この規格は,適用業務プログラムとデータベース管理システム構成要素との結合の方法や時機を定義し
ない。
この規格の水準1に合致する処理系は,“13.水準”で規定される特定の機能を除いて,水準2の規格合

――――― [JIS X 3004 pdf 6] ―――――

4
X 3004 - 1987
致性の要求項目を満たさなければならない。
この規格は,三つの言語を規定し,それらの構文と意味を定義する。データベース管理システムの処理
系作成者は,この規格に対する製品の規格合致性を二つの方法で主張できる。処理系は,これらの言語と
同一の構文を支援し,構文的及び機能的な規格合致性を主張してもよく,又は,同じ概念,意味,機能性
を表すために異なる構文を用い,機能的な規格合致性を主張してもよい。
三つの標準言語のいずれかに対して機能的な規格合致性を主張する処理系は,これらの標準言語の意味
と機能に合った等価な書き方を指定しなければならない。例えば,データベース管理システム表示機能に
よって表示されるスキーマは,標準スキーマ定義言語構文の表現に記号変換できることによって,スキー
マの機能的な等価性を示せることが望ましい。

4. 概念

4.1 データ型

 <データ型 (data type)>は,表現可能な値の集合とする。値の論理的表現は,<定数
(literal)>とする。値の物理的表現は,処理系作成者の定義による。
値は,基本要素とし,この規格において,論理的に分割されることがない。値は,データ項目 (data item)
と配列 (array) の定義の基礎とする。
値は,文字列又は数のいずれかとする。文字列と数は,相互に比較可能な値ではない。

4.1.1 文字列

 文字列は,処理系作成者の定義による文字集合の文字の並び (sequence) からなる。文字
列は長さをもち,その長さは並びの中の文字数を指定する正の整数とする。

4.1.2 数

 数は,真数値 (exact numeric value) 又は概数値 (approximate numeric value) のいずれかとする。
すべての数は,比較可能な値とする。
真数値は,精度 (precision) と位取り (scale) をもつ。精度は,有効十進けた数を決める正の整数とする。
位取りは,符号付き整数とする。位取りが0とは,その数を整数とすることを示す。位取りNに対し,真
数値は,有効数字の整数値に10の−N乗をかけた値とする。
概数値は,仮数 (mantissa) と指数 (exponent) からなる。仮数は符号付き数値とし,指数は仮数の大きさ
を指定する符号付き整数とする。概数値は,精度をもつ。精度は,仮数中の有効十進けた数を指定する正
の整数とする。
真数値が真数値を表すデータ項目又はパラメタに代入されるときはいつでも,その値は相手のデータ型
で正確に表現可能でなければならない。値は,相手の精度と位取りをもつように変換される。
真数値又は概数値が概数値を表すデータ項目又はパラメタに代入されるときはいつでも,その値の近似
は,相手のデータ型で表現される。値は,相手の精度をもつように変換される。

4.2 構成要素

 構成要素 (component) は,データ項目又はデータ項目の配列のいずれかとする。<構成
要素型>は,すべての同じ<データ型>をもつ構成要素の実現値 (occurrence) の集まりを定義する。
データ項目は,一つの値からなる。配列は,データ項目の並びからなる。
配列は<範囲 (extent)>によって指定され,その<範囲>は<符号なし整数>のリストとする。配列に
現れるデータ項目の個数は,<符号なし整数>の積に等しい。配列に含まれないデータ項目は,<構成要
素名>と<データベースキー>によって参照される。配列に含まれるデータ項目は,<構成要素名>,<
データベースキー>及び<添字>によって参照される。
同じ<構成要素型>のすべての値は,同じ<データ型>をもつ。<構成要素型>が配列を定義するなら
ば,各構成要素の実現値は,同じ次元と範囲の整数をもつ配列とする。同じ文字列の構成要素のすべての
文字列は,同じ<長さ>をもつ。同じ真数の構成要素のすべての数は,同じ<精度>と<位取り>をもつ。

――――― [JIS X 3004 pdf 7] ―――――

                                                                                              5
X 3004 - 1987
同じ概数の構成要素のすべての数は,同じ<精度>をもつ。
いずれの<構成要素型>も<レコード型>の一部分として定義される。<構成要素型>は,<データ型
>を指定する。<構成要素型>が配列を定義するならば,それは,<範囲>を指定する。文字列<構成要
素型>は,その文字列の<長さ>を指定する。真数<構成要素型>は,その数の<精度>と<位取り>を
指定する。概数<構成要素型>は,その数の<精度>を指定する。

4.3 レコード

 レコード (record) は,この規格中で操作の基本単位とする。レコードは,格納,消去,
位置決め,変更され,親子集合内で接続,切断,再接続される。
レコードは,構成要素の集まりとする。<レコード型>は,すべて同じ<構成要素型>をもつレコード
実現値の集まりを定義する。<レコード型>は,<構成要素型>を定義し,レコード実現値が満たさなけ
ればならない整合性制約 (integrity constraint) を指定する。
各レコードは唯一の<レコード型>の実現値とし,その<レコード型>によって定義される構成要素だ
けからなる。
各<レコード型>のレコードは,処理系作成者の定義による順序に従って保持される。

4.3.1 データベースキー

 すべてのレコードは,区別することができる。各レコードは,<データベース
キー>により一意に識別される。<データベースキー>は,ナル (null) であってどのレコードも識別しな
いか,又はナルでなくてデータベース中の唯一のレコードを識別するかのいずれかとする。<データベー
スキー>は,どのような論理的表現ももたず,この規格により定義されるどのインタフェースによっても
利用可能でない。<データベースキー>の物理的表現は,処理系作成者の定義による。
<データベースキー>は,セション状態 (session state) 中の位置指示子 (cursor) を表現するため及びデ
ータ操作言語中の文の意味を定義するために用いられる。セション状態中では,<データベースキー>は,
<データベースキー>によって参照される。データ操作言語文中では,<データベースキー>は,<デー
タベースキー識別子>によって参照される。

4.3.2 システムレコード

 この規格は,特殊なSYSTEM<レコード型>の存在を想定する。SYSTEM<
レコード型>は,どのような<構成要素型>や整合性制約をももたず,システムレコードと呼ばれる唯一
の仮想的なレコード実現値をもつ。
この規格は,システムレコードに対する<データベースキー>を規定しない。システムレコードと
SYSTEM<レコード型>は,特異親子集合 (singular set) の定義のためにだけ存在する。

4.4 親子集合型

 <親子集合型(set type)>は,二つ以上の<レコード型>の間で定義された関連とする。
<親子集合型>中では,一つの<レコード型>は,親 (owner) <レコード型>として示され,他の各<
レコード型>は,その<親子集合型>の子 (member) <レコード型>として参照される。
各<親子集合型>に対して,データベース中に0個以上の親子集合がある。
親子集合は,その<レコード型>が親<レコード型>である一つの親レコードと,各レコード型が子<
レコード型>である0個以上の子レコードからなる。
親子集合は,データベース中で,その<親子集合名>とその親レコード実現値によって一意に識別され
る。<親子集合型>の親<レコード型>の実現値がデータベースに格納されるとき,その<親子集合型>
の新しい親子集合が生成される。
<レコード型>の実現値がデータベースに格納されるとき,それは,その<レコード型>が子<レコー
ド型>である各<親子集合型>の高々一つの親子集合に属する。
<親子集合型>の各親子集合の子レコードは,その<親子集合型>の順序基準によって決定される並び
順で保持される。

――――― [JIS X 3004 pdf 8] ―――――

6
X 3004 - 1987

4.4.1 特異親子集合

 特異 (singular) <親子集合型>は,親<レコード型>としてSYSTEMをもつ<親
子集合型>とする。特異親子集合は,特異<親子集合型>の唯一の実現値とする。

4.4.2 再帰親子集合

 再帰 (recursive) <親子集合型>は,同じ<レコード型>を親<レコード型>と子
<レコード型>の双方にもつ<親子集合型>とする。再帰親子集合は,再帰<親子集合型>の実現値とす
る。

4.5 スキーマ

 <スキーマ>は,スキーマ定義言語により指定される永続対象とする。<スキーマ>は,
データベースの論理的な記述とする。<スキーマ>は,<スキーマ名>,<レコード型>記述の集まり及
び<親子集合型>記述の集まりからなる。

4.6 サブスキーマ

 <サブスキーマ>は,サブスキーマ定義言語によって指定される永続対象とする。
<サブスキーマ>は,アクセス<モジュール>が使用可能なデータベースの部分の論理的な記述とする。
<サブスキーマ>は,<サブスキーマ名>,<レコードビュー>の集まり及び<親子集合ビュー>の集ま
りからなる。
<レコードビュー>は,与えられた<レコード型>の使用可能な<構成要素型>を指定する。<親子集
合ビュー>は,使用可能な<親子集合型>を指定する。<レコードビュー>と<親子集合ビュー>は,組
み合わされて各<親子集合型>の使用可能な子<レコード型>を決める。
<レコードビュー>と<親子集合ビュー>は,<構成要素型>,<レコード型>及び<親子集合型>に
対して,それぞれ<構成要素ビュー名>,<レコードビュー名>及び<親子集合ビュー名>の別名を定義
できる。別名は,アクセス<モジュール>にとって,<構成要素型>,<レコード型>及び<親子集合型
>に対してだけ使用可能な名前となる。
アクセス<モジュール>が使用可能なレコードは,処理系作成者の定義による順序 (order) に保持され
る。この順序は,各<レコード型>のレコードの処理系作成者の定義による順序と必ずしも同じでない。

4.7 データベース

 データベースは,<スキーマ>によって定義されるすべてのデータの集まりとする。
それは,各<レコード型>と各<親子集合型>の実現値からなる。各<スキーマ>定義に対して唯一のデ
ータベースがある。

4.8 モジュール

 <モジュール>は,モジュール言語中で指定される永続対象とする。<モジュール>
は,選択可能な<モジュール名>,<言語句>,<サブスキーマ指定>,選択可能な<一時親子集合指定
群>及び一つ以上の<手続>からなる。
適用業務プログラムは,複数のサブプログラムからなり得る実行可能コードの部分とする。一つの<モ
ジュール>は,実行時中は一つの適用業務プログラムと結合する。一つの適用業務プログラムは,複数の
<モジュール>と結合されてはならない。この結合を指定する方法は,処理系作成者の定義による文の実
行の要求を含めて,処理系作成者の定義による。

4.9 手続

 <手続 (procedure)>は,<手続名>,<パラメタ宣言>の並び及びの並びからな
る。
<モジュール>と結合する適用業務プログラムは,その<モジュール>の<手続>を“呼出し (call)”
文によって参照でき,その“呼出し”文は,<手続>の<手続名>を指定し,その手続の<パラメタ宣言
>における個数と<データ型>が一致するパラメタ値の並びを与える。<手続>の呼出しによって,それ
が含むの並びが実行される。
<モジュール>の<サブスキーマ指定>は,<モジュール>によって参照できるレコードや親子集合を
定義する<サブスキーマ>を指定する。
<モジュール>の<一時親子集合指定群(temporary set specifications)>は,<モジュール>によって参照

――――― [JIS X 3004 pdf 9] ―――――

                                                                                              7
X 3004 - 1987
できる一時的な<親子集合型>を定義する。

4.10 標準プログラム言語

 この規格は,特定の標準プログラム言語規格に合致するプログラムから<モ
ジュール>中の<手続>が呼び出されたときのその<手続>の動作を規定する。“標準COBOLプログラ
ム”,“標準FORTRANプログラム”,“標準Pascalプログラム”及び“標準PL/Iプログラム”という用語は,
“2.関連規格”で挙げる規格の規格合致性の基準に合うプログラムをいう。

4.11 一時親子集合

 <一時親子集合 (temporary set)>は,一時<親子集合型>の実現値とする。一時<親
子集合型>は,<モジュール>中の<一時親子集合指定>によって宣言される。
<モジュール>中の各<一時親子集合指定>に対し,対応する一時<親子集合型>の実現値は,<モジ
ュール>が開始したときに生成され終了したときに抹消される。

4.12 パラメタ

 パラメタは,<パラメタ宣言>によって<手続>中で宣言される。<パラメタ宣言>は,
パラメタが基本データ項目かデータ項目の配列かを指定し,またその値の<データ型>を指定する。パラ
メタは,その手続の呼出し中の対応する引数の値をとるか又は与えるかする。

4.12.1 STATUSパラメタ

 STATUSパラメタは,<長さ>5文字の特殊なパラメタとする。このようなパ
ラメタが<手続>で宣言されるならば,その値には状態コード (status code) が設定され,そのコードは,
<手続>の呼出しが正しく完了したことを示すか,又は<手続>実行中に生じた例外の条件を識別する。

4.12.2 TESTパラメタ

 TESTパラメタは,<長さ>1文字の特殊なパラメタとする。テスト文がこのパ
ラメタを含む<手続>中で実行されるならば,パラメタの値には,そのテストが真ならば“1”が,偽なら
ば“0”が設定される。

4.12.3 RECORDパラメタ

 RECORDパラメタは,<長さ>18文字の特殊なパラメタとする。このよう
なパラメタが<手続>で宣言されるならば,それには,<セション状態>の<セション位置指示子>によ
って識別されるレコードの<レコード名>が設定される。

4.13 セション

 データベース操作は,の実行とする。
セションは,<モジュール>に結合する適用業務プログラムの実行中になされるデータベース操作の並
びとする。
<セション状態>は,セションに結合する短期対象とする。<セション状態>は,そのセション中の最
初のデータベース操作に先立って生成され,そのセション中の最終のデータベース操作のあと抹消される。
<セション状態>は,<位置指示子>,<一時親子集合群>及び<準備リスト>からなる。<位置指示
子>は,現セションレコードを識別するための<セション位置指示子>,各<サブスキーマ><レコード
型>の現レコードを識別するための<レコード位置指示子>及び各<サブスキーマ><親子集合型>の現
親子集合中の親レコードと現親子レコードを識別するための<親子集合位置指示子>を含む。<一時親子
集合群>は,結合する<モジュール>により定義される各<一時親子集合>の内容を保持する。<準備リ
スト>は,で活性化された各<レコード型>に対し<準備指定>を保持する。
<セション状態>は,によってだけ適用業務プログラムで使用可能となる。<セション状態
>の内容は,結合する<モジュール>の<手続>中のの実行に基づいてデータベース管理シス
テムによって変更される。データ操作言語は,<データベースキー>の位置決めと比較及び<準備リスト
>と各<一時親子集合>の内容の変更を行うためのを含む。

――――― [JIS X 3004 pdf 10] ―――――

次のページ PDF 11

JIS X 3004:1987の国際規格 ICS 分類一覧

JIS X 3004:1987の関連規格と引用規格一覧

規格番号
規格名称
JISX3001:1994
プログラム言語Fortran
JISX3002:2011
電子計算機プログラム言語COBOL