JIS X 3005-1:2014 データベース言語SQL 第1部:枠組(SQL/Framework) | ページ 8

30
X 3005-1 : 2014 (ISO/IEC 9075-1 : 2011)
<A> ::= <B> <C>
では,<A>,<B>及び<C>に対する構文規則及びアクセス規則は,実効的に同時に適用する。<B>に対する
一般規則は,<C>に対する一般規則の前に適用し,<A>に対する一般規則は,<B>及び<C>の両方に対する
一般規則の後に適用する。
注記13 これの実際の適用に対しては,例外が存在する。例えば,[ISO9075-2] の“13.4 <SQL手続文
>”は,一般規則に対するこの一般規則の一種の例外を示す。その細分箇条では,<SQL手続
文>に含まれる特定の文(例えば,<INSERT文>)の一般規則は,<SQL手続文>に含まれる
文の一般規則を評価することを“13.4 ”の一般規則が明記しているときにだ
け呼び出される。
式又は探索条件の結果が,その式又は探索条件のある部分の結果に依存しないならば,式又は探索条件
のその部分を非本質的 (inessential) であるという。決定的であり,かつ,SQLデータを潜在的に修正しな
いSQL呼出し関数の呼出しは,非本質的 であるとみなす。非決定的であるか又はSQLデータを潜在的に
修正するSQL呼出し関数の呼出しを,本質的 (essential) であるとみなすか,非本質的 であるとみなすか
は,処理系定義とする。
非本質的部分に関わるアクセス規則を満たさないならば,非本質的である部分が実際に評価されるかど
うかにかかわらず,例外条件 : 構文誤り又はアクセス規則違反 が引き起こされる。非本質的である部分
の評価が例外条件を引き起こすことになるならば,その例外条件を引き起こすかどうかは,処理系依存と
する。
式の結果の計算中に,SQL処理系は,その結果を決定するときに用いる一つ以上の中間結果 (intermediate
result) を生成してもよい。中間結果を含む格納場所の宣言型は,処理系依存とする。

6.3.3.4 条件付き規則

  条件付き規則は,“ならば (If)”又は“場合 (Case)”規約を用いて規定する。“場合”規約を用いて規定
する規則は,“ならば”規約を用いる条件付き部分規則の細別を含む。条件が真である最初のこのような“な
らば”部分規則は,“場合”規則の実効的な部分規則とする。“場合”規則の最後の部分規則は,“そうでな
ければ (Otherwise)”を指定してもよく,この場合には,“場合”規則中の先行するどの“ならば”部分規
則も満たさないならば,“そうでなければ”部分規則は,“場合”規則の実効的な部分規則とする。最後の
部分規則が“そうでなければ”を指定せず,かつ,条件が真である部分規則がないならば,“場合”規則の
実効的な部分規則は,存在しない。

6.3.3.5 構文上の置換え

  構文規則及び一般規則中で,“Xが暗に想定される (implicit)”という句は,要素Xを実際に指定したか
のように,構文規則及び一般規則を解釈すべきことを示す。与えられた細分箇条の構文規則内で,要素が
陽に指定されたか又は暗に想定されるかは,知られている。
構文規則及び一般規則中で,“次の<x>が暗に想定される。Y”という句は,Y を含む構文要素<x>を実際
に指定したかのように,構文規則及び一般規則を解釈すべきことを示す。
構文規則及び一般規則中で,“前者 は,後者 と等価とする”という句は,要素中の前者 の全ての実現
値が後者 の実現値であるかのように,構文規則及び一般規則を解釈すべきことを示す。
細分箇条が定義するBNF生成規則中にBNF非終端記号がどのように含まれるかを規定しないで,その
BNF非終端記号がその細分箇条中で参照されるならば,次による。
場合 :
− BNF非終端記号が,細分箇条中で定義されるそのもの自体ならば,その参照は,定義している生成規

――――― [JIS X 3005-1 pdf 36] ―――――

                                                                                             31
X 3005-1 : 2014 (ISO/IEC 9075-1 : 2011)
則の左側のそのBNF非終端記号の実現値への参照であると仮定しなければならない。
− そうでなければ,その参照は,そのBNF非終端記号が直に含まれるBNF生成規則への参照であると
仮定しなければならない。

6.3.3.6 その他の用語

  幾つかの構文規則では,名前付き又は名前なしの表を示すために,T1のような用語を定義する。このよ
うな用語は,表名又は相関名として用いる。このような用語を相関名として用いるところでは,どんな新
たな相関名も,示された表に対して実際に定義されることを意味しないし,実際のどの相関名の適用範囲
にもそれが影響を与えることはない。
SQL文S2が<CALL文>CSで,かつ,SQL文S1が,CSに含まれる<ルーチン呼出し>の当該ルーチンで
ある<SQL呼出しルーチン>に含まれる最も外側のSQL文ならば,S1は,S2の実行の直接の結果 (direct
result) として実行されるという。
SQL文S1が,SQL文S2の実行によって活性化されたトリガ実行文脈中で実行されるならば,S1は,
S2の実行の間接の結果 (indirect result) として実行されるという。
値Pが値Wの部分 (is part of) であることは,次のことと同値とする。
− Wが表で,かつ,PがWの行である。
− Wが行で,かつ,PがWのフィールドである。
− Wが集まりで,かつ,PがWの要素である。
− Pが,Wの部分であるいずれかの値の部分である。
値が部分をもつならば,その値の実現値が部分をもつことになる。したがって,その値が占める格納場
所が部分をもち,それらの部分のそれぞれも,格納場所となる。
項目Xが項目Yの部分 であることは,次のことと同値とする。
− Yが行で,かつ,XがYの列である。
− Yが<ルーチン呼出し>で,かつ,XがYのSQLパラメタである。
− Yが利用者定義型の実現値で,かつ,XがYの属性である。
− XがX2の部分であり,かつ,X2がYの部分であるような項目X2が存在する。
JIS X 3005 (ISO/IEC 9075) 規格群の他の規格で,その規格だけで用いる追加の用語を定義してもよい。

6.3.3.7 例外

  別の方法で規定する場合を除いて,“例外条件 :  が引き起こされる”という句は,“例外条件 : ”に条
件の名前が続き,次のことを示すために,一般規則中及びその他の場所で用いる。
− 文の実行が不成功である。
− “6.3.3.8 例外条件で終了しない一般規則”で規定していない細分箇条の一般規則の適用を終了して
いるかもしれない。
− 診断情報が利用可能になる。
− 文の実行がSQLデータ又はスキーマにどんな効果も与えない。
例外条件で終了するSQL文の代入相手及びSQL記述子領域に与える効果は,JIS X 3005 (ISO/IEC 9075)
規格群で陽に定義していない限り,処理系依存とする。
“終了条件 : が引き起こされる”という句は,“終了条件 : ”に条件の名前が続き,一般規則の適用が

――――― [JIS X 3005-1 pdf 37] ―――――

32
X 3005-1 : 2014 (ISO/IEC 9075-1 : 2011)
終了しないこと,及び診断情報が利用可能になることを示すために,一般規則中及びその他の場所で用い
る。例外条件も引き起こされない限り,SQL文の実行は,成功する。
文の結果として二つ以上の条件が引き起こされたとき,二つ以上の条件についての診断情報を利用可能
にするかどうかは,処理系依存とする(状態パラメタの値の優先順序に関する規則については,[ISO9075-2]
の“4.30.2 状態パラメタ”参照)。

6.3.3.8 例外条件で終了しない一般規則

  次の細分箇条の一般規則は,文脈を退避及び回復する。したがって,陽に記述する場合を除いて,例外
条件が引き起こされるところで終了しない。
− [ISO9075-2] の“10.4 <ルーチン呼出し>”
− [ISO9075-2] の“13.4 <SQL手続文>”
− [ISO9075-2] の“15.19 トリガの実行”
− [ISO9075-2] の“22.1 <直接SQL文>”
− [ISO9075-4] の“14.1 <複合文>”
− [ISO9075-4] の“14.2 <ハンドラ宣言>”

6.3.4 記述子

  記述子は,特定の種類のオブジェクトを定義するデータの概念的な構造化された集まりとする。記述子
の概念は,SQLの意味を規定するときに用いる。どの記述子も,どのSQL環境中のどのような特定の形
態でも存在する必要はない。
幾つかのSQLオブジェクトは,別のSQLオブジェクトの文脈中以外で存在することができない。例え
ば,列は,表の文脈内以外で存在できない。そのような各オブジェクトは,それ自体の記述子によって独
立に記述され,実効化するオブジェクト(例えば,表)の記述子は,実効化される各オブジェクト(例え
ば,列,表制約など)の記述子を含む (include) という。逆に,実効化されるオブジェクトの記述子は,
実効化するオブジェクトの記述子に含まれる (be included in) という。あるオブジェクトAの記述子が,
あるオブジェクトBの記述子を含み,かつ,Bの記述子が,あるオブジェクトCの記述子を一般に含むな
らば,Aの記述子は,Cの記述子を一般に含む (generally include)。
別の場合には,包含関係が存在しなくても,別のあるSQLオブジェクトが存在しなければ,幾つかの
SQLオブジェクトは,存在することができない。例えば,表明によって参照される表が存在しないならば,
SQLは,その表明の存在を許さない。したがって,表明記述子は,一つ以上の表記述子に依存している (be
dependent on) 又は依存する (depend on) (等価的に,表明は,一つ以上の表に依存している 又は依存す
る。)。一般には,記述子D1は,ある記述子D2に依存する又は依存しているといえる。
あるオブジェクトAの記述子が,あるオブジェクトBの記述子に依存し,かつ,Bの記述子が,あるオ
ブジェクトCの記述子に一般に依存するならば,Aの記述子は,Cの記述子に一般に依存する (generally
depend) 又は一般に依存している (be generally dependent on)。
SQL文の実行の結果として,多くの記述子が作成されてもよい。SQL文の結果として作成されるSQL
オブジェクトは,そのSQL文の実行の結果として作成されるだけの別の記述子に依存してもよい。
注記14 これは,特に,<スキーマ定義> SQL文の場合に関連がある。<スキーマ定義>は,例えば,<
表制約>を更に含む多くの<表定義>を含んでもよい。一つの<表定義>中の単一の<表制約>は,
別の<表定義>によって作成される2番目の表を参照してもよく,その別の<表定義>自体が最
初の表への参照を含んでもよい。完全な<スキーマ定義>の実行中に必要な全ての記述子が作
成されるという条件で,別の記述子への各表の依存性が正しくなる。

――――― [JIS X 3005-1 pdf 38] ―――――

                                                                                             33
X 3005-1 : 2014 (ISO/IEC 9075-1 : 2011)
一つのSQLオブジェクトの別のオブジェクトへの依存性を示す二つの方法がある。多くの場合,依存し
ているSQLオブジェクトの記述子は,それが依存しているSQLオブジェクト“の名前を含む (include the
name of)”という。この場合,“の名前”は,“の記述子を識別するために十分な情報”を意味するものと
して理解しなければならない。代わりに,依存しているSQLオブジェクトの記述子は,それが依存してい
るSQLオブジェクトのテキスト(例えば,<問合せ式>,<探索条件>など)を含むといってもよい。しか
し,そのような場合,処理系が(既定値及び想定値を明確にした)実際のテキストを含むか,又は処理系
独自の様式の構文解析木を含むかは,無関係とする。すなわち,その記述子の正当性は,その中で参照し
ているオブジェクトの記述子の存在に,明らかに“依存している”。
ビューの場合には,ビューが依存する他のSQLオブジェクトを決定するために,(階層的な<問合せ式>
ではなく,)元の<問合せ式>を用いる。
注記15 階層的な<問合せ式>は,ビューVの全ての下位表を説明するために用いる。Vの階層的な<
問合せ式>に依存性があるならば,この依存性は,Vのどの下位表の元の<問合せ式>でも見
つかる。元の<問合せ式>に依存性があるビューの破壊は,残存している上位表の階層的な<
問合せ式>を依存性なしに書き換えることになる。
列が定義域を“基にする (be based on)”という文は,列がその定義域に“依存している (be dependent on)”
という文と等価とする。
SQLオブジェクトを破壊しようとしても,したがって,それの記述子を破壊しようとしても,別の記述
子がそれに依存しているならば,失敗することがあり,それは,その破壊をどのように指定するかに依存
する。このような試みは,破壊されるべき記述子が別のある記述子に含まれるときにも,失敗することが
ある。記述子を破壊すると,それに含まれる全ての記述子を破壊することになるが,それが依存している
記述子には,どんな効果も与えない。
記述子によって記述される幾つかのSQLオブジェクトの実装には,この規格群で規定していないオブジ
ェクトの存在が必要になる。そのようなオブジェクトが必要なところでは,それらは,関連する記述子が
作成されるときにはいつでも実効的に作成され,関連する記述子が破壊されるときにはいつでも実効的に
破壊される。

6.3.5 JIS X 3005 (ISO/IEC 9075) 規格群の規格の関係

  この規格及び [ISO9075-2] 以外のJIS X 3005 (ISO/IEC 9075) 規格群の規格は,JIS X 3005-1 [ISO9075-1]
及び [ISO9075-2] 並びにそれらの技術的正誤票 (Technical Corrigenda) に依存し,追加規格 (incremental
part) として参照される。各追加規格は,JIS X 3005 (ISO/IEC 9075) 規格群のテキストに併合されたかの
ように用いなければならない。この細分箇条では,併合方法を規定するために用いる規約を記述する。
併合方法の記述は,JIS X 3005 (ISO/IEC 9075) 規格群を訂正するために発行された技術的正誤票に対し
ても説明する。この場合には,典型的に“技術的正誤票で”又は“TCで”というような句を用いること
によって示す。

6.3.5.1 新しい箇条,細分箇条及び附属書並びに修正される箇条,細分箇条及び附属書

  JIS X 3005 (ISO/IEC 9075) 規格群のいずれかの追加規格の(“1 適用範囲”及び“2 引用規格”以外の)
箇条,細分箇条又は附属書が [ISO9075-2],[ISO9075-3],[ISO9075-4] 又は [ISO9075-11] の箇条,細分箇
条又は附属書と同一の名前をもつところでは,追加規格が [ISO9075-3],[ISO9075-4] 又は [ISO9075-11]
自体でない限り,箇条,細分箇条又は附属書の番号又は文字が対応するかどうかにかかわらず,その箇条,
細分箇条又は附属書は,それぞれ,[ISO9075-2],[ISO9075-3],[ISO9075-4] 又は [ISO9075-11] の箇条,
細分箇条又は附属書を補う。これは,典型的に,段落,形式項目,表,図,規則又は注記の追加又は置換

――――― [JIS X 3005-1 pdf 39] ―――――

34
X 3005-1 : 2014 (ISO/IEC 9075-1 : 2011)
えによって行う。
各追加規格では,その追加規格の各箇条,細分箇条及び附属書と,[ISO9075-2],[ISO9075-3],[ISO9075-4]
及び/又は [ISO9075-11] の対応する箇条,細分箇条又は附属書との間の関係を,次によって示す。
− 追加規格では,Objectの題名の直後に続けて,“このObjectは,JIS X 3005-n (ISO/IEC 9075-n) の“nn.nn
xxxxx”を修正する。(This Object modifies Object nn.nn, “xxxxx”, in ISO/IEC 9075-n.)”という形式の文。
− 先行する細別中での挿入される文によって参照される規格では,Objectの題名の直後に続けて,“この
Objectは,JIS X 3005-m (ISO/IEC 9075-m) の“mm.mm yyyyy”によって修正される。(This Object is
modified by Object mm.mmm, “yyyyy”, in ISO/IEC 9075-m.)”という形式の文。
− Objectは,箇条,細分箇条又は附属書であってもよい。
追加規格の箇条,細分箇条又は附属書が,[ISO9075-2],[ISO9075-3],[ISO9075-4] 及び/又は
[ISO9075-11] のどの箇条,細分箇条又は附属書の名前とも同一でない名前をもつところでは,それは,そ
の追加規格固有の言語仕様を提供する。箇条又は細分箇条の部分である細分箇条で,新規として識別され
る細分箇条は,本来新規であり,それに印を付けない。
各追加規格の箇条,細分箇条及び附属書は,併合される文書にそれらが現れることを意図した順序で現
れる。その配置に関する明確な指示がほかにない場合には,新しいどの箇条,細分箇条又は附属書も,次
のとおり配置される。JIS X 3005 (ISO/IEC 9075) 規格群の追加規格中でその前に現れる箇条,細分箇条又
は附属書の名前と同一の名前をもつ [ISO9075-2],[ISO9075-3],[ISO9075-4] 及び/又は [ISO9075-11] の
対応する箇条,細分箇条又は附属書に位置付ける。新しい箇条,細分箇条又は附属書は,その箇条,細分
箇条又は附属書の直後に続けなければならない。既存の箇条,細分箇条又は附属書を修正する箇条,細分
箇条又は附属書を介在しないで,複数の新しい箇条,細分箇条又は附属書が存在するならば,それらの新
しい箇条,細分箇条又は附属書は,その前の名前が一致する箇条,細分箇条又は附属書の後に続けて順序
どおりに現れる。
[ISO9075-3],[ISO9075-4] 及び/又は [ISO9075-11] の箇条,細分箇条又は附属書に対して,追加規格
で修正を行うとき,その修正は,次の順序で適用する。
1) 追加規格からの [ISO9075-3] に対する全ての修正。
2) 追加規格からの [ISO9075-4] に対する全ての修正。
3) 追加規格からの [ISO9075-11] に対する全ての修正。
4) [3) の結果として,追加されたか,補われたか又は置き換えられた全ての修正も含めて,]
[ISO9075-11] からの [ISO9075-2] に対する全ての修正。
5) [1) の結果として,追加されたか,補われたか又は置き換えられた全ての修正も含めて,]
[ISO9075-3] からの [ISO9075-2] に対する全ての修正。
6) [2) の結果として,追加されたか,補われたか又は置き換えられた全ての修正も含めて,]
[ISO9075-4] からの [ISO9075-2] に対する全ての修正。
7) 追加規格からの [ISO9075-2] に対する全ての修正。最後のこの修正で,4),5) 及び6) の結果とし
て適用された修正を補うか又は置き換えてもよいことに注意する。
二つ以上の追加規格による [ISO9075-2],[ISO9075-3],[ISO9075-4] 及び [ISO9075-11] のうちの一つ以
上に対する修正は,相互に作用しない。追加規格によって行われる修正は,その規格の言語仕様にだけ影
響があり,それらの仕様は,他のどの追加規格によって行われる修正にも影響を受けない。

――――― [JIS X 3005-1 pdf 40] ―――――

次のページ PDF 41

JIS X 3005-1:2014の引用国際規格 ISO 一覧

  • ISO/IEC 9075-1:2011(IDT)

JIS X 3005-1:2014の国際規格 ICS 分類一覧

JIS X 3005-1:2014の関連規格と引用規格一覧