この規格ページの目次
- 4.4.2 ナル値
- 4.4.3 既定義型
- 4.4.3.1 数型
- 4.4.3.2 文字列型
- 4.4.3.3 2進オクテット列型
- 4.4.3.4 ブール型
- 4.4.3.5 日時型
- 4.4.3.6 時間隔型
- 4.4.3.7 XML型
- 4.4.4 基本単位の構成型
- 4.4.4.1 参照型
- 4.4.5 複合の構成型
- 4.4.5.1 集まり型
- 4.4.5.2 フィールド
- 4.4.5.3 行型
- 4.5 格納場所及び格納場所に関する演算
- 4.5.1 格納場所
- 4.5.2 代入
- 4.5.3 ナル可能性
- 4.6 SQLスキーマオブジェクト
- 4.6.1 SQLスキーマオブジェクト一般情報
- 4.6.2 文字集合に関連する記述子
- 4.6.2.1 文字集合
- 4.6.2.2 照合順
- 4.6.2.3 文字変換
- 4.6.3 定義域及びその構成要素
- 4.6.3.1 定義域
- 4.6.3.2 定義域制約
- 4.6.4 利用者定義型
- 4.6.4.1 利用者定義型の導入
- 4.6.4.2 個別型
- 4.6.4.3 構造型
- JIS X 3005-1:2014の引用国際規格 ISO 一覧
- JIS X 3005-1:2014の国際規格 ICS 分類一覧
- JIS X 3005-1:2014の関連規格と引用規格一覧
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) の値は,ある文字レパートリから引き出した文字のデータ列(並び)と
する。文字列S中の文字は,全て,同じ文字集合CSから引き出される。Sが,ある式Eの値ならば,CS
は,Eの宣言型に対して指定される文字集合とする。文字列型は,処理系定義のある最大長までの固定長
か又は可変長のいずれかとする。文字長大オブジェクト型 (character large object type) の値は,ある文字
レパートリからの文字のデータ列とし,常に,ただ一つの文字集合に関連付けられる。長大オブジェクト
文字列 (large object character string) は,処理系定義のある最大長までの可変長とし,その最大長は,他の
文字列の最大長よりもおそらく大きい。
文字列は,データ型中でCHARACTER SETを指定することによって,特定の文字集合を基にするもの
として指定してもよい。データ型としてNATIONAL CHARACTER,NATIONAL CHARACTER VARYING
若しくはNATIONAL CHARACTER LARGE OBJECT(又は幾つかの構文的に等価なもののうちの一つ)を
指定することによって,処理系によって各国文字集合 (national character set) に選択された特別の文字集
合を指定してもよい。
――――― [JIS X 3005-1 pdf 16] ―――――
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) の値は,オクテットのデータ列とする。長大オブジェクト2進オクテ
ット列 (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) は,必ずしも異ならない値の順序付けられた集まりとし,その集まりの要素は,配列中の
順序位置によって参照する。
――――― [JIS X 3005-1 pdf 17] ―――――
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)”という用語を用いても,正確さを失うことはない。
全てのスキーマオブジェクトは,それが属する名前の種類のオブジェクト間でスキーマ内で一意な名前
――――― [JIS X 3005-1 pdf 18] ―――――
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] のような国際規格によって定義されるか若しくはそれから導出されるか,国
――――― [JIS X 3005-1 pdf 19] ―――――
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) にすることができる。
――――― [JIS X 3005-1 pdf 20] ―――――
次のページ PDF 21
JIS X 3005-1:2014の引用国際規格 ISO 一覧
- ISO/IEC 9075-1:2011(IDT)
JIS X 3005-1:2014の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.060 : 情報技術に使用される言語
JIS X 3005-1:2014の関連規格と引用規格一覧
- 規格番号
- 規格名称
- JISX0221:1995
- 国際符号化文字集合(UCS) ― 第1部 体系及び基本多言語面
- JISX0221:2014
- 国際符号化文字集合(UCS)
- JISX0221:2020
- 国際符号化文字集合(UCS)