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

8
X 3004 - 1987

4.14 トランザクション

 トランザクションは,データベース操作を含む操作の並びとし,それは,回復
(recovery) や同時実行 (concurrency) に関して基本単位となる。トランザクションは,
によって終了する。トランザクションがにより終了するならば,デ
ータベースに対し,そのトランザクションによってなされたすべての変更は,すべての同時実行トランザ
クションに対しアクセス可能となる。このことをコミットするという。トランザクションが文>によって終了するならば,データベースに対し,そのトランザクションによってなされたすべての変
更は,取り消される。このことをロールバックするという。コミットされた変更を取り消すことはできな
い。トランザクションによってなされたデータベースに対する変更は,そのトランザクションでは知るこ
とができるが,そのトランザクションがによって終了するまでは,他のトランザクション
では知ることはできない。
同時実行トランザクションの実行は,直列可能 (serializable) であることが保証される。直列可能な実行
は,同時実行中のトランザクションの操作の実行で,それらの同じトランザクションのある直列実行と同
じ効果を生成するものと定義される。直列実行では,次のトランザクションが開始する前に各トランザク
ションが実行を完了するものとする。
トランザクション内でのの実行は,そのに対する一般規則で述べられている効
果以外には,データベースや<セション状態>に影響を与えない。直列可能な実行とともに,これは,ト
ランザクションそれ自身によって陽になされた変更を除いては,すべての読込み操作がトランザクション
内で再生可能であることを意味する。

4.15 整合性制約

 整合性制約 (integrity constraint) は,データベースの正当な状態を限定する。整合性制
約は,<レコード型>又は<親子集合型>に対してと,親<レコード型>と子<レコード型>間の構成要
素制約に対して定義される。
整合性制約は,各の実行後に検査される。整合性制約に関連する対象が制約を満たさないな
らば,はデータベースに対して影響を与えず,STATUSパラメタは特定の例外を示すように設
定される。

4.15.1 検査条件

 検査条件 (check condition) は,データベース中の状態が変更されるときレコードの値に
よって満たされなければならない表現式とする。表現式は,<レコード型>の<レコード検査句>の<条
件>,又は<親子集合型>の<子レコード検査句>の<条件>によって指定される。

4.15.2 既定値

 既定値 (default value) は,<手続>によって陽に値が与えられないすべての構成要素実現
値に対して想定される値とする。既定値は,<構成要素型>の<既定句 (default clause)>中の<定数>に
よって指定される。

4.15.3 一意性制約

 一意性制約 (uniqueness constraint) は,与えられた<レコード型>のどの二つのレコ
ードも,また与えられた<親子集合型>の親子集合のどの二つの子レコードも,データベースの中で指定
された構成要素に対して同一の値をとることがないという指定とする。一意性制約は,<レコード型>中
の<レコード一意性句>,又は<親子集合型>の<子レコード句>中の<子レコード一意性句>によって
指定される。

4.15.4 親子集合順序基準

 親子集合順序 (set ordering) は,一つの親子集合中の子レコードの並び順を指
定する。順序は,次のいずれかとする。
(1) 構成要素の値による整列順
(2) 発生順又は逆発生順
(3) 与えられた子レコードの直後又は直前としての相対順

――――― [JIS X 3004 pdf 11] ―――――

                                                                                              9
X 3004 - 1987
(4) 処理系作成者の定義による順
親子集合順序基準は,<親子集合型>の<順序句>によって指定され,かつその順序が整列順ならば,
その<親子集合型>に含まれる各<子レコード句>の<キー句>によって指定される。

4.15.5 親子関係

 親子関係 (set membership) は,一つのレコードが子レコードとして現れる各親子集合に
対し,そのレコードの組入れモード (insertion mode) 及び保存モード (retention mode) を指定する。各子<
レコード型>は,組入れモード及び保存モードをもつ。
組入れ (insertion) は,自動 (automatic),構造 (structural) 又は手動 (manual) のいずれかとする。組入れ
が手動ならば,陽にによってだけレコードが親子集合中の子レコードとして組み入れら
れる。組入れが自動又は構造ならば,子<レコード型>の各レコードは,それが最初にデータベースに格
納されるとき,その<親子集合型>のある親子集合の子レコードとなる。組入れが自動又は手動ならば,
親レコードは,適用業務プログラムによって識別される。組入れが構造ならば,組み入れられるレコード
の特定のデータ項目に等しい値をもつ親レコードがデータベース管理システムによって選ばれる。組入れ
モードは,<スキーマ>の各<子レコード句>中の<組入れ句>によって指定される。
保存は,固定 (fixed),準固定 (mandatory) 又は任意 (optional) のいずれかとする。保存が固定ならば,
ある親子集合の子レコードとなったレコードは,それがデータベースから消去されるまでその親子集合の
子レコードのままでいる。保存が準固定ならば,ある親子集合の子レコードとなったレコードは,それが
データベースから消去されるまで同じ<親子集合型>のどれかの親子集合の子レコードのままでいる。保
存が任意ならば,ある親子集合の子レコードとなったレコードは,その親子集合又はその<親子集合型>
の任意の親子集合の子レコードのままでいる必要はない。保存モードは,<スキーマ>の各<子レコード
句>中の<保存句>によって指定される。

5. 共通要素

5.1 <条件>

5.1.1  機能 真又は偽のいずれかとして評価される表現式を指定する。
5.1.2 形式 形式は,次による。
<条件> : : =
<選択条件>[{OR<選択条件>}...]
<選択条件> : : =
<単純条件>[{AND<単純条件>}...]
<単純条件> : : =
<副条件>
|<否定副条件>
|<関係条件>
<副条件> : : =(<条件>)
<否定副条件> : : =
NOT(<条件>)
<関係条件> : : =
<オペランド><関係><オペランド>
<関係> : : =
<|<=|=|>=|>|<>

――――― [JIS X 3004 pdf 12] ―――――

10
X 3004 - 1987
5.1.3 構文規則 構文規則は,次による。
(1) <関係条件 (relation condition)>の最初の<オペランド>が配列を指定するならば,その<関係条件>
の2番目の<オペランド>は配列を指定してはならない。
(2) 最初のオペランドの型が文字列ならば,2番目のオペランドの型は文字列でなければならない。最初
のオペランドの型が真数ならば,2番目のオペランドの型は真数又は概数でなければならない。最初
のオペランドの型が概数ならば,2番目のオペランドの型は真数又は概数でなければならない。
5.1.4 一般規則 一般規則は,次による。
(1) <条件 (condition)>は,それに含まれる任意の<選択条件 (alternative)>が真ならば真とし,そうでな
ければ偽とする。
(2) <選択条件>は,それに含まれるいずれの<単純条件>も真ならば真とし,そうでなければ偽とする。
(3) <副条件>を直接含む<単純条件>は,<副条件>が真ならば真とし,そうでなければ偽とする。
<否定副条件>を直接含む<単純条件>は,<否定副条件>に直接含まれる<条件>が偽ならば真
とし,そうでなければ偽とする。
<関係条件>を直接含む<単純条件>は,<関係条件>が真ならば真とし,そうでなければ偽とす
る。
(4) <関係条件>の最初の(2番目の)オペランドは,その<関係条件>内の最初の(2番目の)オペラン
ドの値とする。
(5) <関係条件>の<関係>は,<関係条件>の二つのオペランドの間でなされる比較を指定する。選択
的<関係>によって指定される比較は,次による。
<関係> 比較
< より小さい
<= より小さいか等しい
= 等しい
>= より大きいか等しい
> より大きい
<> 等しくない
(6) <関係条件>のオペランドがどちらも配列でないならば,<関係条件>は,二つのオペランドの指定
された比較が真ならば真とし,そうでなければ,<関係条件>は偽とする。<関係条件>のオペラン
ドの一つが配列ならば,<関係条件>は,他のオペランドと配列並び中のいずれの値との指定された
比較が真ならば真とし,そうでなければ<関係条件>は,偽とする。
(7) 比較は,次のとおりとする。
(7.1) オペランドが真数型又は概数型ならば,比較は,それらの数値に従って実行される。
(7.2) オペランドが文字列型であるならば,
(a) 二つのオペランドの長さが等しくないならば,短いオペランドが空白文字で長いオペランドの長さ
まで右側に拡張されたものとみなされる。
(b) 比較は,オペランドの個々の文字を比較しながら左から右へ行われる。
すべてのこのような個々の比較が等しいならば,二つのオペランドは等しく,そうでなければ,
オペランドの比較の結果は,個々の文字の中で最も左側で等しくなかった比較の結果とすると定義
される。
(c) 個々の文字の比較は,処理系作成者の定義による。

――――― [JIS X 3004 pdf 13] ―――――

                                                                                             11
X 3004 - 1987
(8) 一般規則において,“より小さい”,“より大きい”,“等しい”,“等しくない”の用語は,対応する関係
演算子を参照する。

5.2 <オペランド>

5.2.1  機能 値を指定する。
5.2.2 形式 形式は,次による。
<オペランド> : : =
<構成要素識別子>
|<構成要素ビュー識別子>
|<パラメタ識別子>
|<定数>
5.2.3 構文規則 構文規則は,次による。
(1) <オペランド>の指定は,次のとおりとする。
(a) <オペランド>が<スキーマ>に含まれるならば,それは<パラメタ識別子>又は<構成要素ビュ
ー識別子>であってはならない。
(b) <オペランド>が<モジュール>に含まれるならば,それは<構成要素識別子>であってはならな
い。
(2) <オペランド>のデータ型は,<構成要素識別子>,<構成要素ビュー識別子>,<パラメタ識別子
>又は<定数>のデータ型とする。
5.2.4 一般規則 一般規則は,次による。
(1) <オペランド>の値は,<構成要素識別子>,<構成要素ビュー識別子>若しくは<パラメタ識別子
>によって参照されるデータ項目若しくは配列とするか,又は<定数>の値とする。

5.3 <識別子>

5.3.1  機能 <手続>中のパラメタ又はデータベース中の対象に対して名前を指定する。
5.3.2 形式 形式は,次による。
<識別子> : : =
<一般識別子>|<拡張識別子>
<一般識別子> : : =
<英大文字>
[{[<下線>]<英字又は数字>}...]
<下線> : : =_
<英字又は数字> : : =
<英大文字>|<数字>
<英字> : : =
<英大文字>|<英小文字>
<英大文字> : : =
A |B |C |D |E |F |G |H |I
|J |K |L |M |N |O |P |Q |R
|S |T |U |V |W |X |Y |Z
<英小文字> : : =
a |b |c |d |e |f |g |h |i

――――― [JIS X 3004 pdf 14] ―――――

12
X 3004 - 1987
|j |k |l |m |n |o |p |q |r
|s |t |u |v |w |x |y |z
<数字> : : =
0|1|2|3|4|5|6|7|8|9
<拡張識別子> : : =
<拡張識別子文字表現>...
<拡張識別子文字表現> : : =
<拡張識別子文字>
|<アポストロフィ表現>
<拡張識別子文字> : : =
構文規則5.3.3(3)参照
<アポストロフィ表現> : : =”
5.3.3 構文規則 構文規則は,次による。
(1) <一般識別子>は,18文字以内でなければならない。<拡張識別子>は,18文字以内の<拡張識別子
文字表現>を含まなければならない。
(2) <一般識別子>は,<キーワード>と同じ文字の並びであってはならない(“5.8<分離符号>及び<
語>”を参照)。
(3) <拡張識別子文字>は,アポストロフィ文字()以外の処理系作成者の定義による文字集合中の任意
の文字とする。
(4) <拡張識別子>中の各<アポストロフィ表現>は,単一のアポストロフィ文字を表す。
(5) <拡張識別子>(囲み用のアポストロフィを別として)が<一般識別子>の形式に合致し,それが<
キーワード>でないならば,囲み用のアポストロフィを取り去ることによって形成される<一般識別
子>と等価とする。
5.3.4 一般規則 一般規則は,次による。
なし。

5.4 <定数>

5.4.1  機能 定数値を指定する。
5.4.2 形式 形式は,次による。
<定数> : : =
<文字列定数>
|<数定数>
<文字列定数> : : =
“<文字表現>···”
<文字表現> : : =
<非引用文字>
|<引用表現>
<非引用文字> : : =
構文規則5.4.3(1)参照
<引用表現> : : =
””

――――― [JIS X 3004 pdf 15] ―――――

次のページ PDF 16

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

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

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