>サイトトップへ >このカテゴリの一覧へ

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

(1)

目  次

ページ

序文  

1

1

  適用範囲  

1

2

  引用規格  

1

2.1

  JIS 及び ISO 規格  

1

3

  定義及び語の用法  

2

3.1

  定義  

2

3.1.1

  この規格で規定する定義  

2

3.2

  語の用法  

5

3.3

  参考要素  

5

4

  概念 

5

4.1

  警告  

5

4.2

  SQL 環境及びそれらの構成要素  

6

4.2.1

  SQL 環境  

6

4.2.2

  SQL エージェント  

6

4.2.3

  SQL 処理系  

6

4.2.3.1

  SQL クライアント  

6

4.2.3.2

  SQL サーバ  

7

4.2.4

  SQL クライアントモジュール  

7

4.2.5

  利用者識別子  

7

4.2.6

  役割  

7

4.2.7

  利用者対応付けの概念  

7

4.2.8

  ルーチン対応付けの概念  

7

4.2.9

  カタログ及びスキーマ  

7

4.2.9.1

  カタログ  

7

4.2.9.2

  SQL スキーマ  

8

4.2.9.3

  情報スキーマ  

8

4.2.9.4

  定義スキーマ  

8

4.2.10

  外部サーバ及び記述子  

8

4.2.11

  外部データ覆い及び記述子  

8

4.2.12

  SQL データ  

8

4.3

  表  

8

4.4

  SQL データ型  

9

4.4.1

  データ型一般情報  

9

4.4.2

  ナル値  

10

4.4.3

  既定義型  

10


X 3005-1

:2014 (ISO/IEC 9075-1:2011)  目次

(2)

ページ

4.4.3.1

  数型  

10

4.4.3.2

  文字列型  

10

4.4.3.3

  進オクテット列型  

11

4.4.3.4

  ブール型  

11

4.4.3.5

  日時型  

11

4.4.3.6

  時間隔型  

11

4.4.3.7

  XML   

11

4.4.4

  基本単位の構成型  

11

4.4.4.1

  参照型  

11

4.4.5

  複合の構成型  

11

4.4.5.1

  集まり型  

11

4.4.5.2

  フィールド  

12

4.4.5.3

  行型  

12

4.5

  格納場所及び格納場所に関する演算  

12

4.5.1

  格納場所  

12

4.5.2

  代入  

12

4.5.3

  ナル可能性  

12

4.6

  SQL スキーマオブジェクト  

12

4.6.1

  SQL スキーマオブジェクト一般情報  

12

4.6.2

  文字集合に関連する記述子  

13

4.6.2.1

  文字集合  

13

4.6.2.2

  照合順  

13

4.6.2.3

  文字変換  

14

4.6.3

  定義域及びその構成要素  

14

4.6.3.1

  定義域  

14

4.6.3.2

  定義域制約  

14

4.6.4

  利用者定義型  

14

4.6.4.1

  利用者定義型の導入  

14

4.6.4.2

  個別型  

14

4.6.4.3

  構造型  

14

4.6.5

  実表及びその構成要素  

15

4.6.5.1

  実表  

15

4.6.5.2

  列  

15

4.6.5.3

  期間  

15

4.6.5.4

  表制約  

15

4.6.5.5

  トリガ  

15

4.6.6

  ビュー定義  

16

4.6.7

  表明  

16

4.6.8

  SQL サーバモジュール([ISO9075-4]  で規定)  

16


X 3005-1

:2014 (ISO/IEC 9075-1:2011)  目次

(3)

ページ

4.6.9

  スキーマルーチン  

16

4.6.10

  順序数生成子  

16

4.6.11

  権限  

16

4.7

  整合性制約及び制約検査  

17

4.7.1

  制約検査  

17

4.7.2

  決定性及び制約  

17

4.8

  SQL エージェントと SQL サーバとの間の通信  

17

4.8.1

  ホスト言語  

17

4.8.2

  パラメタの渡し方及びデータ型対応  

18

4.8.2.1

  パラメタの一般的な渡し方及びデータ型対応情報  

18

4.8.2.2

  データ型対応  

18

4.8.2.3

  位置付け子  

18

4.8.2.4

  状態パラメタ  

18

4.8.2.5

  標識パラメタ  

18

4.8.3

  記述子領域  

19

4.8.4

  診断情報  

19

4.8.5

  SQL トランザクション  

19

4.9

  モジュール  

20

4.10

  ルーチン  

20

4.10.1

  ルーチン一般情報  

20

4.10.2

  型保持関数  

21

4.11

  SQL   

21

4.11.1

  SQL 文の種類  

21

4.11.2

  機能によって分類された SQL   

21

5

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

22

5.1

  概要  

22

5.2

  JIS X 3005-1  枠組 (SQL/Framework)  

22

5.3

  ISO/IEC 9075-2  基本機能 (SQL/Foundation)  

22

5.3.1

  [ISO9075-2]  で規定するデータ型  

22

5.3.2

  表  

23

5.3.3

  結合方法  

23

5.3.3.1

  埋込み SQL  

23

5.3.3.2

  動的 SQL  

23

5.3.3.3

  SQL の直接起動  

23

5.3.4

  [ISO9075-2]  で規定する SQL   

23

5.4

  ISO/IEC 9075-3  呼出しレベルインタフェース (SQL/CLI)  

24

5.5

  ISO/IEC 9075-4  永続格納モジュール (SQL/PSM)  

24

5.5.1

  [ISO9075-4]  で規定する SQL   

25

5.6

  ISO/IEC 9075-9  外部データ管理 (SQL/MED)  

25


X 3005-1

:2014 (ISO/IEC 9075-1:2011)  目次

(4)

ページ

5.7

  ISO/IEC 9075-10  オブジェクト言語結合 (SQL/OLB)  

25

5.8

  ISO/IEC 9075-11  情報スキーマ及び定義スキーマ (SQL/Schemata)  

25

5.9

  ISO/IEC 9075-13 Java プログラム言語を用いる SQL ルーチン及び型 (SQL/JRT)  

25

5.10

  ISO/IEC 9075-14 XML 関連仕様 (SQL/XML) 

25

6

  JIS X 3005 (ISO/IEC 9075)  規格群の他の規格で用いる表記法及び規約  

26

6.1

  JIS X 0221 [ISO10646]  からの表記法  

26

6.2

  この規格で規定する表記法  

26

6.3

  規約  

27

6.3.1

  構文要素の規定  

27

6.3.2

  情報スキーマ及び定義スキーマの規定  

27

6.3.3

  用語の使用  

28

6.3.3.1

  構文上の包含関係  

28

6.3.3.2

  規則の要件を示す用語  

29

6.3.3.3

  規則の評価順序  

29

6.3.3.4

  条件付き規則  

30

6.3.3.5

  構文上の置換え  

30

6.3.3.6

  その他の用語  

31

6.3.3.7

  例外  

31

6.3.3.8

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

32

6.3.4

  記述子  

32

6.3.5

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

33

6.3.5.1

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

33

6.3.5.2

  新しい表及び図並びに修正される表及び図  

35

6.3.5.3

  機能  

35

6.3.5.4

  新しい形式項目及び修正される形式項目  

35

6.3.5.5

  新しい段落及び規則並びに修正される段落及び規則  

36

6.3.5.6

  修正される附属書  

37

6.3.6

  サブルーチンとして用いる細分箇条  

37

6.3.7

  索引の体裁  

37

6.3.8

  機能 ID 及び機能名  

38

7

  JIS X 3005 (ISO/IEC 9075)  規格群の規格に対する附属書  

38

7.1

  SQL 適合性の要約  

38

7.2

  処理系定義要素  

38

7.3

  処理系依存要素  

38

7.4

  削除予定機能  

39

7.5

  前の版との非互換性  

39

7.6

  SQL の機能の分類  

39

7.7

  欠陥報告  

39

8

  適合性  

39


X 3005-1

:2014 (ISO/IEC 9075-1:2011)  目次

(5)

ページ

8.1

  最小適合性  

39

8.2

  各規格への適合性  

39

8.3

  機能への適合性  

39

8.4

  拡張及び選択機能  

40

8.5

  SQL フラグ機能  

41

8.6

  適合性の主張  

42

8.6.1

  SQL 適用業務に対する要件  

42

8.6.2

  SQL 処理系に対する要件  

42

附属書 A(参考)SQL の保守及び解釈  

44

附属書 B(参考)処理系定義要素  

45

附属書 C(参考)処理系依存要素  

47

附属書 D(参考)削除予定機能  

48

附属書 E(参考)ISO/IEC 9075:2008 との非互換性  

49

附属書 F(参考)SQL の機能の分類  

50

附属書 G(参考)JIS X 3005 (ISO/IEC 9075)  規格群のこの版で取り込まれていない欠陥報告  

51


X 3005-1

:2014 (ISO/IEC 9075-1:2011)  目次

(6)

まえがき

この規格は,工業標準化法に基づき,日本工業標準調査会の審議を経て,経済産業大臣が改正した日本

工業規格である。

これによって,JIS X 3005-1: 2010 は改正され,この規格に置き換えられた。

この規格は,著作権法で保護対象となっている著作物である。

この規格の一部が,特許権,出願公開後の特許出願又は実用新案権に抵触する可能性があることに注意

を喚起する。経済産業大臣及び日本工業標準調査会は,このような特許権,出願公開後の特許出願及び実

用新案権に関わる確認について,責任はもたない。

JIS X 3005

の規格群には,次に示す部編成がある。

JIS X 3005-1

第 1 部:枠組 (SQL/Framework)

JIS X 3005-2

第 2 部:基本機能 (SQL/Foundation)

JIS X 3005-3

第 3 部:呼出しレベルインタフェース (SQL/CLI)

JIS X 3005-4

第 4 部:永続格納モジュール (SQL/PSM)

JIS X 3005-9

第 9 部:外部データ管理 (SQL/MED)

JIS X 3005-10

第 10 部:オブジェクト言語結合 (SQL/OLB)

JIS X 3005-13

第 13 部:Java プログラム言語を用いる SQL ルーチン及び型 (SQL/JRT)

JIS X 3005-14

第 14 部:XML 関連仕様 (SQL/XML)

注記  この規格群に対応する国際規格 ISO/IEC 9075 には,上記の部のほかに,2003 年に第 2 部から

分離して制定された ISO/IEC 9075-11 Information technology−Database languages−SQL−Part

11: Information and Definition Schemas (SQL/Schemata)

,すなわち,データベース言語 SQL  第 11

部:情報スキーマ及び定義スキーマ (SQL/ Schemata) もある。


日本工業規格

JIS

 X

3005-1

:2014

(ISO/IEC 9075-1

:2011

)

データベース言語 SQL

第 1 部:枠組 (SQL/Framework)

Information technology-Database languages-SQL-

Part 1: Framework (SQL/Framework)

序文 

この規格は,2011 年に第 4 版として発行された ISO/IEC 9075-1 を基に,技術的内容及び構成を変更す

ることなく作成した日本工業規格である。

なお,この規格で点線の下線を施してある参考事項は,対応国際規格にはない事項である。

適用範囲 

この規格は,JIS X 3005 (ISO/IEC 9075)  規格群の他の規格で SQL 文法を規定し,SQL 処理系がその言

語の文を処理した結果を規定するために用いる概念的な枠組について規定する。

この規格では,JIS X 3005 (ISO/IEC 9075)  規格群の他の規格で用いる用語及び表記法も規定する。

注記  この規格の対応国際規格及びその対応の程度を表す記号を,次に示す。

ISO/IEC 9075-1:2011

,Information technology−Database languages−SQL−Part 1: Framework

(SQL/Framework)

(IDT)

なお,対応の程度を表す記号“IDT”は,ISO/IEC Guide 21-1 に基づき,

“一致している”こ

とを示す。

引用規格 

次に掲げる規格は,この規格に引用されることによって,この規格の規定の一部を構成する。これらの

引用規格のうちで,西暦年を付記してあるものは,記載の年の版を適用し,その後の改正版(追補を含む。

は適用しない。西暦年の付記がない引用規格は,その最新版(追補を含む。

)を適用する。

2.1 JIS

及び ISO 規格 

[ISO9075-2]

ISO/IEC 9075-2:2011

, Information technology − Database languages − SQL − Part 2: Foundation

(SQL/Foundation)

注記  JIS X 3005-2:2010 が,この国際規格の前の版 ISO/IEC 9075-2:2008 と一致している。

注記  [ISO9075-2]  のような,各引用規格の前に付加されている角括弧で囲んだ記号は,引用規格

を後で参照するために用いる記号である。

[ISO9075-3]

ISO/IEC 9075-3:2008

,Information technology−Database languages−SQL−Part 3: Call-Level Interface

(SQL/CLI)


2

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

注記  JIS X 3005-3:2002 が,この国際規格の二つ前の版 ISO/IEC 9075-3:1999 と一致している。

[ISO9075-4]

ISO/IEC 9075-4:2011

, Information technology − Database languages − SQL − Part 4: Persistent Stored

Modules (SQL/PSM)

注記  JIS X 3005-4:2002 が,この国際規格の三つ前の版 ISO/IEC 9075-4:1999 と一致している。

[ISO9075-9]

ISO/IEC 9075-9:2008

,Information technology−Database languages−SQL−Part 9: Management of External

Data (SQL/MED)

注記  JIS X 3005-9:2003 が,この国際規格の二つ前の版 ISO/IEC 9075-9:2001 と一致している。

[ISO9075-10]

ISO/IEC 9075-10:2008

,Information technology−Database languages−SQL−Part 10: Object Language

Bindings (SQL/OLB)

注記  JIS X 3005-10:2003 が,この国際規格の二つ前の版 ISO/IEC 9075-10:2000 と一致している。

[ISO9075-11]

ISO/IEC 9075-11:2011

,Information technology−Database languages−SQL−Part 11: Information and

Definition Schemas (SQL/Schemata)

[ISO9075-13]

ISO/IEC 9075-13:2008

,Information technology−Database languages−SQL−Part 13: SQL Routines and

Types Using the Java™ Programming Language (SQL/JRT)

注記  JIS X 3005-13:2007 が,この国際規格の前の版 ISO/IEC 9075-13:2003 と一致している。

[ISO9075-14]

ISO/IEC 9075-14:2011

, Information technology − Database languages − SQL − Part 14: XML-Related

Specifications (SQL/XML)

注記  JIS X 3005-14:2006 が,この国際規格の三つ前の版 ISO/IEC 9075-14:2003 と一致している。

[ISO10646]

JIS X 0221

  国際符号化文字集合 (UCS)

注記  対応国際規格:ISO/IEC 10646,Information technology−Universal Coded Character Set (UCS)

(IDT)

注記  JIS X 0221:2014 が,ISO/IEC 10646:2012 と一致(IDT)している。

[ISO14651]

ISO/IEC 14651

, Information technology − International string ordering and comparison − Method for

comparing character strings and description of the common template tailorable ordering

定義及び語の用法 

3.1 

定義 

3.1.1 

この規格で規定する定義 

この規格では,動詞の定義は,その全ての活用を含む。

この規格では,次の用語を定義する。これらの用語は,JIS X 3005 (ISO/IEC 9075)  規格群の他の規格で

も用いる。


3

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

3.1.1.1

基本単位 (atomic)

分割できないこと。

3.1.1.2

列 (column)

表の行型のフィールド。

3.1.1.3

翻訳単位 (compilation unit)

一つ以上のサブプログラムから成り得る実行可能コードの断片。

3.1.1.4

データ型 (data type)

表現可能な値の集合。

3.1.1.5

記述子 (descriptor)

SQL

オブジェクトの符号化記述。

注記 2  規格に適合する SQL 処理系が必要とするそのオブジェクトについての全ての情報を含む。

3.1.1.6

ある SQL オブジェクトの名前の完全修飾付き  (fully qualified of a name of some SQL object)

全ての省略可能な構成要素が明示的に指定されたもの。

注記 3  完全修飾付きの名前は,必ずしもオブジェクトを一意に識別する必要はない。例えば,カタ

ログ名,スキーマ名及び特定名から成る完全修飾付きの特定名は,ルーチンを一意に識別す

るが,完全修飾付きのルーチン名は,必ずしもそうではない。

3.1.1.7

識別子 (identifier)

あるものを識別するもの (object)。

3.1.1.8

識別する (identify)

あるものを曖昧さなく参照する。

3.1.1.9

処理系定義 (implementation-defined)

SQL

処理系間で異なり得るが,それぞれの特定の SQL 処理系で実装者によって定められるもの。

3.1.1.10

処理系依存 (implementation-dependent)

SQL

処理系間で異なり得るが,JIS X 3005  (ISO/IEC 9075)  規格群で規定せず,どのような特定の SQL

処理系であっても,実装者が定める必要がないもの。

3.1.1.11

(値の)

実現値 [instance (of value)]

値の物理的表現。

注記 4  各実現値は,ただ一つの格納場所にある。実現値は,その値のデータ型であるデータ型をも

つ。


4

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

3.1.1.12

ナル値 (null value)

どのデータ値もないことを示すために用いる特別な値。

3.1.1.13

“x オブジェクト”などの)

オブジェクト  [object (as in “x object”)]

もの  (thing)  であり,それは,ある の構成要素又はある に関連付けられた別の構成要素で,その x

と独立に存在できない。

注記 5  例えば,SQL オブジェクトは,SQL の文脈中でだけ存在するオブジェクトであり,SQL スキ

ーマオブジェクトは,ある SQL スキーマ中で存在するオブジェクトである。

3.1.1.14

永続 (persistent)

意図的に破壊されるまで無期限に存在し続けること。

注記 6  参照動作及び波及動作は,意図的とみなす。SQL トランザクション又は SQL セションの終了

に伴う動作は,意図的とはみなさない。

3.1.1.15

(オブジェクトの)

特性  [property (of an object)]

オブジェクトの属性,質又は特徴。

3.1.1.16

行 (row)

行型の値,すなわち,フィールド値の並び,表中の行については,列値の並び。

3.1.1.17

(規格の)

適用範囲  [scope (of a standard)]

規格の主題及び取り扱う側面を規定する規格の箇条。それによってその規格又はその規格の特定の部の

適用可能性の限界を示す。

3.1.1.18

(名前又は宣言の)

有効範囲  [scope (of a name or a declaration)]

名前又は宣言が効力をもつ一つ以上の BNF 非終端記号。

3.1.1.19

(参照型の)

有効範囲  [scope (of a reference type)]

その参照型の値が参照する表。

3.1.1.20

並び (sequence)

必ずしも異ならないオブジェクトの順序付けられた集まり。

3.1.1.21

格納場所 (site)

特定のデータ型(又はそのデータ型の下位型)の値の実現値によって占められる場所。

3.1.1.22

サイズ項目 (sizing item)

SQL

処理系又はプロファイルで定義される処理系定義項目の値。


5

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

3.1.1.23

SQL

コネクション (SQL-connection)

SQL

クライアントと SQL サーバとの間のアソシエーション。

3.1.1.24

SQL

環境 (SQL-environment)

SQL

データが存在し,SQL 文を実行する文脈。

3.1.1.25

SQL

処理系 (SQL-implementation)

SQL

文を処理する処理系。

注記 7  規格に適合する SQL 処理系  (conforming SQL-implementation)  は,“8  適合性”で規定する SQL

処理系の要件を満たす SQL 処理系とする。

3.1.1.26

SQL

セション (SQL-session)

単一の利用者が単一の SQL エージェントから,単一の SQL コネクション上で,連続する SQL 文の並び

を実行する文脈。

3.1.1.27

SQL

文 (SQL-statement)

JIS X 3005 (ISO/IEC 9075)

規格群の各規格で規定する

形式及び構文規則に適合する文字列。

3.1.1.28

表 (table)

0

個以上の行の集まり。

3.2 

語の用法 

JIS X 3005 (ISO/IEC 9075)

規格群が基にする概念は,単語の一般的な意味でオブジェクトとして記述さ

れる。

オブジェクトは,それが依存するオブジェクトの構成要素と考えることができる。オブジェクトが存在

しなくなると,そのオブジェクトに依存する全てのオブジェクトも,存在しなくなる。オブジェクトの表

現は,記述子として知られている。オブジェクトの記述子は,そのオブジェクトについて知る必要がある

全てのものを表現する(

6.3.4  記述子”も参照)

3.3 

参考要素 

JIS X 3005 (ISO/IEC 9075)

規格群の本体の幾つかの箇所で,参考の注記が現れる。例えば,次のとおり。

注記 8  これは,注記の例です。

これらの注記は,JIS X 3005 (ISO/IEC 9075)  規格群の規定の一部ではない。これらの

注記中の記述への

適合性の主張は,意味がない。

概念 

4.1 

警告 

この箇条 では,主として,JIS X 3005 (ISO/IEC 9075)  規格群の他の規格で正確に規定している概念を

記述する。食い違いのどのような場合も,他の規格での規定が正しいとみなす。


6

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

4.2 SQL

環境及びそれらの構成要素 

4.2.1 SQL

環境 

SQL

環境は,次の構成要素から成る。

−  一つの SQL エージェント。

−  一つの SQL 処理系。

− SQL エージェントにとって利用可能な外部呼出し手続を含む 0 個以上の SQL クライアントモジュー

ル。

−  0 個以上の認可識別子。

−  0 個以上の利用者対応付け。

−  0 個以上のルーチン対応付け。

−  0 個以上のカタログ。カタログのそれぞれは,一つ以上の SQL スキーマ,0 個以上の外部サーバ記述

子,及び 0 個以上の外部データ覆い記述子を含む。

−  スキーマの内容によって記述されるとおりの,SQL データを含む格納場所,主として,実表。このデ

ータは,

“データベース (database)”と考えてもよいが,一般の文脈では,異なる意味をもつので,JIS 

X 3005 (ISO/IEC 9075)

規格群では,その用語を用いない。

4.2.2 SQL

エージェント 

SQL

エージェント  (SQL-agent)  は,SQL 文の実行を引き起こすエージェントとする。SQL の直接起動

5.3.3.3 SQL の直接起動”参照)の場合には,それは,処理系定義とする。代わりに,実行されたとき

に,SQL クライアントモジュール中の外部呼出し手続を呼び出す一つ以上の翻訳単位から成ってもよい。

4.2.3 SQL

処理系 

SQL

処理系  (SQL-implementation)  は,SQL エージェントによって要求されるとおりに SQL 文を実行す

る処理系とする。SQL 処理系は,SQL エージェントによって認識されるとおりに,SQL エージェントが結

合される一つの SQL クライアントを含み,かつ,一つ以上の SQL サーバを含む。SQL 処理系は,SQL 環

境中に二つ以上の SQL サーバが存在することを許さないで,JIS X 3005  (ISO/IEC 9075)  規格群に適合す

ることができる。

SQL

処理系は,SQL 文をどのように実行するかによってだけ規定することができるので,この概念は,

あるソフトウェア(データベース管理システム)を導入したものを示す。JIS X 3005 (ISO/IEC 9075)  規格

群は,ソフトウェアベンダによって決定される SQL 処理系の機能と,組込み元によって決定されるそれら

とを区別しない。

JIS X 3005 (ISO/IEC 9075)

規格群は,SQL クライアント及び SQL サーバのソフトウェアが異なるベン

ダから得られた可能性があることを認識しており,SQL クライアントと SQL サーバとの間の通信方法を

規定しない。

4.2.3.1 SQL

クライアント 

SQL

クライアント  (SQL-client)  は,SQL 処理系の部分として SQL エージェントによって認識される処

理系で,それ自体と SQL サーバとの間の SQL コネクションを確立し,それ自体と SQL エージェント及び

SQL

サーバとの間の相互作用に関連する診断領域及び他の状態データを維持する。

一つ以上の SQL コネクションが SQL クライアントに対して確立されたとき,その SQL クライアントに

よって維持される診断領域は,現行 SQL コネクションの SQL サーバによって維持される診断領域スタッ

ク(

4.8.4  診断情報”参照)中の 1 番目の診断領域の写しとする。SQL コネクションが存在しないとき,

診断領域は,空か,又は失敗した SQL コネクションに関係する診断情報を含むかのいずれかとする。


7

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

4.2.3.2 SQL

サーバ 

各 SQL

サーバ  (SQL-server)  は,SQL 処理系の部分として SQL エージェントによって認識される処理系

で,SQL データを管理する。

各 SQL サーバは,次のことを行う。

−  それ自体と SQL クライアントとの間の SQL コネクションを通して発生する SQL セションの管理。

− SQL クライアントから受け取った SQL 文の実行,及び要求されるとおりのデータの送受信。

−  認可識別子及び幾つかのセション既定値を含む SQL セションの状態の維持。

4.2.4 SQL

クライアントモジュール 

SQL

クライアントモジュール  (SQL-client module)  は,処理系定義の機構によって陽に作成され,削除さ

れるモジュールとする。

SQL

クライアントモジュールは,必ずしも名前をもたない。名前をもつならば,許される名前は,処理

系定義とする。

SQL

クライアントモジュールは,0 個以上の

外部呼出し手続  (externally-invoked procedure)  を含む。外部

呼出し手続は,単一の SQL 文から成る。外部呼出し手続は,ホスト言語の翻訳単位から呼び出される。

いつでも,ただ一つの SQL クライアントモジュールが SQL エージェントに関連付けられる。しかし,

直接結合様式又は SQL/CLI のいずれかの場合には,これは,存在が利用者に見えない既定の SQL クライ

アントモジュールでもよい。

4.2.5 

利用者識別子 

利用者識別子  (user identifier)  は,利用者を表現する。利用者識別子を作成及び破壊する手段,並びに実

際の利用者とそれらとの対応付けは,JIS X 3005 (ISO/IEC 9075)  規格群では規定しない。

4.2.6 

役割 

役割  (role)  は,権限の潜在的な権限受領者及び権限付与者,並びに他の役割の潜在的な権限受領者及び

権限付与者とする。役割は,スキーマ及び他のオブジェクトを所有することもできる。

役割認可  (role authorization)  は,役割に対して付与された全ての権限を権限受領者(“4.6.11  権限”参照)

が用いることを許す。それは,役割認可が付与可能であるかどうかも示し,付与可能な場合には,権限受

領者は,役割を付与すること,役割の付与を剝奪すること,及び役割を破壊することを認可される。

4.2.7 

利用者対応付けの概念 

利用者対応付けは,認可識別子を外部サーバ記述子と対にする。

4.2.8 

ルーチン対応付けの概念 

ルーチン対応付けは,SQL 呼出しルーチンを外部サーバ記述子と対にする。

注記 9  JIS X 3005 (ISO/IEC 9075)  規格群のこの版では,外部サーバ記述子と対にされる SQL 呼出し

ルーチンは,SQL 呼出し通常関数に制限される。将来の版で,この制限を削除するかもしれ

ない。

4.2.9 

カタログ及びスキーマ 

4.2.9.1 

カタログ 

カタログ  (catalog)  は,SQL 環境中の SQL スキーマ,外部サーバ記述子及び外部データ覆い記述子の名

前付きの集まりとする。カタログを作成及び破壊するための機構は,処理系定義とする。

<PREPARE

文>及び<EXECUTE IMMEDIATE 文>の実行によって,現行 SQL セション中で動的に準備さ

れる<準備可能文>に対する既定のカタログ名は,最初は,処理系定義とするが,<SET CATALOG 文>の利

用によって変更してもよい。


8

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

4.2.9.2 SQL

スキーマ 

スキーマ  (schema)  としてよく単純に参照される SQL スキーマ  (SQL-schema)  は,記述子の永続する名

前付きの集まりとする。SQL スキーマ中に記述子があるどのオブジェクトも,SQL

スキーマオブジェクト

(SQL-schema object)

として知られている。

スキーマ,その中のスキーマオブジェクト,及びそれらによって記述される SQL データは,スキーマに

関連付けられる認可識別子によって所有されるという。

SQL

スキーマは,SQL スキーマ文の実行(又は処理系定義の機構)によって作成され,破壊される。

4.2.9.3 

情報スキーマ 

どのカタログも,INFORMATION_SCHEMA(情報スキーマ)という名前をもつ SQL スキーマを含む。

その SQL スキーマは,多くのスキーマオブジェクトの記述子,主としてビュー定義を含み,SQL データ

であるかのように,そのカタログ中の全ての記述子をアクセスすることも許すが,変更することは許さな

い。

情報スキーマ中のビューを通して利用可能なデータは,情報スキーマそれ自体の記述子を含む。そのデ

ータは,定義スキーマのスキーマオブジェクト又は実表を含まない(

4.2.9.4  定義スキーマ”参照)

各情報スキーマビューは,与えられた利用者が権限をもつ記述子を表現するビューの行だけをその利用

者がアクセスできるように規定している。

4.2.9.4 

定義スキーマ 

定義スキーマ  (definition schema)  は,DEFINITION_SCHEMA という名前をもつ架空のスキーマとする。

存在するとしたならば,そのスキーマの実表中の SQL データは,SQL サーバに利用可能な全ての SQL ス

キーマを記述する。JIS X 3005 (ISO/IEC 9075)  規格群では,情報スキーマのビューのための基礎として用

いるためにだけ,それを定義している。

定義スキーマの構造は,SQL のデータモデルの表現とする。

4.2.10 

外部サーバ及び記述子 

外部サーバは,SQL 処理系の一部ではない処理系とする。外部サーバは,外部サーバ記述子によって記

述される。外部サーバは,SQL 環境の一部ではないデータを管理する。SQL サーバ及び SQL クライアン

トは,カタログ要素である外部サーバ記述子を用いて外部サーバと通信することができる。外部サーバに

よって管理されるデータは,SQL スキーマ要素である外部表を通して SQL サーバ又は SQL クライアント

からアクセスできる。

4.2.11 

外部データ覆い及び記述子 

外部データ覆いは,外部サーバによって管理されるデータを SQL サーバがアクセスできる機構を提供す

る。外部データ覆いは,外部データ覆い記述子によって記述される。

4.2.12 SQL

データ 

SQL

データ  (SQL-data)  は,SQL スキーマによって記述されるデータ,すなわち,SQL 環境中の SQL 処

理系の制御下にあるデータとする。

4.3 

 

表  (table)  は,0 個以上の行の集まりとし,各行は,一つ以上の列値の並びとする。一般に,表中の行は,

順序付けられていない。しかし,表が,<ORDER BY 句>を直に含む<問合せ式>の結果ならば,表中の行

は,順序付けられる。各列は,名前及びデータ型をもつ。各行は,各列 に対して,ただ一つの値をもち,

その値のデータ型は,のデータ型とする。

SQL

データは,

実表  (base table)  と呼ばれる表変数だけで構成される。0 個以上の実表を参照し,表を


9

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

戻す操作を

問合せ  (query)  と呼ぶ。問合せの結果は,導出表  (derived table)  と呼ぶ。導出表の行は,順序

付けられてもよい。

表の行は,

“行型 (row type)”と呼ばれる型をもつ。表のどの行も,同じ行型をもち,これを表の行型と

する。ある構造型を基にして宣言される表を“型付き表 (typed table)”と呼ぶ。その表の列は,名前及び

宣言型が構造型の属性に対応する。型付き表は,型が表の構造型に関連付けられる参照型である“自己参

照列 (self-referencing column)”と呼ばれる一つの付加的な列をもつ。

型付き表 TB1 が,関連付けられた構造型 TP1 をもち,その構造型が別の構造型 TP2 の下位型ならば,

TB1

は,関連付けられる型が TP2 である型付き表 TB2 の“下位表 (subtable)”として定義することができ

る。この場合,TB2 は,TB1 の“上位表 (supertable)”とする。

ビュー  (view)  は,名前付きの問合せとし,その名前を用いて呼び出すことができる。このような呼出し

の結果を

ビュー表  (viewed table)  と呼ぶ。

ビューを含めて問合せの中には,SQL データを変更する文の相手として現れることができるという意味

で,

更新可能  (updatable)  なものがある。この方法で表現する変更の結果は,実表への対応する変更によ

って定義する。

実表又はビュー表のどの二つの列も,同じ名前をもつことができない。ビュー表以外の導出表は,同じ

名前をもつ二つ以上の列を含んでもよい。

実表は,

(記述子がスキーマ中にある)スキーマオブジェクト(

4.6.5  実表及びその構成要素”参照)か

又は(記述子がモジュール中にある)モジュールオブジェクト(

4.9  モジュール”参照)かのいずれかと

する。記述子がスキーマ中にある実表は,

作成実表  (created base table)  と呼び,(その記述子は,いずれの

場合でも,永続であるが,

)永続又は一時のいずれであってもよい。

永続実表  (persistent base table)  は,永

続 SQL データの 0 個以上の行を含む。永続実表は,

通常永続実表  (regular persistent base table)  又はシス

テムバージョン表  (system-versioned table)  のいずれかとする。システムバージョン表は,次の二つの大き

な点で通常永続実表と異なる。

−  システムバージョン表は,値が自動的に生成される日時型の二つの列をもつ。

−  システムバージョン表の更新及び削除の操作は,それらの列を保守し,その他の副次効果をもつ。

モジュール中で宣言される実表は,一時だけとし,

宣言一時表  (declared temporary table)  と呼ぶ。

一時表  (temporary table)  は,他のどの SQL セションからもアクセスできない SQL セションオブジェク

トとする。

大域一時表  (global temporary table)  は,関連付けられるどの SQL クライアントモジュールから

もアクセスできる。

局所一時表  (local temporary table)  は,それが局所となるモジュールからだけアクセス

できる。

SQL

セションを開始するとき,一時表は,空とし,その一時表の記述子に依存して,SQL トランザクシ

ョンを終了するか,又は SQL セションを終了するかのいずれかのとき,空にされる(すなわち,その一時

表の全ての行が削除される。

4.4 SQL

データ型 

4.4.1 

データ型一般情報 

どのデータ値も,あるデータ型に属する。

どのデータ型も,

既定義  (predefined),構成  (constructed)  又は利用者定義  (user-defined)  のいずれかとす

る。どのデータ型も,名前をもつ。既定義又は構成のデータ型の名前は,JIS X 3005 (ISO/IEC 9075)  規格

群のデータ型を規定する規格によって規定する予約語とする。利用者定義型の名前は,その利用者定義型

の定義中で与える。利用者定義のデータ型は,スキーマオブジェクトとする(

4.6.4  利用者定義型”参照)


10

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

既定義のデータ型は,JIS X 3005 (ISO/IEC 9075)  規格群によって規定するデータ型とする。したがって,

SQL

処理系によって提供される。データ型を指定するとき,あるパラメタ(例えば,数の精度)を利用者

が与えることを要求する(又は許す)としても,そのデータ型は,既定義とする。

既定義のデータ型は,基本単位とする。基本単位の型は,他のデータ型の値を複合していない値をもつ

データ型とする。データ列又は日時の値の部分を選択することができる操作(SUBSTRING,EXTRACT)

が存在するが,データ列又は日時が基本単位ではないことを意味するわけではない。

構成型は,基本単位又は複合のいずれかとする。複合の型は,値のそれぞれが,宣言型のそれぞれの 0

個以上の値から成るデータ型とする。

4.4.2 

ナル値 

どのデータ型も,

ナル値  (null value)  と呼ばれる特殊な値を含み,ときには,それをキーワード NULL

で示す。この値は,次の点において他の値とは異なる。

−  どのデータ型中にもナル値があるので,キーワード NULL によって暗に想定されるナル値のデータ型

を推論することができない。したがって,NULL は,定数が許される全ての場所ではなく,ある文脈

中でだけナル値を示すために用いることができる。

−  ナル値は,幾つかの文脈中で,他のどの値とも等しくもなく,等しくなくもない,すなわち,与えら

れたどの値とも等しいかどうかが

不定  (unknown)  であるが,複数のナル値は,一緒にして扱う。例え

ば,<GROUP BY 句>は,全てのナル値を一緒にして扱う。

4.4.3 

既定義型 

4.4.3.1 

数型 

2

種類の数型,すなわち,整数型及び指定された精度と位取りとをもつ型を含む

真数  (exact numeric),

並びに本質的に浮動小数点であり,省略可能な精度を指定してもよい

概数  (approximate numeric)  がある。

どの数も,

精度  (precision)(桁数)をもち,真数型は,位取り(小数点以下の桁数)ももつ。異なる数

型又は同じ数型のオペランドに対して,算術演算を実行してもよく,その結果は,オペランドの数型にだ

け依存する数型とする。結果が結果の型で正確に表現できないならば,それを丸めるか又は切り捨てるか

は,処理系定義とする。結果が結果の型の数値の範囲外か,又はオペランドに対して算術演算が定義され

ていないならば,例外条件が引き起こされる。

4.4.3.2 

文字列型 

文字列型  (character string type)  の値は,ある文字レパートリから引き出した文字のデータ列(並び)と

する。文字列 中の文字は,全て,同じ文字集合 CS から引き出される。が,ある式 の値ならば,CS

は,の宣言型に対して指定される文字集合とする。文字列型は,処理系定義のある最大長までの固定長

か又は可変長のいずれかとする。

文字長大オブジェクト型  (character large object type)  の値は,ある文字

レパートリからの文字のデータ列とし,常に,ただ一つの文字集合に関連付けられる。

長大オブジェクト

文字列  (large object character string)  は,処理系定義のある最大長までの可変長とし,その最大長は,他の

文字列の最大長よりもおそらく大きい。

文字列は,データ型中で CHARACTER SET を指定することによって,特定の文字集合を基にするもの

として指定してもよい。データ型として NATIONAL CHARACTER,NATIONAL CHARACTER VARYING

若しくは NATIONAL CHARACTER LARGE OBJECT(又は幾つかの構文的に等価なもののうちの一つ)を

指定することによって,処理系によって

各国文字集合  (national character set)  に選択された特別の文字集

合を指定してもよい。


11

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

4.4.3.3 2

進オクテット列型 

2

進オクテット列型  (binary string type)  の値は,オクテットのデータ列(並び)とする。2 進オクテット

列型は,処理系定義のある最大長までの固定長か又は可変長のいずれかとする。2

進オクテット長大オブ

ジェクト型  (binary large object type)  の値は,オクテットのデータ列とする。長大オブジェクト 進オクテ

ット列  (binary large object string)  は,処理系定義のある最大長までの可変長とし,その最大長は,他の 2

進オクテット列の最大長よりもおそらく大きい。

4.4.3.4 

ブール型 

ブール  (boolean)  データ型の値は,真  (true)  又は偽  (false)  のいずれかとする。不定  (unknown)  の真理

値がナル値によって表現されることもある。

4.4.3.5 

日時型 

日時フィールドから成る値を指定する三つの

日時型  (datetime type)  がある。

データ型 TIMESTAMP の値は,日時フィールド YEAR(0001 から 9999 まで)

,MONTH,DAY,HOUR,

MINUTE

及び SECOND の値から成る。

データ型 TIME の値は,日時フィールド HOUR,MINUTE 及び SECOND の値から成る。

データ型 DATE の値は,日時フィールド YEAR(0001 から 9999 まで)

,MONTH 及び DAY の値から成

る。

DATE

の値は,グレゴリオ暦による正しい日付とする。TIME の値は,正しい時刻とする。

TIMESTAMP

及び TIME には,小数秒精度の(10 進)桁数を指定してもよい。

TIMESTAMP

及び TIME には,WITH TIME ZONE も指定してもよく,その場合には,どの値も,一つの

時刻帯時差が関連付けられる。WITH TIME ZONE 付きのデータ型の値の比較では,時刻帯時差の値を無視

する。

4.4.3.6 

時間隔型 

時間隔型  (interval type)  の値は,時刻の期間の間隔を表現する。2 種類の時間隔がある。1 種類は,年月

時間隔  (year-month interval)  と呼ばれ,YEAR フィールド若しくは MONTH フィールド,又はそれらの両

方を含む時間隔精度をもつ。もう 1 種類は,

日時刻時間隔  (day-time interval)  と呼ばれ,陽に指定される

か又は暗に想定される時間隔精度をもち,YEAR 又は MONTH 以外の連続するフィールドの任意の集合を

含むことができる。

4.4.3.7 XML

 

XML

型の値は,XML 値と呼ぶ。

4.4.4 

基本単位の構成型 

4.4.4.1 

参照型 

参照型  (reference type)  は,構成データ型で,その型の値は,被参照型の値を保持している格納場所を参

照する(又は指す)

。そのように参照してもよい格納場所は,型付き表の行だけとする。したがって,どの

被参照型も,構造型ということになる。

4.4.5 

複合の構成型 

4.4.5.1 

集まり型 

集まり  (collection)  は,要素型  (element type)  として知られる指定されたデータ型の 0 個以上の要素から

成る。

配列  (array)  は,必ずしも異ならない値の順序付けられた集まりとし,その集まりの要素は,配列中の

順序位置によって参照する。


12

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

配列型は,配列型構成子によって指定する。

マルチ集合  (multiset)  は,必ずしも異ならない値の順序付けられない集まりとする。

マルチ集合型は,マルチ集合型構成子によって指定する。

4.4.5.2 

フィールド 

フィールドは,

(フィールド名,データ型)対とする。フィールドの値は,そのフィールドのデータ型の

値とする。

4.4.5.3 

行型 

行型は,一つ以上のフィールドの並びとする。行型の値は,そのフィールドの値の並びとする。

4.5 

格納場所及び格納場所に関する演算 

4.5.1 

格納場所 

格納場所  (site)  は,指定されたデータ型の値の実現値を保持する場所とする。全ての格納場所は,デー

タ型とは無関係に,定義された永続性の程度をもつ。意図的に破壊されるまで存在する格納場所は,

永続

的  (persistent)  であるという。複合 SQL 文の完了,SQL トランザクションの終了,又は SQL セションの終

了で必然的に存在しなくなる格納場所は,

一時的  (temporary)  であるという。引数又は戻り値を保持する

必要のある間だけ存在する格納場所は,

過渡的  (transient)  であるという。

既に示したとおり,永続的又は一時的な主要な格納場所は,実表とする。実表は,特殊な種類の格納場

所とし,SQL 処理系が強制するように要求される制約を,その表の値に対して指定することができる

4.6.5.4  表制約”参照)

幾つかの格納場所は,それらの名前で参照してもよい。これは,例えば,実表及び SQL 変数([ISO9075-4]

参照)である。幾つかの格納場所は,REF 値で参照してもよい。配列の要素によって占められる格納場所

は,その要素の要素番号で参照してもよい。

4.5.2 

代入 

格納場所の実現値は,

代入  (assignment)  の操作によって変更することができる。代入は,[相手  (target)

として知られている]格納場所の実現値を,

代入元  (source)  の値として知られている](おそらく異な

る)値の新しい実現値で置き換える。代入において,格納場所の参照値があったとしても,その値に対す

る効果はない。

4.5.3 

ナル可能性 

全ての格納場所には,

ナル可能性特性  (nullability charasteristic)  があり,その特性は,ナル値を含むこ

とができる[

潜在的にナル可能  (possibly nullable)  である]か,できない[ナル可能でないことが分かる

(known not nullable)

]かを示す。実表の列だけを,ナル可能でないことが分かるように制約することができ

るが,そのような列から導出される列は,その特性を引き継ぐことができる。

表に行が存在しなくてもよいが,表は,ナルではあり得ない。

4.6 SQL

スキーマオブジェクト 

4.6.1 SQL

スキーマオブジェクト一般情報 

SQL

スキーマオブジェクトは,記述子をもつ。永続実表の記述子は,SQL データとしての存在に依存は

しているが別のものである永続オブジェクトを記述する。他の記述子は,[少なくとも JIS X 3005

(ISO/IEC 9075)

規格群が関係する限りにおいて,

]それらの記述子とは異なる存在をもたない SQL オブジ

ェクトを記述する。したがって,例えば,

“表明記述子 (assertion descriptor)”がより厳密に正確であるとき,

“表明 (assertion)”という用語を用いても,正確さを失うことはない。

全てのスキーマオブジェクトは,それが属する名前の種類のオブジェクト間でスキーマ内で一意な名前


13

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

をもつ。名前の種類は,次のとおりとする。

−  実表及びビュー。

−  定義域及び利用者定義型。

−  表制約,定義域制約及び表明。

− SQL サーバモジュール。

−  トリガ。

− SQL 呼出しルーチン(特定名だけとする。これは,陽に指定しなくてもよいが,その場合は,処理系

依存である。

−  文字集合。

−  照合順。

−  文字変換。

−  順序数生成子。

幾つかのスキーマオブジェクトは,それらが属するオブジェクト内で一意となるように要求される名前

をもつ名前付きの構成要素をもつ。したがって,列は,実表又はビューの,一意な名前付きの構成要素と

し,属性は,構造型の,一意な名前付きの構成要素とし,フィールドは,行型の,一意な名前付きの構成

要素とする。

幾つかのスキーマオブジェクトは,SQL 処理系によって提供されてもよく,利用者が作成することも削

除することもできない。

4.6.2 

文字集合に関連する記述子 

4.6.2.1 

文字集合 

文字集合  (character set)  は,名前付きの文字符号化形式  (character encoding form)  と同様に,文字列型

の値を構成するために用いてもよい,文字の名前付きの集合[

文字レパートリ  (character repertoire)]をも

つ。どの文字集合も,

既定照合順  (default collation)  をもつ。SQL 処理系によって提供される文字集合は,

他の規格によって定義されても,SQL 処理系によって定義されても,情報スキーマ中で表現される。

文字が SQL 処理系に完全に含まれるとき,それらを符号化して文字列にまとめる方法は,処理系依存と

する。文字がホストプログラム又は SQL 処理系の外側の他の実体との間で交換されるとき,文字集合は,

各文字を表現するために用いるビット列を指定する符号化,及び文字の集まりを文字列にまとめるために

用いる仕組み (scheme) を指定する

文字符号化形式  ももつ。

SQL

処理系によって提供されるどの文字集合の文字レパートリも,JIS X 0221 [ISO10646]  で規定してい

る国際文字集合のレパートリの部分集合とする。

JIS X 0221 [ISO10646]

の“6.5  符号位置の短い識別子  (UID) (Short identifiers for code positions) (UIDs)”

で規定している表記法は,JIS X 3005 (ISO/IEC 9075)  規格群の文字及び文字列の正規の表現とする。

注記 10  JIS X 0221 [ISO10646]  は,“私用 (private use)”のための符号位置の範囲を割り当てる。JIS X 

0221  [ISO10646]

の将来の版は,SQL 処理系での提供を必要とするようなより多くの符号位

置をおそらく追加するだろう。

4.6.2.2 

照合順 

照合順  (collation)  は,特定の文字レパートリ中で文字列を順序付けるための名前付きの操作とする。

文字列型で宣言する格納場所には,

データ型の部分として扱われる照合順をもつように指定してもよい。

どの照合順も,[ISO14651]  のような国際規格によって定義されるか若しくはそれから導出されるか,国


14

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

家規格によって定義されるか,又は処理系定義の照合順でなければならない。

4.6.2.3 

文字変換 

文字変換  (transliteration)  は,ある文字集合の文字列から,必ずしも異ならない与えられた文字集合の文

字列への対応付けのための名前付きの操作とする。その操作は,文字変換の名前によって識別される外部

関数の呼出しによって実行される。文字列全体がこの関数に渡され,文字列が戻されるので,必ずしも一

つの文字から一つの文字への対応付けである必要はなく,一つ以上の文字の並びから一つ以上の文字の別

の並びへの対応付けであってもよい。

4.6.3 

定義域及びその構成要素 

4.6.3.1 

定義域 

定義域  (domain)  は,データ型を指定できる幾つかの箇所にデータ型の代替として指定できる名前付き

の利用者定義オブジェクトとする。定義域は,データ型,省略可能な既定値選択肢,及び 0 個以上の(定

義域)制約から成る。

4.6.3.2 

定義域制約 

定義域制約  (domain constraint)  は,その定義域制約の定義域を基にする各列に対する表制約として作用

することによって,そのような全ての列に適用される。

定義域制約は,関連付けられる定義域を基にする列にだけ適用される。

定義域制約は,定義域への型変換 (cast) 操作の結果となるどの値にも適用される。

4.6.4 

利用者定義型 

4.6.4.1 

利用者定義型の導入 

利用者定義型は,<利用者定義型名>によって識別されるスキーマオブジェクトとする。利用者定義型は,

個別型  (distinct type)  か又は構造型  (structured type)  のいずれかとする。

4.6.4.2 

個別型 

個別型  (distinct type)  は,ある既定義型又は集まり型を基にする利用者定義のデータ型とする。個別型

の値は,それが基にする型の値によって表現される。

個別型の引数は,同じ個別型のパラメタに対してだけ渡すことができる。これは,そのデータ型の引数

に関してどのルーチンを呼び出すことができるかを厳密に制御することを可能とする。

4.6.4.3 

構造型 

構造型  (structured type)  は,名前付きの利用者定義のデータ型とする。属性  (attribute)  は,構造型の名

前付きの構成要素とする。構造型の各属性は,データ型及び既定値をもつ。

構造型の値は,幾つかの

属性値  (attribute value)  から成る。属性値は,隠蔽されている  (encapsulated)  と

いう。すなわち,アクセス可能だとしても,利用者に対して直接アクセス可能でない。属性値は,その値

を戻す

観測関数  (observer function)  として知られている関数を呼び出すことによってだけアクセス可能と

する。構造型の値は,

位置付け子  (locator)  によってアクセスすることもできる。

構造型は,その型の

直接上位型  (direct supertype)  として知られている別の構造型の下位型  (subtype)  と

して定義してもよい。下位型は,その型の直接上位型の全ての属性を

継承  (inherit)  し,それ自体の追加の

属性をもってもよい。下位型の式は,その型の上位型の式が許されるどの場所に現れてもよい[この概念

は,

代替可能性  (substitutability)  として知られている。]。さらに,式の値は,式の宣言型のどの下位型の

値であってもよい。

構造型を基にして一つ以上の実表を定義することができる。構造型 ST を基にする実表は,ST の上位型

を基にする実表の

下位表  (subtable)  にすることができる。


15

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

構造型を基にして一つ以上のビューを定義することができる。構造型 ST を基にするビューは,ST の上

位型を基にするビューの下位ビュー (subview) にすることができる。

4.6.5 

実表及びその構成要素 

4.6.5.1 

実表 

実表  (base table)  は,表の値を保持する格納場所とする(“4.3  表”参照)。全ての SQL データは,実表

中に保持される。

実表が構造型を基にするならば,その表の

上位表  (supertable)  である一つ以上の別の実表の下位表

(subtable)

であってもよい。

4.6.5.2 

 

列  (column)  は,表の名前付きの構成要素とする。列は,データ型,既定値,及びナル可能性特性をも

つ。

4.6.5.3 

期間 

期間  (period)  は,単一の実表に関連付けられるオブジェクトとする。ある表に対する期間定義は,その

表に対して定義された列名の対に期間名を関連付ける。それらの列は,両方とも,日時データ型で,かつ,

ナル可能でないことが分かっていなければならない。さらに,両方の列の宣言型が同一でなければならな

い。

4.6.5.4 

表制約 

表制約  (table constraint)  は,単一の実表に関連付けられる整合性制約とする。

表制約は,

一意性制約  (unique constraint),主キー制約  (primary key constraint),参照制約  (referential 

constraint)

又は

検査制約  (check constraint)  のいずれかとする。

一意性制約は,

一意列  (unique columns)  として表の一つ以上の列を指定する。一意性制約を満たすこと

は,表中のどの二つの行も,ナルを除き一意列中に同じ値をもたないことと同値とする。

主キー制約は,PRIMARY KEY を指定する一意性制約とする。主キー制約を満たすことは,表中のどの

二つの行も,ナルを除き一意列中に同じ値をもたず,かつ,指定された一つ又は複数の列中のどの値も,

ナル値でないことと同値とする。

参照制約は,

参照列  (referencing columns)  として一つ以上の列を指定し,被参照表  (referenced table)  と

して参照される(必ずしも別の表ではない)ある実表の対応する

被参照列  (referenced columns)  を指定する。

このような被参照列は,被参照表の一意性制約の一意列とする。参照表中の全ての行に対して,参照列の

値が,被参照表中のいずれかの行の対応する被参照列の値と等しいならば,参照制約を常に満たす。しか

し,ナル値が存在するならば,参照制約を満たすことは,ナルに対して指定する[

一致型  (match type)  と

して知られている]扱いに依存する。

参照動作  (referential action)  は,被参照表に対する変更が参照制約の違反を引き起こすことになる場合

に参照表に対してどんな変更を行うべきかを決定するために指定してもよい。

表検査制約は,

探索条件  (search condition)  を指定する。表の,いずれかの行に対して,探索条件の結果

偽  (False)  ならば,制約に違反する(しかし,不定  (Unknown)  ならば,違反しない。)。

4.6.5.5 

トリガ 

トリガ  (trigger)  は,単一の実表又は単一のビュー表に関連付けられるオブジェクトとする。トリガは,

当該表  (subject table),トリガ事象  (trigger event),トリガ動作時期  (trigger action time)  及び一つ以上の被

トリガ動作  (triggered actions)  を指定する。

トリガ事象は,

当該表に関するどんな動作が被トリガ動作を引き起こさなければならないかを指定する。


16

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

トリガ事象は,INSERT,DELETE 又は UPDATE のいずれかとする。

トリガ動作時期は,被トリガ動作がトリガ事象の前(BEFORE)に実行されるか,代わり(INSTEAD OF)

に実行されるか,又は後(AFTER)に実行されるかを指定する。

被トリガ動作は,一つの<SQL 手続文>か,又は BEGIN ATOMIC,その後に続く,それぞれが<セミコロ

ン>で終了する一つ以上の<SQL 手続文>,及びその後に続く END のいずれかとする。

4.6.6 

ビュー定義 

ビュー  (view)[厳密には,ビュー定義  (view definition)]は,多くの目的のために実表と同じ方法で用い

てもよい名前付きの問合せとする。ビューの値は,問合せを評価した結果とする(

4.3  表”も参照)

4.6.7 

表明 

表明  (assertion)  は,検査制約とする。探索条件の結果が偽  ならば,制約に違反する(しかし,不定  な

らば,違反しない。

4.6.8 SQL

サーバモジュール([ISO9075-4]  で規定) 

SQL

サーバモジュール  (SQL-server module)  は,スキーマオブジェクトであるモジュールとする(“4.9  モ

ジュール”参照)

4.6.9 

スキーマルーチン 

スキーマルーチン  (schema routine)  は,スキーマオブジェクトである SQL 呼出しルーチンとする(“4.10

ルーチン”参照)

4.6.10 

順序数生成子 

順序数生成子  (sequence generator)  は,連続した真数値を一度に一つ生成するための機構とする。順序

数生成子は,

外部順序数生成子  (external sequence generator)  又は内部順序数生成子  (internal sequence 

generator)

のいずれかとする。内部順序数生成子は,他のスキーマオブジェクトの構成要素とするが,外

部順序数生成子は,名前付きのスキーマオブジェクトとする。順序数生成子は,データ型をもち,その型

は,位取り 0 の真数型でなければならない。順序数生成子は,時刻とともに変化する

現在基底値  (current 

base value)

をもち,それは,順序数生成子のデータ型の値とする(詳細は,[ISO9075-2]  の“4.22  順序数

生成子”参照)

4.6.11 

権限 

権限  (privilege)  は,指定されたスキーマオブジェクトを利用するために,又は指定されたスキーマオブ

ジェクトに関する指定された動作を実行するために必要となる認可の,

(認可識別子,役割又は PUBLIC

のいずれかである)指定された権限受領者への,ある権限付与者による付与を表現する。指定可能な動作

は,SELECT,INSERT,UPDATE,DELETE,REFERENCES,USAGE,UNDER,TRIGGER 及び EXECUTE

とする。

付与選択肢付き  (with grant option)  の権限は,付与選択肢付き又は付与選択肢なしで,権限受領者が別

の権限受領者にその権限を付与することを認可する。

階層選択肢付き  (with hierarchy option)  の SELECT 権限は,権限が付与される表の,既に存在するか又は

将来追加されるかもしれない全ての下位表に関する SELECT 権限を権限受領者に自動的に与える。

可能などの権限受領者も,PUBLIC に付与された権限によって認可される。情報スキーマ中のどのスキ

ーマオブジェクトに対しても,付与選択肢付きの SELECT 権限が PUBLIC に付与される。

スキーマオブジェクトを作成する認可識別子には,そのオブジェクトに関する可能な全ての権限が,付

与選択肢付きで自動的に付与される。

スキーマオブジェクトに関する権限をもつ認可識別子だけが,そのオブジェクトの存在を知ることがで


17

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

きる。

4.7 

整合性制約及び制約検査 

4.7.1 

制約検査 

制約を記述するスキーマオブジェクトには,表明及び(表の列が基にしてもよい定義域の定義域制約も

含む)表制約の 2 種類があり,これらは,同じ方法で検査される。

表制約は,

強制  (enforced)  か,又は強制でない  (not enforced)  かのいずれかとする。定義域制約及び表

明は,常に強制とする。

どの制約も,

遅延可能  (deferrable)  か,又は遅延可能でない  (not deferrable)  かのいずれかとする。

どの SQL セション中でも,全ての制約がその SQL セションの特性である制約モード (constraint mode)

をもつ。各制約は,

(永続的な)既定の制約モードをもち,各 SQL セション中の各 SQL トランザクション

とともに,そのモードで制約が始まる。

制約モードは,

遅延  (deferred)  又は即時  (immediate)  のいずれかとし,制約が遅延可能の場合に,SQL

文によって設定することができる。

トランザクションが開始するとき,各制約の制約モードには,それの既定値が設定される。

どの SQL 文の実行の完了時にも,制約モードが即時である全ての強制制約が検査される。

トランザクションの終了前に,全ての制約モードには,即時が設定される(したがって,全ての強制制

約が検査される。

4.7.2 

決定性及び制約 

式の評価結果は,非決定的であってもよい。例えば,データ型が可変長文字列の列の場合には,重複の

排除後に残る値は,たとえデータが同じであっても,時機が異なれば異なってもよい。これは,後続する

空白の個数が互いに重複する値の間で異なってもよいために起こる可能性があり,重複が排除された後に

保持すべき値は,JIS X 3005 (ISO/IEC 9075)  規格群で規定しない。したがって,その値の長さは,非決定

的 と な る 。 こ の よ う な 場 合 に , 式 , 及 び 導 出 さ れ る 値 を も つ 式 は ,

潜 在 的 に 非 決 定 的   (possibly 

non-deterministic)

であるという[列を更新する全ての SQL エージェントが後続する空白を取り除くかもし

れないが,このことは,SQL 処理系が知り得ないので,

“潜在的 (possibly)”である。

潜在的に非決定的な式を含む制約は,ある時点で満たされても,その後のある時点で満たされないかも

しれないので,制約がそのような式を含むことは許されない。

ルーチンは,決定的であることを主張してもよい。それが決定的でないならば,ルーチンを呼び出す効

果は,処理系依存とする。

4.8 SQL

エージェントと SQL サーバとの間の通信 

4.8.1 

ホスト言語 

ホスト言語  (host language)  は,SQL エージェントを記述するために用いることができるプログラム言語

とする。SQL エージェントと成功裏に通信する SQL 処理系に対しては,SQL 処理系によって提供される

ホスト言語を用いて,SQL エージェントを書かなければならない。SQL 処理系によって提供されるホスト

言語の集合は,処理系定義とする。[ISO9075-2][ISO9075-3]  及び  [ISO9075-10]  は,SQL 処理系と幾つ

かのプログラム言語との間の結合を規定し,それらのほとんどの言語に対して,JIS 又は国際規格が存在

する。規格に適合する SQL 処理系は,JIS X 3005  (ISO/IEC 9075)  規格群が結合を規定する少なくとも一

つのホスト言語を提供することが要求される。

結合様式  (binding style)  として知られている幾つかの通信方法がある。

−  ([ISO9075-2]  で規定する)SQL クライアントモジュール結合様式。この結合様式では,利用者は,


18

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

処理系定義の機構を用いて,SQL クライアントモジュールとして利用すべきモジュールを指定する。

−  ([ISO9075-3]  で規定する)呼出しレベルインタフェース。この場合には,SQL エージェントは,あ

る SQL 文を値としてもつ文字列などの適切な引数を渡して,多くの標準ルーチンのうちの一つを呼び

出す。

−  ([ISO9075-2]  及び  [ISO9075-10]  で規定する)埋込み SQL。この場合には,SQL 文を適用業務プロ

グラム中に記述する。次のことを行うために処理系依存の機構が用いられる。

・  各 SQL 文から外部呼出し手続を生成する。これらの手続は,SQL クライアントモジュールとして

の後で用いるために,一つのモジュールにまとめる。[ISO9075-10]  で規定するオブジェクト言語結

合では,モジュール及び手続の役割は,クラス及びそれらのメソッドが果たす。

・  各 SQL 文を,それから生成された外部呼出し手続又はメソッドの呼出しに置き換える。

−  ([ISO9075-2]  で規定する)SQL の直接起動。直接起動は,利用者と直接通信するフロントエンドを

通して,SQL 文を直接実行する方法とする。

どの結合様式を選択しても,SQL 文は,

ソース言語文字集合  (source language character set)  として知ら

れている処理系定義の文字集合で記述する。ソース言語文字集合が SQL データ中に現れるどの文字列の文

字集合とも同じである必要はない。

[ISO9075-2]

は,SQL クライアントモジュール中の外部呼出し手続がホスト言語プログラムによって呼

び出されるときの,外部呼出し手続の動作を規定する。[ISO9075-10]  は,SQL クライアントのクラスのメ

ソッドがホストプログラムによって呼び出されるときの,メソッドの動作を規定する。

4.8.2 

パラメタの渡し方及びデータ型対応 

4.8.2.1 

パラメタの一般的な渡し方及びデータ型対応情報 

外部呼出し手続のパラメタリスト中の各パラメタは,名前及びデータ型をもつ。翻訳単位に対する外部

ルーチンの参照とその翻訳単位との間の結合の方法及び時期は,処理系定義とする。

4.8.2.2 

データ型対応 

JIS X 3005 (ISO/IEC 9075)

規格群は,SQL のデータ型とホスト言語のデータ型との間の対応を規定する。

全ての SQL のデータ型が全てのホスト言語中に,対応するデータ型をもつわけではない。

4.8.2.3 

位置付け子 

ホスト変数,ホストパラメタ,外部ルーチンの SQL パラメタ,又は外部関数によって戻される値は,

置付け子  (locator)  として指定してもよい。位置付け子の目的は,非常に大きいデータの実現値の値全体

を SQL エージェントとの間で転送しないで,それらの値を操作することを許すことにある(詳細は,

[ISO9075-2]

の“4.30.5  位置付け子”参照)

4.8.2.4 

状態パラメタ 

どの外部呼出し手続も,

状態パラメタ  (status parameter)  として知られている SQLSTATE と呼ばれる出

力パラメタをもつ必要がある。

SQLSTATE

は,長さ 5 の文字列とし,それの値は,JIS X 3005 (ISO/IEC 9075)  規格群の各規格で規定す

る。値が’00000’の SQLSTATE 値は,外部呼出し手続の最も新しい呼出しが成功したことを示す。

4.8.2.5 

標識パラメタ 

標識パラメタ  (indicator parameter)  は,(標識パラメタ以外の)パラメタの直後に続けて指定することに

よって,それに関連付けられる整数パラメタとする。標識パラメタ中の負の値は,関連付けられたパラメ

タがナルであることを示す。1 以上の値は,関連付けられたパラメタの値を切り捨てる必要がなかったな


19

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

らば,その値の長さが何であったかを示す。これは,文字列型及び他の幾つかのデータ型で発生してもよ

い。

標識パラメタが関連付けられないパラメタにナル値が代入されることになるならば,例外条件が引き起

こされる。

4.8.3 

記述子領域 

記述子領域  (descriptor area)  (記述子と混同してはならない。)は,SQL エージェントの要求で SQL 処

理系が割り当てる名前付き領域とする。記述子領域は,SQL 処理系と SQL エージェントとの間の通信の

ために用いる。SQL エージェントと記述子領域との間で情報を転送するための SQL 文がある。

4.8.4 

診断情報 

診断領域  (diagnostics area)  は,SQL 処理系が割り当てる通信領域とし,一つ以上の条件  (condition)  が

引き起こされたときに,それらの条件をその診断領域中に記録する。

SQL

処理系が(SQL 診断文以外の)SQL 文を実行するときには,SQL 処理系は,その実行の結果とし

て生じる一つ以上の条件を表現する値を診断領域中に設定する。これらの値は,何が発生したかを示す標

識を与える。それらは,SQL 診断文によってアクセスすることができる。SQL 診断文の実行は,記録され

るべき条件を引き起こさない。

規格に適合する SQL 処理系は,同時に二つ以上の条件を設定する必要がない。

SQL

文 SS が SQL サーバによって実行されているとき,複数の診断領域が存在してもよい。これは,SS

の実行が完了する前に,同時に,SS の実行が別の SQL 文の実行を引き起こす,幾つかの特定の状況で発

生する。複数の診断領域は,プッシュダウンスタックを形成し,そのスタックの 1 番目の要素が,最も新

しく実行された SQL 文に関連した情報を含む。追加の診断領域が存在するようになる場合の二つの例とし

て,SS が<CALL 文>であるか又は<CALL 文>を含む場合,及び SS の実行が被トリガ動作の実行を引き起

こす場合がある。

4.8.5 SQL

トランザクション 

SQL

トランザクション  (SQL-transaction)[トランザクション  (transaction)]は,回復に関しての基本単

位となる,SQL 文の実行の並びとする。すなわち,実行結果が成功終了であるか,どの SQL スキーマ又

は SQL データにも影響を与えないかのいずれかとする。

どの時点においても,SQL エージェントと SQL 処理系との間には,高々一つの現行 SQL トランザクシ

ョンが存在する。

現行 SQL トランザクションがないならば,

トランザクション開始文  (transaction-initiating statement)  の

実行又は<副問合せ>の評価がトランザクションを開始する。

どの SQL トランザクションも,COMMIT 文又は ROLLBACK 文のいずれかによって終了する。これら

の文のいずれかの実行が暗に想定されてもよい。

SQL

トランザクションは,

トランザクション状態  (transaction state)  をもつ。トランザクション状態の

幾つかの特性は,SQL 文の実行によって設定される。そのような SQL 文は,現行の SQL トランザクショ

ンがないときにだけ実行してもよい。トランザクションが開始される時点又はその後の,SQL クライアン

トが SQL サーバに接続するか又はコネクションを設定する最初の契機で,その SQL サーバに特性が送ら

れる。

SQL

トランザクションの

トランザクションアクセスモード  (transaction access mode)  は,トランザクシ

ョンが(どの永続 SQL データの変更も許されない)読込み専用か,又は(永続 SQL データの変更が許さ

れる)読み書き可能かを示す。


20

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

SQL

トランザクションの

トランザクション隔離性水準  (transaction isolation level)  は,SQL 環境中の別の

SQL

エージェントによる動作の効果がその SQL トランザクション内で認識される程度を指定する。

どのトランザクション隔離性水準も,全ての SQL トランザクションが実行されることを保証する。完全

に実行されない SQL トランザクションは,完全に失敗する。どのトランザクション隔離性水準も,更新が

失われないことを保証する。最も高いトランザクション隔離性水準である SERIALIZABLE は,時刻で重

なる SQL トランザクションの効果が,それらが時刻で重ならなかった場合に与えることになった効果と同

じであることを意味する

直列化可能  (serializable)  実行を保証する。他のトランザクション隔離性水準であ

る REPEATABLE READ,READ COMMITTED 及び READ UNCOMMITTED は,順に,より低い水準の隔

離性を保証する。

4.9 

モジュール 

3

種類のモジュールが存在し,それらのそれぞれは,幾つかの特性をもち,

(モジュール内容としても知

られている)様々な種類のモジュールオブジェクトを含む。主要なモジュールオブジェクトは,一つ以上

のルーチンとする(

4.10  ルーチン”参照)

モジュールは,次のうちの一つとする。

−  外部呼出し手続だけを含む SQL クライアントモジュール。

− SQL 呼出しルーチンだけを含む SQL サーバモジュール。

4.10 

ルーチン 

4.10.1 

ルーチン一般情報 

表 1“外部呼出しルーチンと SQL 呼出しルーチンとの間の関係”は,SQL から呼び出されるルーチン及

び別の言語から呼び出されるルーチンだけでなく,SQL で書かれたルーチン及び別の言語で書かれたルー

チンとの可能な様々な組合せに対して用いる用語を示す。

表 1−外部呼出しルーチンと SQL 呼出しルーチンとの間の関係

 SQL

で書かれたルーチン

SQL

以外の言語で書かれたルーチン

SQL

から呼び出されるルーチン SQL 関数及び SQL 手続

外部関数及び外部手続

SQL

以外の言語から呼び出されるルーチン

外部呼出し手続

SQL

に関連しない。

SQL

呼出しルーチン  (SQL-invoked routine)  は,SQL から呼び出すことができるルーチンとする。それは,

関数又は手続のいずれかとする。幾つかの関数は,

メソッド  (method)  としてそれらを特徴付ける特別な

特性をもつ。

SQL

呼出しルーチンは,スキーマオブジェクトか,又は(それ自体がスキーマオブジェクトである)SQL

サーバモジュールの構成要素のいずれかとする。

SQL

呼出し手続  (SQL-invoked procedure)  は,SQL の CALL 文によって呼び出される手続とする。SQL

呼出し関数  (SQL-invoked function)  は,任意の値式中のルーチン呼出しによって呼び出される。

外部ルーチン  (external routine)  は,指定されるプログラム言語の,SQL 環境外にある翻訳単位を参照す

る SQL 呼出しルーチンとする。そのような参照の結合の方法及び時期は,処理系定義とする。

SQL

ルーチン  (SQL routine)  は,ルーチン本体が SQL で書かれた SQL 呼出しルーチンとする。

SQL

呼出しルーチンの名前は,一意である必要がない。二つ以上のルーチンが同じ名前を共有するなら

ば,その名前は,

オーバロードされ  (overloaded)  るといい,その名前の呼出しは,署名が呼出しの引数と

最も一致するルーチンの実行を引き起こす。通常,最も一致することを決定するときに,引数値を示す式


21

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

の宣言型だけが考慮されるが,固有の構文を用いて呼び出すメソッドの場合には,引数の一つの最特定型

が考慮される。

4.10.2 

型保持関数 

RESULT

を指定するパラメタを SQL 呼出し関数がもつならば,そのパラメタは,

結果パラメタ  (result 

parameter)

として知られ,結果パラメタのデータ型と結果のデータ型とが同じ利用者定義型ならば,その

関数は,

型保持関数  (type preserving function)  という。型保持関数の結果は,結果パラメタの値とし,潜在

的に変異する。

どの変異関数も,型保持関数とする。

4.11 SQL

 

4.11.1 SQL

文の種類 

SQL

文は,JIS X 3005 (ISO/IEC 9075)  規格群の規格で規定する

形式及び構文規則に適合する文字列とす

る。

ほとんどの SQL 文は,SQL クライアントモジュールで,実行のために準備し,実行することができる。

この場合には,SQL 文が準備されるときに単一の SQL 文をもつ外部呼出し手続が作成され,準備された

SQL

文が実行されるときにはいつでも,その外部呼出し手続が暗に呼び出される。

SQL

文の分類方法には,少なくとも次の五つの方法がある。

−  永続オブジェクト(すなわち,SQL データ,SQL スキーマ及びそれらの内容,若しくは SQL クライ

アントモジュール)か,又は(SQL セション及びその他の SQL 文のような)一時オブジェクトかに

かかわらず,SQL オブジェクトに対する効果による方法。

− SQL トランザクションが動作中でないときに,SQL トランザクションを開始するかどうか,又は実行

できるか若しくは実行しなければならないかどうかによる方法。

−  ホスト言語で書かれたプログラム中に埋め込んでもよいかどうかによる方法。

−  直接起動してもよいかどうかによる方法。

−  動的に準備し,実行してもよいかどうかによる方法。

JIS X 3005 (ISO/IEC 9075)

規格群は,これらのカテゴリのいずれかに分類できる処理系定義の追加の文

を処理系が提供することを許す。

4.11.2 

機能によって分類された SQL  

SQL

文の大まかな種類を,次に示す。

−  スキーマ及びスキーマオブジェクトの作成,変更及び破壊のために用いることができる SQL スキーマ

文。

−  表に対する問合せ,並びに挿入,更新及び削除の操作を実行する SQL データ文。SQL データ文の実

行は,二つ以上の表の二つ以上の行に効果を与えることができる。

−  トランザクションに対するパラメタを設定する,又はトランザクションを開始若しくは終了させる

SQL

トランザクション文。

− SQL 文の並びの実行を制御するために用いてもよい SQL 制御文。

−  コネクションを開始若しくは終了する SQL コネクション文,又は SQL クライアントが,ある SQL サ

ーバの SQL セションから別の SQL サーバの SQL セションに切り替えることを可能にする SQL コネ

クション文。

− SQL セションの幾つかの既定値及びその他のパラメタを設定する SQL セション文。


22

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

−  (診断領域から)診断情報を取得する,又は SQL ルーチン中で例外を信号として送る SQL 診断文。

−  動的に生成された SQL 文の準備及び実行,並びにそれらについての情報の取得機能を提供する動的

SQL

文。

JIS X 3005 (ISO/IEC 9075) 

規格群の規格 

5.1 

概要 

この枠組 (Framework) 規格は,他の規格が基にする基本概念及びそれらで用いる表記法を記述するので,

他の全ての規格に必要不可欠なものとする。

[ISO9075-2]

,すなわち,基本機能 (Foundation) は,SQL 文の構造及びそれらの実行の効果を規定する。

第 1 部及び第 2 部以外の JIS X 3005 (ISO/IEC 9075)  規格群のどの規格も,JIS X 3005 (ISO/IEC 9075)  規

格群の他の規格に対する追補として規定する[詳細は,

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

関係”参照]

[ISO9075-3]

,すなわち,呼出しレベルインタフェース (Call-level interface) は,SQL エージェントと SQL

処理系との間の通信の別の機構を規定する。

[ISO9075-4]

,すなわち,永続格納モジュール  (Persistent Stored Modules)  は,SQL を計算完備にする SQL

自体の重要な追加を規定する。

[ISO9075-9]

,すなわち,外部データ管理  (Management of External Data)  は,SQL 環境中の SQL サーバの

制御下にないデータに SQL エージェントがアクセスすることを許すための SQL の重要な追加を規定する。

[ISO9075-10]

,すなわち,オブジェクト言語結合 (Object Language Bindings) は,SQL 文を Java プログ

ラムに埋め込むことを可能にする方法を規定する。

[ISO9075-11]

,すなわち,情報スキーマ及び定義スキーマ  (Information and Definition Schemas)  は  表,

ビュー,列などの永続的なデータベースオブジェクトの名前を適用業務が知ることができるビューを規定

する。

[ISO9075-13]

,すなわち,Java プログラム言語を用いる SQL ルーチン及び型 (SQL Routines and Types

Using the Java™ Programming Language)

は,Java プログラム言語で書いた静的メソッドを SQL 呼出しルー

チンとして呼び出す機能,及び Java プログラム言語で定義したクラスを SQL の構造型として用いる機能

を規定する。

[ISO9075-14]

,すなわち,XML 関連仕様 (XML-Related Specifications) は,データベース言語 SQL を XML

と連携して用いる方法を規定する。

各規格の内容は,次の細分箇条で示す。

5.2 JIS 

3005-1

 

枠組 (SQL/Framework) 

この規格は,次の記述を含む。

− SQL 環境の記述,及び JIS X 3005 (ISO/IEC 9075)  規格群で用いる概念の簡潔な記述。

−  各規格の内容の簡潔な記述。これらの記述は,純粋に参考であり,要件にならない。

−  JIS X 3005 (ISO/IEC 9075)  規格群の全て又はほとんどの規格に適用する表記法及び規約。他の規格は,

必要に応じて規約を更に規定する。

5.3 ISO/IEC 

9075-2

 

基本機能 (SQL/Foundation) 

[ISO9075-2] 

は,SQL の次の機能を規定する。

5.3.1 [ISO9075-2] 

で規定するデータ型 

[ISO9075-2] 

は,次のデータ型を規定する。


23

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

−  全ての数型及びデータ列型。

−  ブール型。

−  全ての日時型及び時間隔型。

−  行型。

−  集まり型。

−  利用者定義型。

−  定義域。

−  参照型。

5.3.2 

 

表の関数従属性及び候補キーの決定規則を定義する。

5.3.3 

結合方法 

[ISO9075-2]

は,SQL エージェントを SQL 処理系と結合する三つの方法を規定する。

5.3.3.1 

埋込み SQL 

埋込み SQL は,

ホスト言語  (host language)  として知られている特定のプログラム言語の規則に従って

書かれる翻訳単位中に SQL 文を埋め込む方法とする。それは,ホスト言語での完全に等価な翻訳単位をど

のようにして導出することができるかを規定する。その等価な翻訳単位では,各埋込み SQL 文は,SQL

文を含むデータベース言語手続を呼び出す一つ以上の文に置き換えられる。

5.3.3.2 

動的 SQL 

動的 SQL は,埋込み SQL の拡張とする。規定する機能は,次による。

− SQL 処理系と SQL エージェントとの間での通信のために用いる記述子領域の割当て及び解放。

−  後に続く実行のための文の準備を含む,SQL 文の実行。

5.3.3.3 SQL

の直接起動 

SQL

の直接起動は,SQL 文を直接実行する方法とする。SQL の直接起動では,次の方法は,処理系定義

とする。

− SQL 文の呼出し方法。

−  そのような文の実行の結果として生じる条件を引き起こす方法。

−  そのような文の実行の結果として生じる診断情報にアクセスする方法。

−  結果を戻す方法。

5.3.4 [ISO9075-2] 

で規定する SQL  

[ISO9075-2] 

で規定する SQL 文の種類を,次に示す。

−  [ISO9075-2]  で規定するスキーマ及びスキーマオブジェクトの作成,変更及び破壊のために用いるこ

とができる SQL スキーマ文。

−  表に対する問合せ,並びに挿入,更新及び削除の操作を実行するために用いることができる SQL デー

タ文。幾つかの SQL データ文は,それらの名前に“動的 (dynamic)”という語を含む。それらを動的

SQL

文と混同してはならない。

−  トランザクションの特性を設定するため,及びトランザクションを開始又は終了するために用いるこ

とができる SQL トランザクション文。

−  手続を呼び出すため,及び関数によって戻される値を指定するために用いることができる二つの SQL

制御文(それぞれ,CALL 及び RETURN)

−  コネクションを開始又は終了するため,及び SQL クライアントに,ある SQL サーバの SQL セション


24

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

から別の SQL サーバの SQL セションに切り替えさせるために用いることができる SQL コネクション

文。

− SQL セションの幾つかの既定値及びその他の特性を設定するために用いることができる SQL セショ

ン文。

−  (診断領域から)診断情報を取得する SQL 診断文。

−  動的に生成される SQL 文の準備及び実行,並びにそれらについての情報の取得のための機能を提供す

る動的 SQL 文。

−  ホスト言語の文に変換される SQL 埋込み例外宣言。

[ISO9075-2] 

は,規定する各 SQL 文に対して,トランザクションが動作中でないときに実行されるなら

ば,どの SQL 文がトランザクションを開始し,どの SQL 文が開始しないかを規定する。

[ISO9075-2] 

は,各 SQL に対して,次のことを規定する。

−  ホスト言語中に埋め込んでもよいかどうか。

−  動的に準備し,実行してもよいかどうか。データを記述子領域に取り出す場合を除いて,どの準備可

能 SQL 文も,即時実行することができる。

−  直接起動してもよいかどうか。

5.4 ISO/IEC 

9075-3

 

呼出しレベルインタフェース (SQL/CLI) 

[ISO9075-3] 

は,多くのプログラム言語のうちの一つで書かれたプログラムと SQL 処理系との間の結合

方法を規定する。その効果は,[ISO9075-2]  で規定する動的 SQL と機能的に等価とする。

次の用途で用いることができる手続(ルーチン)を規定する。

−  資源(記述子又は通信領域)の割当て及び解放。

− SQL クライアントと SQL サーバとの間の SQL コネクションの開始,制御及び終了。

−  後に続く実行のための文の準備を含む,SQL 文の実行。

−  診断情報の取得。

− SQL 処理系についての情報の取得。例えば,SQL クライアントが接続可能な SQL サーバ。

CLI

と結合との重要な差異は,CLI の文脈では多くの SQL 環境を独立に開始及び管理することができる

のに対して,後者の文脈では SQL 環境が一つしか存在しないことにある。結果的に,SQL 環境は,単純

に,様々な機能をもつ環境の集合であると定義されるが,この用語は,CLI では,たくさんあるかもしれ

ないうちの一つの SQL 環境の現在の状態(記述子)を参照するために用いる。したがって,この用語は,

適用業務(SQL エージェント)と SQL クライアントとの間のセション(SQL クライアントと SQL サーバ

との間の,SQL コネクションとして CLI で参照される SQL セションと混同してはならない。

)の意味で用

いる。

5.5 ISO/IEC 

9075-4

 

永続格納モジュール (SQL/PSM) 

[ISO9075-4]

は,追加の SQL 文の構文及び意味を規定することによって,SQL を計算完備にする。

SQL

を計算完備にするものは,次の機能を含む。

−  制御の流れを指示するための文の指定。

−  変数及びパラメタへの式の結果の代入。

−  実行中に引き起こされるかもしれない様々な条件を複合文で扱うことを可能にする条件ハンドラの指

定。


25

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

−  条件を信号として送る又は再送するための文の指定。

−  元祖 SQL サーバカーソルの宣言。

−  局所変数の宣言。

SQL

サーバモジュールを記述するスキーマ情報を含む情報スキーマ表も規定する。

5.5.1 [ISO9075-4] 

で規定する SQL  

[ISO9075-4]

で規定する SQL 文の大まかな種類を次に示す。

− SQL ルーチンの実行を制御するために用いてもよい追加の SQL 制御文。

−  変数及び例外ハンドラを宣言するために用いてもよい SQL 制御宣言。

−  例外を信号として送るために用いてもよい追加の SQL 診断文。

−  モジュールを作成及び破壊するために用いてもよい追加の SQL スキーマ文。

5.6 ISO/IEC 

9075-9

 

外部データ管理 (SQL/MED) 

[ISO9075-9]

は,外部表及びデータリンクデータ型の利用を介して,外部データの管理を支援すること

をデータベース言語 SQL で可能にする機能を規定する。

これらは,次の項目を定義するための機能,及び外部データ源と相互に作用する外部データ覆いと通信

するために,SQL サーバが利用できるルーチンを含む。

−  外部サーバ。

−  外部データ覆い。

−  外部表。

5.7 ISO/IEC 

9075-10

 

オブジェクト言語結合 (SQL/OLB) 

[ISO9075-10]

は,SQL 文を Java プログラムに埋め込むための機能を規定する。

5.8 ISO/IEC 

9075-11

 

情報スキーマ及び定義スキーマ (SQL/Schemata) 

[ISO9075-11]

,すなわち,情報スキーマ及び定義スキーマは,情報スキーマ(INFORMATION_SCHEMA)

及び定義スキーマ(DEFINITION_SCHEMA)の二つのスキーマを規定する。情報スキーマのビューは,表,

ビュー,列などの永続的なデータベースオブジェクトの名前を適用業務が知ることを可能にする。これら

のビューは,定義スキーマの実表によって定義される。定義スキーマの唯一の目的は,情報スキーマを実

現し,理解を助けるためにデータモデルを提供することにある。SQL 処理系は,情報スキーマビューを介

して見られるように,定義スキーマの存在を模擬する以外の必要はない。

5.9 ISO/IEC 

9075-13

 Java

プログラム言語を用いる SQL ルーチン及び型 (SQL/JRT) 

[ISO9075-13]

は,Java プログラム言語で書かれた静的メソッドを SQL 呼出しルーチンとして呼び出す

ことを可能にすること,及び Java プログラム言語で定義されたクラスを SQL 構造型として用いることを

データベース言語 SQL で可能にする機能を規定する。

これらは,次の機能を含む。

− SQL 呼出しルーチンの定義,操作及び呼出しの拡張。

−  利用者定義型の定義及び操作の拡張。

−  新たな組込み手続。

5.10 ISO/IEC 

9075-14

 XML

関連仕様 (SQL/XML) 

[ISO9075-14]

は,XML 文書の作成及び操作を可能にすることをデータベース言語 SQL で可能にする機

能を規定する。

これらは,次の機能を含む。


26

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

−  新たな既定義型である XML。

− XML 型の値を作成及び操作するための新たな組込み演算子。

−  表,スキーマ及びカタログの XML 文書への対応付けのための規則。

JIS X 3005 (ISO/IEC 9075) 

規格群の他の規格で用いる表記法及び規約 

この箇条で規定する表記法及び規約は,より適切なものを各規格で個別に規定する場合を除いて,JIS X 

3005 (ISO/IEC 9075)

規格群の他の規格で用いる。

6.1 JIS 

X 0221 

[ISO10646] 

からの表記法 

UCS

符号位置の表現のための表記法は,JIS X 0221 [ISO10646]  の“6.5  符号位置の短い識別子 (UID)”

で規定している。

この規格群では,この表記法は,文字を曖昧さなく識別するためだけに利用し,処理系がその文字を用

いるための特定の符号化を意味するわけではない。

6.2 

この規格で規定する表記法 

JIS X 3005 (ISO/IEC 9075)

規格群で用いる構文表記法は,拡張を行った BNF[

“バッカス正規形 (Backus

Normal Form

,Backus Naur Form)”

]とする。

BNF

言語定義では,BNF

非終端記号  (BNF nonterminal symbol)  として知られているその言語の各構文要

素は,

生成規則  (production rule)  によって定義する。この生成規則は,要素の実現値を形作るために用い

ることができる,文字,文字列及び構文要素から成る式によって要素を定義する。

JIS X 3005 (ISO/IEC 9075)

規格群で用いる BNF の記号及びその意味を

表 2“BNF で用いる記号”に示す。

表 2BNF で用いる記号

記号

 

意味

 

<>

山括弧で囲まれた文字列は,SQL 言語の構文要素(BNF 非終端)の名前とする。

::=

定義演算子は,規則によって定義される要素をその定義から分離するために,生成規則中で用いる。定義さ
れる要素は,この演算子の左側に現れ,その要素を定義する式は,右側に現れる。

[]

角括弧は,式中で省略可能な要素を示す。式中の角括弧で囲まれた部分は,陽に指定してもよいし,省略し
てもよい。

{}

波括弧は,式中の要素をまとめる。式中の波括弧で囲まれた部分は,陽に指定しなければならない。

|

代替手段演算子。縦棒は,式中で縦棒に後続する部分が縦棒に先行する部分の代替手段であることを示す。
縦棒が波括弧又は角括弧に囲まれない部分に現れるならば,それは,その生成規則によって定義される要素

の完全な代替手段を示す。式中で縦棒が波括弧又は角括弧に囲まれた部分に現れるならば,それは,最も内

側の波括弧又は角括弧の中の要素の代替手段を示す。

...

省略符号は,式中で適用される要素を任意の回数繰り返してもよいことを示す。省略符号が閉じ波括弧“}”
の直後に現れるならば,式中でその閉じ波括弧及びそれに対応する開き波括弧“{”で囲まれた部分に適用す

る。省略符号が他の要素の後に現れるならば,その要素にだけ適用する。

構文規則,アクセス規則,一般規

則及び適合性規則では,そのようなリスト中の 番目の要素の参照は,ほかに記述がない限り,それらが指
定される順序を仮定する。

!!

普通の自然言語の文を導入する。これは,構文要素の定義が BNF で表現されないときに用いる。

空白は,構文要素を分離するために用いる。複数の空白及び改行は,単一の空白として扱う。上記で特

別な機能が与えられた記号以外の,式中のその他の文字及び文字列は,それら自体を表す。加えて,生成

規則中の定義演算子の右側の記号が BNF 記号だけから成るならば,これらの記号は,それ自体を表し,そ

の特別な意味はもたない。


27

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

波括弧の対及び角括弧の対は,任意の深さの入れ子にすることができ,代替手段演算子は,そのような

入れ子のどの深さで現れてもよい。

構文要素の実現値を形作る文字列は,次の段階を適用することによって,その構文要素の BNF 定義から

生成することができる。

1)

要素に対して,生成規則の右側に定義されている要素から一つの選択肢を選択し,その要素をその

選択肢で置き換える。

2)

各省略符号及びそれが適用される対象を,その対象の一つ以上の実現値で置き換える。

3)

角括弧で囲まれた各文字列部分に対して,その角括弧及びその内容を削除するか又はその角括弧を

波括弧で置き換える。

4)

波括弧で囲まれた各文字列部分に対して,その波括弧内の部分文字列に 1)5)  までの段階を適用

し,波括弧を取り除く。

5)

文字列中に残っている BNF 非終端記号に対して,1)5)  までの段階を適用する。

展開又は生成は,文字列中に非終端記号がなくなったときに完了する。

ソース言語文字集合中の文字列 CS の,BNF 非終端 NT からの左正規形導出は,5)  の段階で常に最も左

の BNF 非終端を選びながら,上記 1)5)  までの段階を NT に適用することによって得られる。

6.3 

規約 

6.3.1 

構文要素の規定 

構文要素は,次によって規定する。

機能 (Function):要素の目的についての短い文。

形式 (Format):要素の構文の BNF 定義。

構文規則 (Syntax Rules):要素が満たさなければならず,BNF で表現されない,要素の構文的な特性

若しくは付加的な構文上の制約又はその両方の,自然言語での規定。

アクセス規則 (Access Rules):一般規則が成功裏に適用される前に満たされなければならない,スキ

ーマオブジェクトへのアクセス可能性を決める規則の自然言語での規定。

一般規則 (General Rules):要素の実行時効果についての自然言語での規定。要素の効果を規定するた

めに,二つ以上の

一般規則を用いるとき,要求される効果は,規則の適用の順番の変更又は終了を指

定するか暗に想定する規則が適用されない限り,最初の

一般規則から始めて,番号順にそれらの規則

を適用することによって得られる効果とする。適用される特定の規則によって指定されるか又は暗に

想定されない限り,

一般規則の適用は,番号順で最後の規則が適用されたときに終了する。

適合性規則 (Conformance Rules):SQL に適合するために,要素がどのように提供されなければならな

いかの規定。

表記記号の適用範囲は,それらの記号を定義する細分箇条とする。細分箇条内では,

構文規則,アクセ

ス規則又は一般規則中で定義された記号は,参照される前に定義されているという条件で,その他の規則

中で参照することができる。

6.3.2 

情報スキーマ及び定義スキーマの規定 

JIS X 3005 (ISO/IEC 9075)

規格群の情報スキーマ及び定義スキーマのオブジェクトは,次によって規定

する。

機能 (Function):定義の目的についての短い文。


28

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

定義 (Definition):定義されるオブジェクトの SQL での定義。

記述 (Description):定義からは明らかではない範囲の,オブジェクトの実行時の値の規定。

適合性規則 (Conformance Rules):SQL に適合するために,要素がどのように提供されなければならな

いかの規定。

情報スキーマ中のビュー定義は,これらのビュー表の内容を規定するためにだけ用いている。これらの

ビューが基にする実際のオブジェクトは,処理系依存とする。

6.3.3 

用語の使用 

6.3.3.1 

構文上の包含関係 

構文要素を<A>,<B>及び<C>とする。<A>,<B>及び<C>の実現値を,それぞれ,A1B1 及び C1 とす

る。

形式中で,<A>の BNF 生成規則の右側に<B>が現れるならば,<A>は,<B>を直に含む  (immediately 

contain)

という。<A>が<C>を直に含むか,又は<C>を含む<B>を<A>が直に含むならば,<A>は,<C>を

含む  (contain)  又は指定する  (specify)  という。

SQL

言語中で,<A>が<B>を直に含み,かつ,B1 が A1 のテキストの部分ならば,A1 は,B1 

直に含

む  という。A1 が C1 を直に含むか,又は A1 が B1 を直に含み,かつ,B1 が C1 を含むならば,A1 は,

C1

含む  又は指定する  という。A1 が C1 を含むならば,C1 は,A1 に含まれ  (contained in),A1 によっ

て指定され  (specified by)  る。

A1

が B1 を含み,かつ,B1 を含む<C>の実現値を A1 が含むならば,A1 は,<C>の

実現値を介在して  (with 

an intervening instance ofB1

を含むという。A1 が B1 を含み,かつ,B1 を含む<C>の実現値を A1 が含まな

いならば,A1 は,<C>の

実現値を介在しないで  (without an intervening instance ofB1 を含むという。

A1

が<A>の実現値又は<B>の実現値を介在しないで B1 を含むならば,A1 は,B1 

単純に含む  (simply 

contain)

A1 が B1 

単純に含む  ならば,B1 は,A1 に単純に含まれ  (simply contained in)  る。

<

副問合せ>,<WITHIN GROUP 指定>,又は<順序付け集合関数>ではない<集合関数指定>の実現値を介

在しないで A1 が B1 を含むならば,A1 は,B1 

直接含む  (directly contain)。

<A>

の実現値が<B>の実現値を含むならば,<B>は,<A>

に含まれる  といい,<A>は,<B>を含む

(containing)

生成記号という。<A>の実現値が<B>の実現値を単純に含むならば,<B>は,<A>

に単純に含

まれる  (simply contained in)  といい,<A>は,<B>を単純に含む  (simply containing)  生成記号という。

A1

が条件 を満たし,かつ,を満たす<A>の実現値を A1 が含まないならば,A1 は,を満たす

最も

内側の  (innermost) <A>とする。A1 が条件 を満たし,かつ,を満たす<A>の実現値に A1 が含まれない

ならば,A1 は,を満たす

最も外側の  (outermost) <A>とする。

<

ビュー定義>によって定義されるビューを識別する<表名>を<A>が含むならば,<A>は,に含まれ

る<問合せ式>を

一般に含む  (generally contain)  という。<問合せ式>QE を識別する<問合せ名>を<A>が含

むならば,<A>は,QE 

一般に含むという。<A>が<B>を含むならば,<A>は,<B>を一般に含む。<A>

が<B>を一般に含み,かつ,<B>が<C>を一般に含むならば,<A>は,<C>を一般に含む。

<

ルーチン呼出し>,<メソッド呼出し>,<静的メソッド呼出し>又は<メソッド参照> RI を<A>が含むな

らば,<A>は,RI の当該ルーチンの集合中の全ての SQL ルーチンの<SQL ルーチン本体>を

広く含む

(broadly contain)

という。<A>が<B>を一般に含むならば,<A>は,<B>を広く含む。<A>が<B>を広く含み,

かつ,<B>が<C>を広く含むならば,<A>は,<C>を広く含む。

注記 11  “<ルーチン呼出し>,<メソッド呼出し>,<静的メソッド呼出し>又は<メソッド参照>の当該


29

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

ルーチンの集合”は,[ISO9075-2]  の“10.4 <ルーチン呼出し>”で定義している。

注記 12  広く含む関係 (broad containment) は,処理系定義要素又は適合性の機能などの選択機能を規

定するためだけに用いる。

形式中で,

(“であり”などの文法上の全ての変形も含めて,

“である”という語は,次のとおりに定義

される。<A> ::= <B>  という形式の BNF 生成規則が存在するならば,<A>は,<B>

である  という。<A>

が<B>であり,かつ,<B>が<C>であるならば,<A>は,<C>(である)とする。<A>が<C>(である)な

らば,<C>は,<A>を

構成する  (constitute)  という。SQL 言語では,<A>が<B>で(あり),A1 のテキスト

が B1 のテキスト(である)ならば,A1 は,B1 であるという。逆に,A1 が B1 であるならば,B1 は,A1

構成する  という。

6.3.3.2 

規則の要件を示す用語 

構文規則中で,

(し)なければならない  (shall)  という用語は,SQL 言語に構文上適合するために真とな

ることが要求される条件を定義する。そのような条件は,それらが一つ以上のスキーマの内容に依存する

とき,

一般規則によって規定している動作を行う直前に,真であることが要求される。SQL の形式及び構

文規則に適合しない言語の扱いは,処理系依存とする。アクセス規則又は一般規則の評価を行おうとした

ときに,

構文規則によって要求されるいずれかの条件が満たされず,かつ,適合しない SQL 言語も,適合

する SQL 言語を適合しない方法でも,処理系が処理しないならば,例外条件:

構文誤り又はアクセス規則

違反  (syntax error or access rule violation)  が引き起こされる。

アクセス規則中で,(し)なければならない  という用語は,一般規則の適用を成功させるために満たす

ことが要求される条件を定義する。そのようないずれかの条件が

一般規則を適用するときに満たされない

ならば,例外条件:

構文誤り又はアクセス規則違反  が引き起こされる。

適合性規則中で,(し)なければならない  という用語は,一つ又は複数の名前付きの機能を提供する必

要がない場合に真となることが要求される条件を定義する。

6.3.3.3 

規則の評価順序 

規格に適合する処理系は,

一般規則で規定する動作をそのままの順番で実行することは要求されないが,

SQL

データ及びスキーマ,ホストパラメタ及びホスト変数,並びに SQL パラメタ及び SQL 変数に対する

効果は,その順番での効果と同じでなければならない。

実効的に  (effectively)  という用語は,処理系が効

果を別の方法で達成してもよい動作を強調するために用いる。

ある構文要素に含まれる構文要素に対する

構文規則及びアクセス規則は,その構文要素を含む構文要素

に対する

構文規則及びアクセス規則と実効的に同じ時点で適用する。ある構文要素に含まれる構文要素に

対する

一般規則は,実効的にその構文要素を含む構文要素に対する一般規則の前に適用する。

演算子の優先順序が JIS X 3005 (ISO/IEC 9075)  規格群の

形式又は括弧によって決定されるところでは,

それらの演算子は,実効的にその優先順序によって指定される順序で適用する。

演算子の優先順序が

形式又は括弧によって決定されないところでは,式の実効的な評価は,一般に

(generally)

左から右に行う。しかし,特に,オペランド若しくは演算子が条件を引き起こすことになると

き,又は式の結果がその式の全ての部分を完全に評価することなしに決定できるとき,式を

実際に

(actually)

左から右に評価するかどうかは,処理系依存とする。

一般には,ある構文要素が二つ以上の別の構文要素を含むならば,それらを含む構文要素の生成規則中

で,前に現れている含まれる要素に対する

一般規則を,後に現れている含まれる要素に対する一般規則の

前に適用する。

例えば,次の生成規則


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  <SQL 手続文>”の一般規則が明記しているときにだ

け呼び出される。

式又は探索条件の結果が,その式又は探索条件のある部分の結果に依存しないならば,式又は探索条件

のその部分を

非本質的  (inessential)  であるという。決定的であり,かつ,SQL データを潜在的に修正しな

い SQL 呼出し関数の呼出しは,

非本質的  であるとみなす。非決定的であるか又は SQL データを潜在的に

修正する SQL 呼出し関数の呼出しを,

本質的  (essential)  であるとみなすか,非本質的  であるとみなすか

は,処理系定義とする。

非本質的部分に関わる

アクセス規則を満たさないならば,非本質的である部分が実際に評価されるかど

うかにかかわらず,例外条件:

構文誤り又はアクセス規則違反  が引き起こされる。非本質的である部分

の評価が例外条件を引き起こすことになるならば,その例外条件を引き起こすかどうかは,処理系依存と

する。

式の結果の計算中に,

SQL

処理系は,

その結果を決定するときに用いる一つ以上の

中間結果  (intermediate 

result)

を生成してもよい。中間結果を含む格納場所の宣言型は,処理系依存とする。

6.3.3.4 

条件付き規則 

条件付き規則は,

“ならば (If)”又は“場合 (Case)”規約を用いて規定する。

“場合”規約を用いて規定

する規則は,

“ならば”

規約を用いる条件付き部分規則の細別を含む。

条件が真である最初のこのような

“な

らば”部分規則は,

“場合”規則の実効的な部分規則とする。

“場合”規則の最後の部分規則は,

“そうでな

ければ (Otherwise)”を指定してもよく,この場合には,

“場合”規則中の先行するどの“ならば”部分規

則も満たさないならば,

“そうでなければ”部分規則は,

“場合”規則の実効的な部分規則とする。最後の

部分規則が“そうでなければ”を指定せず,かつ,条件が真である部分規則がないならば,

“場合”規則の

実効的な部分規則は,存在しない。

6.3.3.5 

構文上の置換え 

構文規則及び一般規則中で,“が暗に想定される (implicit)”という句は,要素 を実際に指定したか

のように,

構文規則及び一般規則を解釈すべきことを示す。与えられた細分箇条の構文規則内で,要素が

陽に指定されたか又は暗に想定されるかは,知られている。

構文規則及び一般規則中で,“次の<x>が暗に想定される。Y”という句は,Y  を含む構文要素<x>を実際

に指定したかのように,

構文規則及び一般規則を解釈すべきことを示す。

構文規則及び一般規則中で,“前者  は,後者  と等価とする”という句は,要素中の前者  の全ての実現

値が

後者  の実現値であるかのように,構文規則及び一般規則を解釈すべきことを示す。

細分箇条が定義する BNF 生成規則中に BNF 非終端記号がどのように含まれるかを規定しないで,その

BNF

非終端記号がその細分箇条中で参照されるならば,次による。

場合:

− BNF 非終端記号が,細分箇条中で定義されるそのもの自体ならば,その参照は,定義している生成規


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)  として実行されるという。

値 が値 

部分  (is part of)  であることは,次のことと同値とする。

−  が表で,かつ,が の行である。

−  が行で,かつ,が のフィールドである。

−  が集まりで,かつ,が の要素である。

−  が,の部分であるいずれかの値の部分である。

値が部分をもつならば,その値の実現値が部分をもつことになる。したがって,その値が占める格納場

所が部分をもち,それらの部分のそれぞれも,格納場所となる。

項目 が項目 

部分  であることは,次のことと同値とする。

−  が行で,かつ,が の列である。

−  が<ルーチン呼出し>で,かつ,が の SQL パラメタである。

−  が利用者定義型の実現値で,かつ,が の属性である。

−  が X2 の部分であり,かつ,X2 が の部分であるような項目 X2 が存在する。

JIS X 3005 (ISO/IEC 9075)

規格群の他の規格で,その規格だけで用いる追加の用語を定義してもよい。

6.3.3.7 

例外 

別の方法で規定する場合を除いて,

“例外条件:  が引き起こされる”という句は,

“例外条件:”に条

件の名前が続き,次のことを示すために,

一般規則中及びその他の場所で用いる。

−  文の実行が不成功である。

−  “6.3.3.8  例外条件で終了しない一般規則”で規定していない細分箇条の

一般規則の適用を終了して

いるかもしれない。

−  診断情報が利用可能になる。

−  文の実行が SQL データ又はスキーマにどんな効果も与えない。

例外条件で終了する SQL 文の代入相手及び SQL 記述子領域に与える効果は,JIS X 3005 (ISO/IEC 9075)

規格群で陽に定義していない限り,処理系依存とする。

“終了条件:  が引き起こされる”という句は,

“終了条件:”に条件の名前が続き,

一般規則の適用が


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)  という。あるオブジェクト の記述子が,

あるオブジェクト の記述子を含み,かつ,の記述子が,あるオブジェクト の記述子を一般に含むな

らば,の記述子は,の記述子を

一般に含む  (generally include)。

別の場合には,包含関係が存在しなくても,別のある SQL オブジェクトが存在しなければ,幾つかの

SQL

オブジェクトは,存在することができない。例えば,表明によって参照される表が存在しないならば,

SQL

は,その表明の存在を許さない。したがって,表明記述子は,一つ以上の表記述子に

依存している  (be 

dependent on)

又は

依存する  (depend on)  (等価的に,表明は,一つ以上の表に依存している  又は依存す

る。)。一般には,記述子 D1 は,ある記述子 D2 に依存する又は依存しているといえる。

あるオブジェクト の記述子が,あるオブジェクト の記述子に依存し,かつ,の記述子が,あるオ

ブジェクト の記述子に一般に依存するならば,の記述子は,の記述子に

一般に依存する  (generally 

depend)

又は

一般に依存している  (be generally dependent on)。

SQL

文の実行の結果として,多くの記述子が作成されてもよい。SQL 文の結果として作成される SQL

オブジェクトは,その SQL 文の実行の結果として作成されるだけの別の記述子に依存してもよい。

注記 14  これは,特に,<スキーマ定義> SQL 文の場合に関連がある。<スキーマ定義>は,例えば,<

表制約>を更に含む多くの<表定義>を含んでもよい。一つの<表定義>中の単一の<表制約>は,

別の<表定義>によって作成される 2 番目の表を参照してもよく,その別の<表定義>自体が最

初の表への参照を含んでもよい。完全な<スキーマ定義>の実行中に必要な全ての記述子が作

成されるという条件で,別の記述子への各表の依存性が正しくなる。


33

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

一つの SQL オブジェクトの別のオブジェクトへの依存性を示す二つの方法がある。多くの場合,依存し

ている SQL オブジェクトの記述子は,それが依存している SQL オブジェクト“の名前を含む (include the

name of)

”という。この場合,

“の名前”は,

“の記述子を識別するために十分な情報”を意味するものと

して理解しなければならない。代わりに,依存している SQL オブジェクトの記述子は,それが依存してい

る SQL オブジェクトのテキスト(例えば,<問合せ式>,<探索条件>など)を含むといってもよい。しか

し,そのような場合,処理系が(既定値及び想定値を明確にした)実際のテキストを含むか,又は処理系

独自の様式の構文解析木を含むかは,無関係とする。すなわち,その記述子の正当性は,その中で参照し

ているオブジェクトの記述子の存在に,明らかに“依存している”

ビューの場合には,ビューが依存する他の SQL オブジェクトを決定するために,

(階層的な<問合せ式>

ではなく,

)元の<問合せ式>を用いる。

注記 15  階層的な<問合せ式>は,ビューの全ての下位表を説明するために用いる。の階層的な<

問合せ式>に依存性があるならば,この依存性は,のどの下位表の元の<問合せ式>でも見

つかる。元の<問合せ式>に依存性があるビューの破壊は,残存している上位表の階層的な<

問合せ式>を依存性なしに書き換えることになる。

列が定義域を“基にする (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]  の箇条,

細分箇条又は附属書を補う。これは,典型的に,段落,

形式項目,表,図,規則又は注記の追加又は置換


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]  のうちの一つ以

上に対する修正は,相互に作用しない。追加規格によって行われる修正は,その規格の言語仕様にだけ影

響があり,それらの仕様は,他のどの追加規格によって行われる修正にも影響を受けない。


35

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

6.3.5.2 

新しい表及び図並びに修正される表及び図 

JIS X 3005 (ISO/IEC 9075)

規格群のいずれかの追加規格の

表が  [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 (ISO/IEC 9075)

規格群のいずれかの追加規格の

図が [ISO9075-2][ISO9075-3][ISO9075-4] 

又は [ISO9075-11] 

図と同一の名前をもつところでは,追加規格が [ISO9075-3][ISO9075-4]  又は 

[ISO9075-11] 

自体でない限り,

図の番号が対応するかどうかにかかわらず,その図は,[ISO9075-2]

[ISO9075-3]

[ISO9075-4]  又は [ISO9075-11] 

図を補う。

[ISO9075-2]

[ISO9075-3][ISO9075-4]  及び/又は [ISO9075-11] 

表又は図が,ある追加規格の表又

図によって修正されるか又は置き換えられるとき,その追加規格では,修正する Object の少し上に現れ

る規則又は段落中に,典型的に“

この Object は,JIS X 3005-n (ISO/IEC 9075-n)  の Object    nn.nnxxxxx”

を修正する。(This Object modifies Object nn.nn, “xxxxx”, in ISO/IEC 9075-n.)”という形式の文が見つかる。

[ISO9075-2]

,[ISO9075-3],[ISO9075-4]  及び/又は  [ISO9075-11]  の

表又は図が,ある追加規格の表又

図によって修正されるか又は置き換えられるとき,[ISO9075-2],[ISO9075-3],[ISO9075-4]  及び/又は

[ISO9075-11]

表又は図の題名に先行して,修正するか又は置き換える表又は図を含む追加規格の番号を

含む小さく赤い囲み (small red box) がある。

注記 16  この規格の印刷された冊子では,小さい囲み及びその内容は,灰色又は黒色になるかもしれ

ない。

追加規格の

表又は図が,[ISO9075-2],[ISO9075-3],[ISO9075-4]  及び/又は  [ISO9075-11]  のどの表又

図の名前とも同一でない名前をもつところでは,それは,その追加規格固有の仕様を提供する。

6.3.5.3 

機能 

修正される細分箇条では,修正する細分箇条からの

機能で,元の細分箇条の機能を完全に置き換える。

6.3.5.4 

新しい形式項目及び修正される形式項目 

修正される箇条及び細分箇条では,BNF 非終端記号(すなわち,::=  印の左側に現れる BNF 非終端記

号)を定義する

形式項目は,[ISO9075-2],[ISO9075-3],[ISO9075-4]  及び/若しくは  [ISO9075-11]  に定

義が現れる

形式項目を修正するか,[ISO9075-2],[ISO9075-3],[ISO9075-4]  及び/若しくは  [ISO9075-11]

に定義が現れる

形式項目を置き換えるか,又は  [ISO9075-2],[ISO9075-3],[ISO9075-4]  及び/若しくは

[ISO9075-11]

に定義が全くない新しい

形式項目を定義するかのいずれかとする。

[ISO9075-2]

,[ISO9075-3],[ISO9075-4]  及び/又は  [ISO9075-11]  に定義が現れる

形式項目を修正する

追加規格のこれらの

形式項目は,次のような“形式注釈 (Format comment)”の存在によって識別する。

<

修正される項目> ::=

!! JIS X 3005-2

からの全ての代替手段

 (All alternatives from ISO/IEC 9075-2)

| <

新しい代替手段>

これに対して,[ISO9075-2],[ISO9075-3],[ISO9075-4]  及び/又は  [ISO9075-11]  の

形式項目を完全に

置き換える

形式項目は,[ISO9075-2],[ISO9075-3],[ISO9075-4]  及び/又は  [ISO9075-11]  の形式項目の

BNF

非終端記号と同一の BNF 非終端記号をもつが,[ISO9075-2],[ISO9075-3],[ISO9075-4]  及び/又は


36

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

[ISO9075-11]

からのいずれかの代替手段をそれらが含むという記述がない。

[ISO9075-2]

,[ISO9075-3],[ISO9075-4]  及び/又は  [ISO9075-11]  のどの

形式項目にも対応しない新し

形式項目は,追加規格中で区別しない。

新しい細分箇条の

形式項目には,印を付けない。

[ISO9075-2]

,[ISO9075-3],[ISO9075-4]  及び/又は  [ISO9075-11]  の

形式項目が,ある追加規格の形式

項目によって修正されるか又は置き換えられるとき,[ISO9075-2],[ISO9075-3],[ISO9075-4]  及び/又は

[ISO9075-11]

のその

形式項目は,その形式項目によって定義している BNF 非終端の名前に直に先行する

囲みで,かつ,修正するか又は置き換える

形式項目を含む追加規格の番号を含む小さく赤い囲みで示す。

6.3.5.5 

新しい段落及び規則並びに修正される段落及び規則 

修正される箇条及び細分箇条では,各段落又は規則が,[ISO9075-2],[ISO9075-3],[ISO9075-4]  及び/

又は  [ISO9075-11]  の段落又は規則の修正か,又はこの追加規格で追加される新しい段落又は規則かを示

すために,それに印を付ける。

段落又は

規則の修正は,【】(box)  で囲んだ指示的な句を含めることによって識別する。

【5 番目の段落を置き換える。

】は,後続するテキストによって,細分箇条の題名に後続する文中で識別

される規格の対応する細分箇条の 5 番目の段落を置き換えることを意味する。

構文規則 6bii)  を置き換える。】は,後続するテキストによって,細分箇条の題名に後続する文中で

識別される規格の対応する細分箇条の

構文規則 6bii)  を置き換えることを意味する。

構文規則 3)  を補う。】は,後続するテキストによって,構文規則 3)  を拡張又は増強すべきことを意

味する。たいていの場合,補いは,新しい構文の提供を意味する新しい代替手段の追加による。

修飾なしでの“置き換える”は,指示されたレベルで段落又は

規則を完全に置き換えることを意味する。

例えば,

構文規則 6b)  を置き換える。】は,構文規則 6b)  及びそれが含むかもしれない全ての部分規則

を置き換えることを意味する。

∼の先行テキスト  (lead text of)  という用語を含むならば,その置換えは,

その指示に続く段落又は規則の,ダッシュ,中点又は符号を付けて列挙された最初の細別項目までのテキ

ストに対するものとし,その細別項目は,含めない。例えば,

構文規則 1b)  の先行テキストを置き換え

る。

】は,次の規則の斜体のテキスト (italicized text) だけを置き換えることを意味する。

1)

構文規則 1)  の先行テキスト。

a)

構文規則 1a)  のテキスト。

b)

構文規則 1b)  の先行テキスト。

場合:

i)

構文規則 1bi)  のテキスト。

ii)

構文規則 1bii)  のテキスト。

c)

構文規則 1c)  のテキスト。

追加規則の新しい段落又は

規則には,挿入されるところを示すために印を付ける。

【2 番目の段落の前に挿入する。

】は,後続するテキストが,その細分箇条の題名に後続する文中で識別

される規格の対応する細分箇条の 2 番目の段落の直前に挿入されたかのように読むことを意味する。

一般規則 4)  の前に挿入する。】は,後続するテキストが,その細分箇条の題名に後続する文中で識別

される規格の対応する細分箇条の

一般規則 4)  の直前に挿入されたかのように読むことを意味する。

【この段落を挿入する。

】又は【この

一般規則を挿入する。】のように,特定の挿入位置を示さないなら

ば,後続するテキストが,その細分箇条の題名に後続する文中で識別される規格の対応する細分箇条の適

切な部分(例えば,

一般規則)の最後に追加されたかのように読むことを意味する。


37

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

各細分箇条の段落は,1 から数え,ダッシュ,中点又は符号を付けて列挙された細別は,その段落のテ

キストと同じ段落の部分として数える。番号付きの注記は,段落として数えない。

そのような指示では,

SR”を“

構文規則”の意味で,“AR”を“アクセス規則”の意味で,“GR”を

一般規則”の意味で,“CR”を“適合性規則”の意味で用いる。“Desc.”を“記述”の意味で,“Func.

を“

機能”の意味で用いる。

[ISO9075-2]

[ISO9075-3][ISO9075-4]  及び/又は [ISO9075-11] 

規則又は段落が,ある追加規格の

規則又は段落によって修正されるか又は置き換えられるとき,[ISO9075-2][ISO9075-3][ISO9075-4]  

び/又は [ISO9075-11] のその

規則又は段落は,その規則又は段落のテキストに直に先行する囲みで,か

つ,修正するか又は置き換える

規則又は段落を含む追加規格の番号を含む小さく赤い囲みで示す。

新しい箇条又は細分箇条の全ての段落,

形式項目及び規則も,新規であり,したがって,それらには,

印を付けない。

6.3.5.6 

修正される附属書 

修正される附属書では,修正する附属書の段落の先行テキストは,破棄する。

注記 17  これによって,表と,中点,ダッシュ又は細別符号を付けて列挙された細別項目とだけが保

持されることになる。

他の全てのテキスト及び/又は表は,元の附属書の最初の段落によって暗示されたグループ化及び並べ

替えを考慮して,元の附属書のテキスト及び/又は表に併合する。

注記 18  テキスト中での箇条及び細分箇条への参照は,参照される箇条及び細分箇条が併合されるテ

キスト中で得られた値に調整する。

6.3.6 

サブルーチンとして用いる細分箇条 

この規格群の各規格で,幾つかの細分箇条を,それらの意味を呼び出すために明示的な構文なしで定義

する。サブルーチン細分箇条と呼ばれるそのような細分箇条は,典型的に,一つ以上の別の細分箇条によ

って必要となる規則を取り込み,

それらの別の細分箇条の規則によって呼び出されることを意図している。

幾つかの場合には,明示的な構文をもたないこれらの細分箇条は,別の規格によって,及び/又は処理系

定義の機構を利用することによって呼び出されることを意図している。

言い換えると,これらの細分箇条の規則は,別の細分箇条,別の規格又は処理系定義の機構によって呼

び出されるある種の定義の“サブルーチン (subroutine)”であるかのように振る舞う。これらのサブルーチ

ン細分箇条は,典型的に,それらの呼出し元からそれらに情報を受け渡すことを要求するという方法で規

定する。受け渡さなければならない情報は,これらのサブルーチン細分箇条のパラメタとして表現され,

その情報は,これらのサブルーチン細分箇条の呼出し元によって提供される引数の形式で受け渡さなけれ

ばならない。

サブルーチン細分箇条のどの呼出しも,呼び出されるサブルーチン細分箇条の必要な全てのパラメタに

対して,情報を陽に与えなければならない。必要な全てのパラメタに対する情報を与えないで,サブルー

チン細分箇条が呼び出されるならば,その効果は,処理系依存とする。

6.3.7 

索引の体裁 

ISO/IEC 9075

規格群の各規格の索引には,次の規約を用いる。

−  太字  (boldface)  の索引項目は,単語,句又は BNF 非終端記号が定義されているページを示す。

斜体  (italics)  の索引項目は,BNF 非終端記号が形式で用いられるページを示す。

−  太字でも斜体でもない索引項目は,単語,句又は BNF 非終端記号が定義されていないが,

形式以外(例

えば,見出し,

機能,構文規則,アクセス規則,一般規則,適合性規則,表,又はその他の記述テキ


38

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

スト)で用いられているページを示す。

注記  JIS X 3005 規格群の各規格の索引については,必ずしもこの規約どおりではない。

6.3.8 

機能 ID 及び機能名 

機能は,

規格定義機能  (standard-defined feature)  又は処理系定義機能  (implementation-defined feature)  の

いずれかとする。

規格定義機能は,JIS X 3005 (ISO/IEC 9075)  規格群の各規格で定義する。処理系定義機能は,SQL 処理

系によって定義される(

8.4  拡張及び選択機能”参照)

機能は,機能 ID 及び機能名によって参照される。機能 ID 値は,文字及び三つの数字か,又は文字,三

つの数字,ハイフン及び一つ若しくは二つの追加の数字かのいずれかから成る。ハイフン及び追加の数字

を含む機能 ID 値は,完全な機能を定義するのに役立つ“部分機能 (subfeatures)”を示し,ハイフンなしの

機能 ID 値で完全な機能を示す。

文字が“V”の機能 ID は,処理系定義機能のために予約している。

ある機能の部分機能の集合は,必ずしもその機能を網羅しないが,その機能の注目すべき特別な場合を

箇条書きにすることを意図している。さらに,機能の部分機能は,必ずしも互いに排他的ではない。すな

わち,幾つかの場合には,一つの部分機能が,別の部分機能を包括してもよい。

適合性の要件を規定するために,機能全体だけを用いる。

規格定義機能は,各規格の必須機能か,又は

適合性規則によって定義する選択機能のいずれかとする。

規格定義機能の機能 ID は,安定的で,一定のまま変わらないことを当てにすることができる。

便宜上,JIS X 3005 (ISO/IEC 9075)  規格群の各規格で定義する全ての機能は,それらが定義される規格

中の参考の附属書に集約する。例えば,[ISO9075-2]  で定義する機能は,[ISO9075-2]  の“

附属書 F  SQL

の機能の分類”で見つけることができる。

適合性規則は,一般的に,機能によって規制される BNF 非終端記号を定義する細分箇条に入れる。非終

端記号の利用を特定の状況で規制するだけの状況では,

適合性規則は,非終端記号を用いるところに入れ

る。これは,非終端記号の利用が機能によって規制されるという事実を,別の細分箇条の

構文規則及び適

合性規則の見分によって推定できて,適合性規則が原理的に冗長であるという状況でも,行われる。適合

性規則のその他の冗長性は,できる限り排除する。

JIS X 3005 (ISO/IEC 9075) 

規格群の規格に対する附属書 

JIS X 3005 (ISO/IEC 9075)

規格群のどの規格のどの附属書も,参考とする。各附属書の内容は,付加的

な情報を提供し,それらの幾つかは,規定文中のどこかで記述したものを再記述する。

7.1 SQL

適合性の要約 

[ISO9075-2]

及び  [ISO9075-3]  を除くどの追加規格も,機能の番号で順序付けて,機能に関連する

適合性

規則を含む全ての細分箇条の番号及び題名を含めて,JIS X 3005 (ISO/IEC 9075)  規格群の全ての機能を列

挙する附属書を含む。

7.2 

処理系定義要素 

JIS X 3005 (ISO/IEC 9075)

規格群のどの規格も,その規格で規定し,SQL 処理系間で異なることが許さ

れるが,特定の各 SQL 処理系に対して実装者が定める必要がある SQL の全ての要素及びその処理を列挙

する附属書を含む。

7.3 

処理系依存要素 

JIS X 3005 (ISO/IEC 9075)

規格群のどの規格も,その規格で記述するが,規定しない,したがって,SQL


39

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

処理系間で異なることが許されるが,特定のどの SQL 処理系に対しても実装者が定める必要がない SQL

の全ての要素及びその処理を列挙する附属書を含む。

7.4 

削除予定機能 

[ISO9075-2] 

及びどの追加規格も,その規格で規定するが,その規格の将来の版で規定されないかもし

れない SQL の全ての要素及びその処理を列挙する附属書を含む。

7.5 

前の版との非互換性 

[ISO9075-2] 

及びどの追加規格も,その規格の前の版で規定するが,現在の版では同じように規定しな

い SQL の全ての要素及びその処理を列挙する附属書を含む。そのような非互換性の最もよくある原因は,

言語への予約キーワードの追加であり,それは,JIS X 3005  (ISO/IEC 9075)  規格群の前の版に適合した

SQL

言語中でのそれらの利用を無効にする。

7.6 SQL

の機能の分類 

[ISO9075-2] 

及びどの追加規格も,機能の番号で順序付けて,機能の名前を指定して,その規格で規定

する JIS X 3005 (ISO/IEC 9075)  規格群の全ての機能を列挙する附属書を含む。

7.7 

欠陥報告 

[ISO9075-2] 

及びどの追加規格も,細分箇条の番号で順序付けて,欠陥の本質を指定して,この規格の

前の版で報告され,この版で残ったままになっている全ての欠陥を列挙する附属書を含む。

適合性 

幾つかの異なる種類の適合性を主張してもよい。適合性のどの主張も,適合性の最小の主張を含まなけ

ればならない。さらに,適合性は,0 個以上の追加規格及び 0 個以上の選択機能に対して主張してもよい。

8.1 

最小適合性 

適合性のどの主張も,

最小適合性の主張  (claim of minimum conformance)  を含まなければならず,その最

小適合性の主張は,[ISO9075-2]  及び [ISO9075-11] で規定する適合性の要件を満たす主張として定義され

る。最小適合性の主張は,[ISO9075-2]  及び [ISO9075-11] の適合性の要件によって要求される記述を含ま

なければならない。

中核 SQL (Core SQL)  は,[ISO9075-2]  及び [ISO9075-11] で規定する適合性の要件で定義される機能の

集合とする。

8.2 

各規格への適合性 

JIS X 3005 (ISO/IEC 9075)

規格群の規格への適合性の主張は,その規格で規定する全ての必須の機能の

提供を意味する。

さらに,JIS X 3005 (ISO/IEC 9075)  規格群の規格への適合性のどの主張も,その規格で規定する適合性

の要件を満たさなければならない。

JIS X 3005  (ISO/IEC 9075)

規格群の追加規格への適合性の主張は,適合性を主張する JIS X 3005

(ISO/IEC 9075)

規格群のその規格の適合性の要件によって要求される主張を含まなければならない。

8.3 

機能への適合性 

[ISO9075-2]  及び [ISO9075-11] を含む)

JIS X 3005 (ISO/IEC 9075)

規格群のいずれかの規格への適合

性のために必須であるそれらの機能に加えて,JIS X 3005 (ISO/IEC 9075)  規格群のどの規格も,選択機能

を定義してもよい。これらの機能は,機能 ID で識別し,

適合性規則で規定する(“6.3.8 機能 ID 及び機能

名”参照)

選択機能 FEAT は,

機能 FEAT“機能名”なしでは,… (without Feature FEAT, “name of feature”, ...)”と


40

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

いう句によって各

適合性規則の最初で示すように,選択される適合性規則の緩和によって規定する。適用

業務は,適用業務が必要とする SQL 機能の集合を指定する。すなわち,適用業務の SQL 言語は,必要な

機能に対して陽に緩和された制限を除いて,全ての

適合性規則の制限を守らなければならない。逆に言え

ば,規格に適合する SQL 処理系は,その SQL 処理系が SQL のどの機能を提供するかを特定しなければな

らない。SQL 処理系は,必要な機能が SQL 処理系の提供する機能の部分集合であるどんな適用業務も処

理しなければならない。

機能 FEAT1 は,別の機能 FEAT2 を前提としてもよい。FEAT1 を提供することを主張する SQL 処理系

は,FEAT1 の前提である各機能 FEAT2 も提供しなければならない。逆に言えば,適用業務は,FEAT1 

必要とすることを示すだけでよく,これが  FEAT1 の前提である各機能 FEAT2 も含むことを仮定してもよ

い。別の機能の前提となる機能の一覧は,JIS X 3005 (ISO/IEC 9075)  規格群の各規格の“適合性”と名付

けられた箇条で“…の前提機能の関係”と名付けた表で示す。幾つかの機能が複数の別の機能を前提とす

ること,及び幾つかの機能が別の規格で規定する機能を前提とすることに注意する。JIS X 3005 (ISO/IEC 

9075)

規格群の選択機能への適合性のどの主張も,機能を規定する

適合性規則が存在しないかのように,

適合性を主張する全ての規格の適合性の要件を満たさなければならない。

構文規則及び一般規則は,ある SQL 構文を別の構文を用いて定義してもよい。そのような変換は,変換

される構文の意味を定義するために用いられ,変換を定義する

構文規則で特に注記されていない限り,適

用可能な

適合性規則を検査した後に,実効的に実行される。変換は,別の SQL 機能を定義するために,あ

る SQL 機能の SQL 構文を用いてもよい。これらの変換は,構文の振る舞いを定義するのに役立ち,変換

を定義する

構文規則で特に注記されていない限り,そのように定義された機能によって許される又は禁じ

られるという機能構文に対するどんな意味ももたない。規格に適合する SQL 処理系は,SQL 処理系が提

供することを主張する機能の集合に対して適用可能な

適合性規則によって定義される変換されない構文

を,変換によって想定される意味で処理するだけでよい。

8.4 

拡張及び選択機能 

SQL

処理系は,JIS X 3005 (ISO/IEC 9075)  規格群が規定する機能に対する付加的な処理系定義の機能を

提供してもよく,予約語をリストに追加してもよい。

注記 19  予約語が追加されるならば,適合する SQL 文が正しく処理されないかもしれない可能性があ

る。

SQL

フラグ機能が処理系定義の機能をフラグ付けするかどうかは,処理系定義とする。

注記 20 SQL フラグ機能は,この規格群で定義していない任意の機能 ID を用いて処理系定義の機能

をフラグ付けしてもよい。しかし,この規格群の将来の版が,そのような機能 ID を規格定

義機能に対して用いないという保証はない。

注記 21 SQL フラグ機能によってフラグ付けする処理系定義の機能は,二つ以上の SQL 処理系からの

処理系定義の機能を識別してもよい。

注記 22  処理系定義の機能への機能 ID の割当ては,SQL フラグ機能間で異なってもよい。

注記 23 SQL 処理系は,情報スキーマの SQL_FEATURES ビューを通して処理系定義の機能を可視化

することを選択してもよいが,要求はされない。

SQL

処理系は,付加的な処理系定義の SQL 呼出しルーチン,又は SQL 呼出しルーチンに対する処理系

定義の引数値を提供してもよい。

SQL

処理系は,規格に適合しない SQL 文又はルーチン呼出しを処理するための利用者選択肢を提供し

てもよい。SQL 処理系は,JIS X 3005 (ISO/IEC 9075)  規格群の規格で規定する結果と異なる結果を生成す


41

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

るために,SQL 文又はルーチン呼出しを処理する利用者選択肢を提供してもよい。

それは,利用者選択肢によって陽に要求されるときだけ,そのような結果を生成しなければならない。

JIS X 3005 (ISO/IEC 9075)

規格群の追加規格で付加的な拡張及び選択機能を規定してもよい。

8.5 SQL

フラグ機能 

SQL

フラグ機能は,処理系提供の機能とし,それは,規格に適合する SQL 処理系が提供してもよい SQL

言語の拡張又は SQL 処理の別の代替手段を識別することができる(

8.4  拡張及び選択機能”参照)

SQL

フラグ機能は,規格に適合する SQL 処理系で,この規格群の異なる水準下で動作する異なる SQL

処理系の間で,可搬で,かつ,相互運用可能な SQL 言語の生成の助けとなることを意図している。

SQL

フラグ機能は,SQL 言語の静的検査に効果をあげることを意図している。

一般規則が評価されるま

でに決定できない拡張を検出することは要求されない。

SQL

処理系は,その処理系に関する限り,誤りにならない SQL 言語をフラグ付けするだけでよい。

注記 24  誤りを含む SQL 言語をシステムが処理するならば,何が誤りで,何が拡張であるかを単一の

文内で決定することが非常に難しいかもしれない。一つの可能性として,処理系は,2 段階,

すなわち,最初は,通常の構文解析機能で,2 番目は,SQL フラグ機能で,SQL 言語を検査

することを選択してもよい。最初の段階では,処理系が処理できない又は認識できない規格

外の SQL 言語に対して誤りのメッセージを生成する。第 2 段階では,その処理系に関係する

限り,誤りを含まない SQL 言語を処理する。すなわち,その処理系によって処理することが

できる規格外の全ての SQL 言語を一度に検出し,フラグ付けする。このようなどの 2 段階の

処理も,末端の利用者に対して透過的にするのがよい。

SQL

フラグ機能は,規格に適合する SQL 処理系が提供する代替処理環境で異なって実行されてもよい

適合する SQL 言語識別を助ける。それは,適合しない SQL 処理環境から適合する SQL 処理環境に SQL

言語を移動するときに修正しなければならないかもしれない SQL の要素を識別するツールも提供する。

SQL

フラグ機能は,次の“フラグ付け水準 (level of flagging)”選択肢のうちの一つ以上を提供する。

−  中核 SQL フラグ付け  (Core SQL Flagging)

−  各部 SQL フラグ付け (Part SQL Flagging)

これらの選択肢の一つを提供する SQL フラグ機能は,SQL 言語の指定された部分集合に違反する SQL

言語の構成要素を識別できなければならない。

“中核 SQL フラグ付け”で用いる SQL 言語の部分集合は,

中核 SQL とする。

“各部 SQL フラグ付け”

で用いる SQL 言語の部分集合は,

中核 SQL に加えて,

JIS X 3005

(ISO/IEC 9075)

規格群の指定された一つ又は複数の規格への適合性のために必要な機能とする。

SQL

フラグ機能は,

“SQL 機能フラグ付け (SQL Feature Flagging)”

も提供してもよい。

“SQL 機能フラグ

付け”は,SQL 言語の指定された部分集合に加えて,SQL 言語の構成要素を適合させるためにどの選択機

能が必要であるかを示す。

SQL

フラグ機能は,次の“検査の範囲 (extent of checking)”選択肢のうちの一つ以上を提供する。

−  構文だけ (Syntax Only)

−  カタログ調査 (Catalog Lookup)

構文だけの選択肢の下では,SQL フラグ機能は,指定された SQL 言語だけを解析する。すなわち,そ

れは,情報スキーマをアクセスしないで決定することができる

構文規則の違反に対して検査する。構文要

素のデータ型に依存する違反が構文だけから原理的に推測できるとしても,SQL フラグ機能は,そのよう


42

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

な違反を必ずしも検出しない。

注記 25  詳細は,[ISO9075-2]  の“附属書 F  SQL の機能の分類”,[ISO9075-3]  の“附属書 F  SQL

の機能の分類”

,[ISO9075-4]  の“

附属書 F  SQL の機能の分類”,[ISO9075-9]  の“附属書 F

SQL

の機能の分類”

,[ISO9075-10]  の“

附属書 F  SQL の機能の分類”,[ISO9075-11]  の“附

属書 F  SQL の機能の分類”,[ISO9075-13]  の“附属書 F  SQL の機能の分類”及び

[ISO9075-14]

の“

附属書 F  SQL の機能の分類”参照。

カタログ調査の選択肢の下では,SQL フラグ機能は,定義スキーマ情報を利用できることを仮定し,全

ての

構文規則の違反を検査する。例えば,幾つかの構文規則は,データ型を制限する。フラグ機能のこの

選択肢は,そのような制限を緩和する拡張を識別することもある。安全保護違反を避けるために,この選

択肢は,特定の情報スキーマを通じてだけ定義スキーマを見て調べなければならない。フラグ機能は,ど

の<SQL スキーマ定義文>又は<SQL スキーマ操作文>も,必ずしも実行又は実行の模擬をしない。

8.6 

適合性の主張 

JIS X 3005 (ISO/IEC 9075)

規格群に対する適合性の主張は,次の全ての適合性を主張しなければならな

い。

1)

最小適合性の主張。

2)

追加規格に対する 0 個以上の適合性の主張。

3)

選択機能に対する 0 個以上の適合性の主張。

注記 26  この箇条 の要件に加えて,JIS X 3005 (ISO/IEC 9075)  規格群の各規格では,その規格に対

する適合性の主張で表明しなければならないことを規定する。

8.6.1 SQL

適用業務に対する要件 

“SQL 適用業務 (SQL application)”という用語は,ここでは,次の一つ以上を含む翻訳単位の集まりの

意味で用いる。

− SQL 文。

− SQL/CLI ルーチンの呼出し。

−  外部呼出し手続の呼出し。

規格に適合する SQL 適用業務は,次の全てを満たすという条件で,構文誤りなしで処理されなければな

らない。

−  どの SQL 文又は SQL 呼出しも,JIS X 3005 (ISO/IEC 9075)  規格群に従って,構文的に正しい。

−  スキーマの内容が SQL 適用業務の要件を満たす。

− SQL データがスキーマの内容に適合する。

−  利用者が,構文的に正しくない SQL 文の即時実行を行っていない。

規格に適合する SQL 適用業務は,追加機能,又は主張する適合性の水準を超える機能を用いてはならな

い。

SQL

適用業務による適合性の主張では,次のことも表明しなければならない。

−  正しく動くために,どんな処理系定義の要素及び動作が必要か。

−  どんなスキーマの内容を利用者が供給する必要があるか。

8.6.2 SQL

処理系に対する要件 

規格に適合する SQL 処理系は,関連する

一般規則,定義及び記述に従って,適合する SQL 言語を処理


43

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

しなければならない。

規格に適合する SQL 処理系は,関連する

定義及び一般規則に従って,適合するルーチン呼出しを処理し

なければならない。

SQL

処理系による適合性の主張では,次のことも表明しなければならない。

−  主張の範囲内で,JIS X 3005 (ISO/IEC 9075)  規格群が処理系定義と規定する全ての要素及び動作の定

義。

規格に適合する SQL 処理系で,追加機能,又は“中核 (Core)”として規定している機能を超える機能を

提供する SQL 処理系は,SQL フラグ機能を提供しなければならない。


44

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

附属書 A

(参考)

SQL

の保守及び解釈

ISO/IEC JTC1

は,JTC1 規格の改正,保守及び解釈についての公式な手続を与える。JTC1 専門業務用

指針  (JTC1 Directives) の“14  国際規格の保守  (Maintenance of International Standards)”では,

“欠陥報告

(defect report)

”の作成及び処理のための手続を規定している。欠陥報告は,既存の国際規格に対する技術

的 正 誤 票  (technical corrigenda) , 追 補  (amendments) , 解 釈 書  (interpretations) 又 は そ の 他 の 説 明 書

(commentary)

になることもある。

ISO/IEC 9075

規格群の仕様に関する今後の新規質問事項又は新規欠陥報告に関しては,次の宛先に連絡

することが望ましい。

Secretariat, ISO/IEC JTC1/SC32

American National Standards Institute

11 West 42

nd

 Street

New York, NT 10036

USA


45

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

附属書 B

(参考)

処理系定義要素

この附属書は,この規格の本体で処理系定義として識別している機能を参照する。

処理系定義  (implementation-defined)  という用語は,処理系間で異なってもよいが,それぞれの特定の処

理系に対して定義しなければならない特性を識別するために用いる。

1)

4.2.2  SQL エージェント”

a) SQL

の直接起動(

5.3.3.3 SQL の直接起動”参照)において,SQL 文の実行を引き起こす SQL エ

ージェントは,処理系定義とする。

2)

4.2.4

  SQL クライアントモジュール”

a) SQL

クライアントモジュールを作成又は破壊する機構は,処理系定義とする。

b) SQL

クライアントモジュールが名前をもつならば,許される名前は,処理系定義とする。

3)

4.2.9.1

  カタログ”

a)

カタログを作成及び破壊するための機構は,処理系定義とする。

b) <PREPARE

文>及び<EXECUTE IMMEDIATE 文>の実行によって,現行 SQL セション中で動的に

準備される<準備可能文>の実行に対する既定カタログ名は,処理系定義とする。

4)

4.2.9.2

  SQL スキーマ”

a) SQL

スキーマは,SQL スキーマ文の実行又は処理系定義の機構によって作成され,破壊されても

よい。

5)

4.4.3.1

  数型”

a)

算術演算の結果が結果の型で正確に表現できないならば,結果を丸めるか又は切り捨てるかは,

処理系定義とする。

6)

4.4.3.2

  文字列型”

a)

文字列型の最大長は,処理系定義とする。

b)

文字長大オブジェクト型の最大可変長は,処理系定義とする。

7)

4.4.3.3

  2 進オクテット列型”

a)  2

進オクテット列型の最大長は,処理系定義とする。

b)  2

進オクテット長大オブジェクト型の最大可変長は,処理系定義とする。

8)

4.6.2.2

  照合順”

a)

提供される照合順で,各国規格又は国際規格によって定義された照合順から導出されない照合順

は,処理系定義とする。

9)

4.8.1

  ホスト言語”

a) SQL

処理系によって提供されるホスト言語の集合は,処理系定義とする。

b) SQL

クライアントモジュール結合様式を用いるとき,SQL クライアントモジュールを指定する機

構は,処理系定義とする。

c)

どの結合様式を選択しても,SQL 文は,

ソース言語文字集合  (source language character set)  とし

て知られている処理系定義の文字集合で記述する。

10)

4.8.2.1  パラメタの一般的な渡し方及びデータ型対応情報”


46

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

a)

翻訳単位に対する外部ルーチンの参照とその翻訳単位との間の結合の方法及び時期は,処理系定

義とする。

11)

4.10.1

  ルーチン一般情報”

a)

翻訳単位に対する外部ルーチンの参照とその翻訳単位との間の結合の方法及び時期は,処理系定

義とする。

12)

4.11.1

  SQL 文の種類”

a) SQL

処理系が提供する追加の文は,処理系定義とする。

13)

5.3.3.3

  SQL の直接起動”

a) SQL

の直接起動では,SQL 文の呼出し方法,条件を引き起こす方法,診断情報にアクセスする方

法,及び結果を報告する方法は,処理系定義とする。

14)

6.3.3.3

  規則の評価順序”

a) SQL

呼出し関数が決定的であり,かつ,SQL データを潜在的に修正しないならば,その呼出しは,

非本質的とする。そうでなければ,それが本質的であるか非本質的であるかは,処理系定義とす

る。

15)

6.3.6

  サブルーチンとして用いる細分箇条”

a)

幾つかの場合には,明示的な構文をもたないこれらの細分箇条は,別の規格によって,及び/又

は処理系定義の機構を利用することによって呼び出されることを意図している。

b)

これらの細分箇条の規則は,別の細分箇条,別の規格又は処理系定義の機構によって呼び出され

るある種の定義の“サブルーチン (subroutine)”であるかのように振る舞う。

16)

8.4  拡張及び選択機能”

a) SQL

処理系は,JIS X 3005 (ISO/IEC 9075)  規格群が規定する機能に対する付加的な処理系定義の

機能を提供してもよく,予約語をリストに追加してもよい。

b) SQL

フラグ機能が処理系定義の機能をフラグ付けするかどうかは,処理系定義とする。

c) SQL

処理系は,付加的な処理系定義の SQL 呼出しルーチン,又は SQL 呼出しルーチンの処理系

定義の引数値を提供してもよい。


47

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

附属書 C 
(参考)

処理系依存要素

この附属書は,規格に適合する処理系の動作を処理系依存として,この規格で陽に規定している箇所を

参照する。

処理系依存  (implementation-dependent)  という用語は,処理系間で異なってもよいが,特定のどの処理系

に対しても規定する必要がない特性を識別するために用いる。

1)

4.6.1  SQL スキーマオブジェクト一般情報”

a) SQL

呼出しルーチンの特定名が陽に指定されないならば,それは,処理系依存とする。

2)

4.6.2.1  文字集合”

a) SQL

処理系に完全に含まれる文字に対して,それらを符号化して文字列にまとめる方法は,処理

系依存とする。

3)

4.7.2  決定性及び制約”

a)

決定的であることを主張するが,実際には決定的でないルーチンを呼び出す効果は,処理系依存

とする。

4)

4.8.1  ホスト言語”

a)

埋込み SQL 結合様式に対して,SQL 文から外部呼出し手続を生成する機構,それらの外部呼出し

手続を SQL クライアントモジュールにまとめる機構,及び各 SQL 文をそれから生成された外部

呼出し手続の呼出しに置き換える機構は,処理系依存とする。

5)

6.3.2  情報スキーマ及び定義スキーマの規定”

a)

情報スキーマのビューが基にする実際のオブジェクトは,処理系依存とする。

6)

6.3.3.2  規則の要件を示す用語”

a)  JIS X 3005 (ISO/IEC 9075)

規格群の

形式及び構文規則に適合しない言語の扱いは,処理系依存と

する。

7)

6.3.3.3  規則の評価順序”

a)

優先順序が

形式又は括弧によって特に決定されないとき,式を実際に左から右に評価するかどう

かは,処理系依存とする。

b)

式又は探索条件の非本質部分の評価が例外条件を引き起こすことになるならば,その例外条件を

引き起こすかどうかは,処理系依存とする。

c)

中間結果を含む格納場所の宣言型は,処理系依存とする。

8)

6.3.3.7  例外”

a)

例外条件で終了する SQL 文の代入相手及び SQL 記述子領域に与える効果は,

JIS X 3005 (ISO/IEC 

9075)

規格群で陽に定義していない限り,処理系依存とする。

b) SQL

文の実行結果として二つ以上の条件が引き起こされたならば,そのような二つ以上の条件に

ついての診断情報を利用可能にするかどうかは,処理系依存とする。


48

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

附属書 D 
(参考)

削除予定機能

この附属書は,ISO/IEC 9075-2 の“

附属書 D  削除予定機能”を修正する。

次の機能については,この規格の改正で将来削除することを意図している。

なし。


49

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

附属書 E

(参考)

ISO/IEC 9075:2008

との非互換性

この規格のこの版は,JIS X 3005-1:2010 (ISO/IEC 9075-1:2008)  で規定した,データベース言語 SQL の

前の版との幾つかの非互換機能を導入する。

この附属書中で明記されていない限り,データベース言語 SQL の機能及び能力は,JIS X 3005-1:2010

(ISO/IEC 9075-1:2008)

と互換性がある。

1)  JIS X 3005-1:2010 (ISO/IEC 9075-1:2008)

では,SQL プロファイル (SQL Profiles) がデータベース言

語 SQL に対して定義されていた。この規格のこの版では,SQL プロファイルの定義が削除された。


50

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

附属書 F

(参考)

SQL

の機能の分類

この附属書は,この規格中で規定している機能の分類を記述する。

この規格のこの版で定義する機能はない。


51

X 3005-1

:2014 (ISO/IEC 9075-1:2011)

附属書 G 
(参考)

JIS X 3005 (ISO/IEC 9075)

規格群のこの版で取り込まれていない欠陥報告

この附属書中の各項目は,この規格の前の版で報告され,この版で残ったままになっている欠陥を記述

する。

なし。