日本データベ
ベース学会和文論
論文誌
サーベ
ベイ論文

Vol. 22-J, Article No. 1, 2024 年 3 月

しかしながら，し更新可能な SQQL ビューのサポートはクライ
イアン

SQ
QL のビュューサポーート

トににとってもリレーショナル DB
BMS ベンダにとっても大きなな関心―そその標準化の経緯と現
現状―
増永
永 良文

1

小寺 孝

事で
であることは言を待たず，本稿
稿の目的は，SQ
QL-87 より始めめて現在にに至るまで，SQ
QL のビューサ
サポート規格の改改正の経緯を忠忠実に2辿るることにより更新可能なビュー
ーの現状を詳ららかにし，SQL
L のビュー
ーサポートの経経緯と現状を理解解しておきたい
いと考えているる者にビュューとその更新
新可能性は国際標
標準リレーショナ
ナルデータベーース言資すすることにある．

語 SQ
QL の最初の規規格である SQL
L-87 で標準化さされて以来，最最新のSQL:2
2023 に至るまでで改正され続けてている．多様なビューの更新可可能性

2.

SQL におけけるビュー定義
義とその更新新可能性を少しでも向上させせんがためである
る．しかしながら，改正を重ねねるに規格は複雑化しして難解となり，ビューを利活用
用しようとする
るクラ
つれ規

SQL
S
でのビュー
ー定義とその更更新については，，上述のとおりり SQL

イアン
ントにとってははハードルが高く
く，一方，ベンダにとってもそその機の最最初の国際標準規格である SQ
QL-87 に記述がある．ビューととその能のすすべてを実装すすることが難しくくなり，更新可能能なビューの最最新規

更新
新については，当初からその重当重要性が認識されれていたという
うこと格をササポートするプ
プロプライエタリリあるいは OSS
S のリレーショ ナル

でああろう．SQL はそれ以降，主なはな改正だけでもも SQL-92, SQL
L:1999,DBM
MS は現存していいないことも事実実である．本稿のの目的は，SQL のビューサ
サポート規格のの改正の経緯を原原点から最新までで忠実に辿るこ
ことでSQL
L:2003, SQL:200
08，SQL:2011, SQL:2016, SQL
L:2023 と現在にに至っ

SQL が規格化していいる更新可能なビビューの全貌を詳らかにし，更更新可

ていいるが，ビューのの更新可能性にについてもそれぞれで相応の改改正がントならびにリレ
レーショナル D
DBMS
能なビューに関心を持つクライアン

なさされている．

ダに資することにある．
ベンダ

1.

さて，その改正
さ正の内容を時系
系列で見てみると，これまでの
の改正

はじめに

を 3 段階に分けて考えてみると見見通しが良いよように考えられれる．
第 1 段階：SQL
L-87 から SQL-992 に至る改正

ビュー（view）はビ
はリレーショナ
ナルデータベーースの始祖コッ ド

第 2 段階：SQL
L:1999 での改正
正（E. F. Codd）によりり 1974 年に導入入された[1]．リ
リレーショナルルデー

L:2023 に至る改正
第 3 段階：SQL
L:2003 から SQL

タベー
ースの現場ではは，繰り返し作成成する問合せををビューとして
て定義

まず，第
ま
1 段階
階であるが，SQ
QL 規格の最初初である SQL-877 で与しておおくことで利便
便性や生産性をを高め，実表（sstored table）そそのもえらられたビューとその更新可能性性の概念が SQ
QL-92 での改正
正で一のではなくその一部部をビューとしして公開するこ
ことでセキュリ ティ

応ののまとまりを見せたということとである．SQL
L-92 でも結合ビ
ビューを高め，ANSI/X3/SPARC の DBMS の標準アーキ
キテクチャにおおいてや UNION
U
ビューはは定義可能でははあったが，それ
れらの更新可能能性は理的データ独立立性を達成するる手段として有用用である．ビュ
ューへは論理規格格外であった．第第 2 段階の SQ
QL:1999 でビューーの更新可能性
性が結の問合
合せは質問変形形（query modiffication）というう手法[2]により 常に合ビ
ビューや UNION
N ビューに拡張張された．また
た，SQL:1999 以降，
以可能であるが，ビュューは定義だけけが存在して実体がない表（tatable）
新しようとするとと更新要求を基
基表（underlying table）
なので，それを更新
更新に一意に変変換しなければばならず，更新でできる場合もああればへの更適合
合性（conformannce）のために SQL 規格の機能
能全体が細かいい機能区分分に分類され，最低限の適合が最が必要な部分（中核 SQL）以外
外は，
分によって選択適合合性を主張する範囲を機能区分択できるようにに改正それができない場合合も生じる．では，ビューは一
一体どのようなな条件されれた．第 3 段階
階は，SQL:20033 に始まり SQL
L:2008，SQL:22011，

新可能となるののであろうか？
？これをビュー
ー更新を満たすときに更新

SQL
L:2016 を経て SQL:2023 に至至る改正である．この段階で更更新可問題という．

能性性に関する記述が整備され，概概念的な整理がが行われた．

さて，国際標準さ
リレーショナルルデータベースス言語 SQL（以以下，以下，上述のよ以ような認識のも と，これら 3 段階で肝要と考段考えら

単に SQL）は，そのの初めての標準
準である SQL-87
7[3]でビューと そのれるる事項に言及し，更新可能なビビューの全貌を明らかにしよう
うとす化している．しかしながら，そこで規格化さそ更新可能性を規格化れた

る．

の概念は極めてて初歩的であった．したがってて，そ更新可能なビューの3.

れ 以 降 ， SQL-92[44], SQL:1999[5], SQL:2003[7]] ， SQL:2008[110] ，を経て SQL:2023[12]に至るまでで，SQL はビュ
ューのSQL:2016[11]などを

SQL-87 と SQL-92
Sにみ
みるビューサポ
ポート
SQL
S
ではビュー
ーサポートに関関する初めての規格が SQL-877 で与更新可能性を向上ささせるべく改正
正に改正を重ねている．しかししながえらられたが，まずはは，そこでビュ
ューとその更新可
可能性がどのよように基となる<問合せ指定>や<問合合せ式>が機能能豊から，ビュー定義の基

定義
義されていたのか，それを見ててみることからら始める．なお，，SQL

更新可能性をど
どのような形でで規格であることや，そもそもビューの更ではは， <問合せ指定
定>や<問合せ式式>の結果として導出される表
表をビ

さまざまな問題
題に直面し，改正
正作業は紆余曲曲折を化するべきかなどさュー
ー表（viewed taable）として定定義することで，，その定義が永永続化

現在に至っていいるように見受受けられる．
経て現されれ，実表と同様にに，あたかもそその表が存在しているかのよううに操作でできる．ここで，<問合せ指定
定>のような<とと>で囲んだ表記
記は，
SQL
L 規格においてて構文の形式を規規定する BNF の非終端記号（構文1

正 会 員 お 茶 の 水 女 子 大 学 名 誉 教 授 ・ SRA OSS LLC 技 術 顧 問maasunaga.yoshifumi@@ocha.ac.jp
2
正 会 員 日 立 製 作 所 ・ 元 ISO/IEC
C JTC1/SC32 WG33(SQL 言 語 ) 日 本 代 表
takkashi.kotera.xa@hitaachi.com

1

日本データベベース学会和文論
論文誌
サーベ
ベイ論文

Vol. 22-J, Article No. 1, 2024 年 3 月

要素）
）を表す．

AS <問合せ式>

3.1 SQL-87

W[ <レベル句
句> ] CHECK OPTIONO][ WITH

QL-87[3]でのビビュー定義（vieew definition）ととその更新可能
能性に
SQ

構文規則：
構
（文献
献[4]より抜粋しし翻訳．番号はは原文のママ）6)

ついての記述は次ののとおりであるる．なお，以下
下，全編にわた
たり，<問合せ式>が更新可能
能（updatable）なならば，ビュー
ー表はじ，ISO の原用語
語（英SQL 規格の翻訳は JJIS X 3005-2 [13]の表現に準じ能な表とする． そうでなければば，それは，読読取り
更新可能日本語）に置き換えている．
語）を JIS 用語（日

専用の表
表とする．
そこで，SQL-8
そのビュー定義の形
形式を比較しててみる
7 と SQL-92 の式（Format）：
形式と大大きな相違点が一つあることにに気が付く．それれは，SQL-92 では
で <<ビュー定義> ::=<ビュー列リスト>)]
CREATE VIEW <表名> [(<問合
合せ指定>ではななく<問合せ式>>となっている点である．ちな
なみに，<問合合せ式>の定義
義は次のようであある．

問合せ指定>AS <問[WITH CHECK OPT
TION]<問合せ式> ::==構文
文規則（Syntaxx Rules）：（文献
献[3]より抜粋しし翻訳．番号はは原文<非結合問合合せ式> | <結合
合表><非結合問合せせ式> ::=のママ）<非結合問合合せ項>

定>が更新可能（updatable）なならば，ビュー
ー表は3) <問合せ指定| <問合せ式
式> UNION [ AL
LL ] [ <CORREESPONDING 指定>
指
]

更新可能な
な表（table）ととする．そうででなければ，読
読取り

<問合
合せ項>

専用の表と
とする．
9) WITH CHEECK OPTION を指定するならをば，ビュー表はは更新| <問合せ式
式> EXCEPT [ A
ALL ] [ <COR
RRESPONDING
G 指定> ] <問問合せ項>

可能でなけければならないい．
一般規則（Gene一
eral Rules）：（文
文献[3]より抜粋
粋し翻訳．番号号は原<問合せ項> ::== <非結合問合せ
せ項> | <結合表
表>
<非結合問合せせ項> ::= <非結合
合問合せ一次子子>

文のママ）
2) V が更新可
可能ならば， <問合せ指定>の<の最初の<FROM
M 句>| <問合せ項
項> INTERSECT
T [ ALL ] [ <COORRESPONDIN
NG 指

で指定され
れた<表名>によよって識別されれる表を T とすする．

定> ] <問合せ一次子子>

V の各行にに対して，V のその行が導出の出される T の対
対応行

つまり，
つ
SQL-92
2 ではビューととして，<問合せ
せ指定>で定義でできるが T に存
存在し，V の各列列に対して，V
V のその列が導導出さ

結合合ビューに加ええて<問合せ式>>で定義できる
る UNION ビュュー，の対応列が T に存在する．V
にへの行の挿入はへ
は，Tれる T の

EXC
CEPT ビュー，IINTERSECT ビ
ビューが更新可能能なビューの対
対象と行の挿入とする
る．V からの行のの削除は，T へ
への対
への対応行

なる
るように拡張がなされたという
うことである．また，これらの
のビュ

応行の削除
除とする．V のある行のある列の列の更新は，T 中のーにに対する更新可能性についてはは，上述の構文
文規則 6)で与え
えられ

対応行の対
対応列の更新ととする．

ていいるように，<問問合せ式>が更新
新可能の場合，ビュー表も更更新可

3.2 SQL-92

能とと定義しているので，規格とししては，それらの更新可能性ににまで

QL-92[4]はリレ
レーショナル DBMS
Dとしてのの完全性を追求
求したSQ

踏み
み込んだビューサポートがあっっても然るべききとの見識が SQ
QL-92

規格として知られてている．この規規格で 3 つのの適合性水準： 初級

規格格の背景には存在したのだろう
うと考えられるる．

完全（full）が導導入された．こここで（enttry），中級（inttermediate），完

しかしながら，しSQL-92 では適適合性水準と関連して，ビューー定義

適合性
性（conformancce）とは，リレ
レーショナル DBMS
D
を実装す
するに

に水
水準規則が次のように定められれている．
水準規則（Leve
水eling Rules）：（（文献[4]より抜粋
粋し翻訳．番号号は原

あたっては，まずはは初級を，できれば中級を，そそして完全をと いっ
合に，いずれかかの水準に準拠すするようにと意意図され導入さ れた．
た具合

文の
のママ）

しかしながら，多く
くのリレーショナル DBMS が初級に準拠し
が
し，中

1)
1 中級 SQL には次の制限が適適用される.

上の主要な機能能を選択的に提提供するに止まった．その理由
由とし級以上a) 中級 SQL 言語には <レ
レベル句> が含まれてはならな
ないが，

て，完
完全性を追求ししたが故に，結結果的にユーザででの利用方法，SQL

その効果
果は CASCADEED の <レベルル句>に対して定定義さ製品での実装技術をを考慮した適合合性水準が必ずずしもうまく設
設定で

れたもの
のとする.
2)
2 中級 SQL の制限に加えて，，次の制限が初初級 SQL に適用用され指摘されているる[9]．なお，適適合性試験（＝＝コン
きなかったことが指ーマンス試験）については 7 章で詳述する．
フォー

る.
定義>内の<問合せ
せ式>は<問合せ
せ指定>とする.
a) <ビュー定

さて，SQL-92
さででのビュー定義
義は次の通りであ
ある．
形式：
形

■

> ::=
<ビュー定義>SQL-92 におけける更新可能ななビュー
さて，リレーシさショナル DBMSS の多くが初級
級 SQL を実装すするに

CREATE V
VIEW <表名>とどどまっていることで，SQL-92 における更新可
可能なビューはは実質[ <左左括弧> <ビューー列リスト> <右右括弧> ]

的にに問合せ式ではなく問合せ指定
定（query speciffication）の更新
新可能2日本データベベース学会和文論
論文誌
サーベ
ベイ論文

Vol. 22-J, Article No. 1, 2024 年 3 月

性で規規定されることととなる．ここに，問合せ指定
定が更新可能でである<ビ
ビュー指定>

ための必要かつ十分
分条件は次の条条件をすべて満たすことであるる．

AS
S <問合せ式>(a) 限定子としてて DISTINCT を使使用していない
いこと．

[ WITHW[ <レベルル句> ] CHECK OPTION ](b) 選 択 リ ス ト 中 の 値 式 （ vallue expression ） が す べ て 列 参 照

構文規則：
構
（文献
献[5]より抜粋しし翻訳．番号はは原文のママ）（column referrence）で，それ
れらのどれもがが 2 回以上現れ
れない

9)

こと．

ビュー表
表が更新可能（（updatable）でああるのは<問合せ式>が更新可可能であるとき及及びそのときののみ．

(c) FROM 句はた
ただ 1 つの表参照
照（table referennce）を有するここと，

10) ビュー表
表が挿入可能（iinsertable-into）であるのは<問
問合せ

そしてそれはは実表か更新可能能な導出表を特特定しているこ
こと．

式>が挿入入可能であるととき及びそのときのみ．

(d) 表参照によって最終的に識別別される実表は
は，WHERE 句
句の副

実は，SQL:199
実
9では，規格のの箇条7.11<問合合せ指定>，箇条条7.12<

OM 句で（直接あるいは間接的的に）参照されれてい問合せの FRO

問合
合せ式>でそれぞぞれの更新可能
能性が，そして箇箇条11.21 <ビュ
ュー定

ないこと．

義>で，機能，形式式に続き，24個個の構文規則（SSyntax Rules），3個の(e) GROUP BY 句
句や HAVING 句が使われてい
句
ないこと．

アク
クセス規則（Ac
ccess Rules），1 1個の一般規則
則（General Rulees）に□加え
えて3個の適合性性規則（Conformrmance Rules）が規定されていいる．

端的的には，SQL-992 における更新
新可能なビュー
ーは「更新が可可能な適合合性についてののSQL:1999のス タンスは，リレーショナルD
DBMS

ビュー
ーは，実表から
ら選択または射
射影だけを行ってており，ビュー
ー表のがSQ
QL:1999のビュ
ュー定義に準拠
拠したビューサポ
ポートを提供ししてい行および列が基とななる実表の行おおよび列と 1 対 1 に対応していいる場

るとと謳うには，そこ
こに記されていいるすべての規則則を満たしていいるこ

紹介されることが多い．
合である」（文献[8]]の p.128）と紹とをを保証しないといけないといううことである．しかしながら，，それ

お，結合ビュー
ー（join view）は問合せ指定で定義できるの
ので，
なお

を実
実践することは至難で，これままでそれを謳っているプロプラ
ライエ

その更更新可能性が規規格化の対象ととなってもおかしくないが，規規格でタリ
リあるいはOSSののリレーショナナルDBMS製品は見当たらないい．

は上述
述の条件(c)によより排除され，また，結合ビ
ビューは一般にに更新

さて，SQL:199
さ9が更新可能ととするビューはどのようなビュューなりスキーマレベ変換の曖昧性によりベルでは更新不不可と結論されれるこのかか．それをどのように規定してていくのかを箇箇条7.11ならびにに箇条

4]，そして「完完全 SQL」を実実装したリレーシ
ショナル DBM
MS は
と[14

7.12
2に見ていくが（文献[5]より抜抜粋し翻訳．番
番号は原文のママ），

未だに存在しないこことを勘案すれれば，SQL-92 時点で上記のよ
時
ように

SQL
L:1999における更新可能なビュ
ューは，
「問合せ
せ指定の更新可可能性」

ビューーの更新可能性性を規定したこことは頷けることである．形式
式上，と「問合せ式の更新可能性」の22つに分けて規定
定されている．

SQL--92 のビューはは問合せ式（queery expression）を使って定義義でき■るとされているが，SQL-92 では，問合せ式につついては，UNIO
ON もおける更新可能能なビューの条
条件
SQL:1999 にお―問合せ指定のの更新可能性――EXCE
EPT も INTER
RSECT も指定しないことが更更新可能の条件件とさ9) <問合せ指定> QS が潜在的的に更新可能（ppotentially updaatable）
19

れていいる[4]．従ってて，UNION ビュューなどの更新
新可能性も規格格化のであるためのの必要かつ十分
分条件は次がすべ
べて成り立つここと：a) DISTINCT が指定されていいない．

対象から外されていいる．

b) <選択リスト（select list）>>中に，同じ列参参照（column refference）

4. SQL:1999 ににみるビューーサポート

数回指定されるることである<導出列（derived ccolumn）>が複数

4.1 SQL:1999 におおけるビューの更新可能性

はない．

SQ
QL:1999[5]でビビューの更新可可能性についてて大幅な見直ししが行含まれる<表式
式（table expression）>は<GROU
UP BYc) QS に直接含われた．ビューを定定義するにあた
たり，問合せ指指定（QS）でははなく

句 > ま た は <HAVING 句 > を 含 ま な い ． な お ， < 表 式

せ式（QE）を 用いて定義でき
きる点はSQL-9
92と同じである
るが，問合せ>::=<FROM
M 句>[<WHERE
E 句>][<GROUPP BY 句>][<HA
AVING

上述のようにSQL-992 では実質的的にQSのみが規規格化の対象と なっ

句>]である
る．

はQEもその対象象とするべくそその更たこととは異なり，SQL:1999では200) <問合せ指定
定> QS は，QS ののすべての基表
表（underlying taable）

能性を規格化ししようと改正がが行われたということである．一体
新可能が挿入可能（insertable-intoo）である場合ににのみ挿入可能能であどういいうことなのかか？まず，ビュュー定義から見ていく．

る．

SQ
QL:1999のビュュー定義は以下
下に示す通りでであるが，そ れが

211) <問合せ指定
定> QS が潜在的的に更新可能であある場合：SQL--92のビュー定義
義と異なる点は
は，RECURSIVE
Eビューが定義
義可能a) <表式>の<FROM 句>が正
正確に 1 つの<表表参照（table refeference）となったことと，[ <左括弧> <ビュー列リスト>> <右括弧> ] がが<ビ> TR を指定している場合
合，QS の列に対対応する更新可可能な指定>となった
たことである．
ュー指新可能な列でああると列が TR にある場合，QSS のその列は更新

形式：
形

いわれる．

<ビュー定義>> ::=の場合，QS の列
列は，QS が基表
表 UT に対して 1 対 1b) それ以外の

CREATE [ RECURSIVE ] VIEW <表名>であり，Q
QS の UT の一部
部の列に対応すするものがある場合，

3日本データベベース学会和文論
論文誌
サーベ
ベイ論文

Vol. 22-J, Article No. 1, 2024 年 3 月

ば，表 R と S の UNION ビュー V（=R UNION
N S）を考えたととき，更新可能な列列であるといわわれる．
22)) <問合せ指定>>は，それが潜在在的に更新可能能であり，かつつ少な

V の更新は可能だのプル t を挿入ししようとしたときに，が，V にタップくとも 1 つのの更新可能な列ががある場合，更新可能（updatabble）

t を R に挿入するべ
べきか，S に挿挿入するべきか，あるいは両方
方に挿

である．

するべきか，意味
味的曖昧性が生生じるので，挿入入は不可としななけれ入す23)) <問合せ指定>> QS は，それがが更新可能でああり，QS に直接
接含ま

ばな
ならない．

れる<表式>にに直接含まれる<<FROM 句>が 1 つの<表参照
照>を

以下，まずは，
以
これら多様なな概念を整理することから始め
める．

含み，かつ QQS のすべての結結果列が更新可可能であるときき，単続けけて，SQL:1999 では SQL 規格
格への適合性の主張のために機機能全純に更新可能能（simply updatable）といわれれる．

体がが細かく分類され，分類された
た区分それぞれに機能識別子がが割り―問
問合せ式の更新
新可能性―

当ててられたが，それれを概観する．さらに，本章後段で，簡単でではあ6) <問合せ式> Q
QE1 が更新可能
能（updatable）でであるための必必要かるがが的確な例を用用いて SQL:19999 規格のもととでの結合ビュ
ューやつ十分条件は
は，すべての<問合合せ式>あるい
いは QE1 にそののままUNIION ALL ビユー
ーの更新可能性性を議論する．

含まれている<問合せ式> QE2
Qに対して次次がすべて成り 立つ

4.2 ビューの更新
新可能性の多様なな概念
上記のように
上
SQL:1999
S
でははビューの更新可能性についてて多様こと：
NION DISTINC
CT，EXCEPT AL
LL，または EXC
CEPTa) QE1 は，UNな概概念が導入されたが，文献[8]のの 4.6 節にそれれを「問合せ更新
新可能

DISTINCT
T を指定して いる<非結合問
問合せ式（nonn-join

性」と「問合せ挿入
入可能性」といいう観点から整理理した記述がああるのquery exprression）> NJQE
E の介在なしにに QE2 を含んででいる

サポートを実装
装しよで，それを紹介する．SQL:1999 規格のビューサ

こと．

とした場合の一助となるはずでである．
うとb) もし QE1 が UNION ALL
Aを指定する
る<非結合問合せ
せ式>[1] 問合せ更新可能
能性

そのまま含んででいるならば，次がすべて成り次
NJQE をそ立つ①

・表参照
照が実表の表名 である場合，表
表参照は更新可
可能で

こと：
i)

表参照の
の更新可能性NJQE は，<問合せ式
式> LO と<問合せ
せ項（query termm）>あり，表参照のすべてての結果列は更更新可能である．

を直接含み，そのの結果として LO
L の通常は基基表とRO を照がビュー表の表
表名である場合
合，それを定義
義する
・表参照

しての
のリーフが RO の一般に基となのなる表であるリ ーフ

問合せ式が更新可能なならば表参照はは更新可能であり，問になるることはないこと．

合せ式の更新可能な結結果列は更新可可能である．

ii) NJQE の各列についてて，LO および RO
R で識別されれるテ照が導出表，横参参照導出表であある場合，それ
れを導・表参照

ルの基底列（unnderlying colummns）は，それぞぞれ，ーブル

出する問合せ式が更新
新可能ならば表
表参照は更新可
可能で共に更更新可能またはは更新不可である
ること．

あり，問合せ式の更新
新可能な結果列
列は更新可能である．

c) QE1 は，IN
NTERSECT を指指定する<非結合
合問合せ式>のの介在なしに QE
E2 を含むこと．

②

指定と基表の 1 対 1 対応
問合せ指

③

問合せ指
指定の潜在的更新
新可能性「SQL:19
999 における更更新可能なビューの条件」の 19)項

d) QE2 は更新
新可能であるこ
こと．
7) <問合せ式> Q
QE1 が挿入可能能であるためのの必要かつ十分分条件

で定義されている通り．
．

は，QE1 が<問問合せ式>または
は<問合せ指定>> QE2 をそのままま 1④

指定の更新可能性性
問合せ指「SQL:19
999 における更更新可能なビューの条件」の 22)項

つだけ含み，QE2 が挿入可能能であること．

で定義されている通り．
．

□
さて，ここで注さ注意するべきは
は，ビューの更新
新可能性についいて，

能列については 「SQL:1999 におおける更新可能
能なビ
更新可能SQL--92 では「更新新可能」という 1 つの概念でそそれが規格化さ れてューの条条件」の 21)項でで定義されていいる通りである．

いたが， SQL:19999 では基本的にに「更新可能」とと「挿入可能」とい・FROM 句がただ 1 つ
つの更新可能な表
表参照で構成さされる

つれが規格化されれている点である（詳細には「「潜在
う 2 つの概念でそれその表参照の更そ更新可能な結果列
列は更新可能で
である．
場合，
・問合せ
せ指定と 1 対 1 対応の基表の更更新可能列は更
更新可

「更新
的に更
更新可能」，「挿挿入可能」，「更新可能」，
新可能な列」，「「単純に更新新可能」と細分分化されている）． これは SQ
QL-92 では先述
述のご

能である．

とく更
更新可能なビュューは基表と行
行と列が 1 対 1 に対応していいたの⑤式の更新可能性
問合せ式

で，ビューへの行のの削除，挿入，（列への）更新
新を区別する必
必要が問合せ式
式が集合演算子 である場合，次次のすべてが満満たさ

ビューや UNIO
ON ビューの更更新可なかったが，SQL:1999 では結合ビれるならば，問合せ式はは更新可能であある（「SQL:19999 に更新（削除を含む）と挿入を分分けて考えない
いとい
能性を考えると，更おける更更新可能なビューーの条件」の 6）項）
6．

いとう理由によよる．どういうことかというとと，更新はでき
きても
けない

・集合演
演算は UNION A
ALL である．

挿入はできないといいうビューが存存在するということである．たたとえ

・2 つの演演算項が同じ表
表を基としないい．

4

日本データベベース学会和文論
論文誌
サーベ
ベイ論文

Vol. 22-J, Article No. 1, 2024 年 3 月

例をを次に示す．

・2 つの演演算項の結果列のの対応する列ど
どうしの更新可可能性【例
例題 1】（SQL:19
999 のもとで更更新可能な結合合ビューの例）

は同一で
である．

実表
実 R(A, B)と S(B,S C)，ここにに，B は S の主キーとする，の
の自然

・集合演算
算項は更新可能能である．
[2] 問合せ挿入可能
問
能性
①

結合
合ビューを次にように定義する
る．
ATE VIEW V
CREA

表参照の挿
挿入可能性

AS
A SELECT A, R.B, C

・表参照がが実表の表名でである場合，表
表参照は挿入可
可能で

FROM
F
R, S

ある．

WHERE
W
R.B=SS.B

がビュー表の表
表名である場合
合，それを定義
義する
・表参照が

②

問合せ式
式が挿入可能なならば表参照は挿挿入可能であるる．

こののとき，B が S の主キーであるのるので B→C といいう関数従属性
性が成・表参照がが導出表，横参参照導出表であある場合，それれを導立ししている．したがって，V のタタップルと R のタップルの間
間に 1

出する問
問合せ式が挿入入可能ならば表
表参照は挿入可可能で対 1 の関係性が出出来上がり，V は更新可能とななる（文献[14]の 7.6

ある．

節）
．

問合せ指定
定の挿入可能性性□「SQL:19999 における更新可能なビューーの条件」の 220)項③

なお，SQLなの規格格化に深く関わわってきたメルルトン（J. Meltoon）ら

で定義されれている通り．

の著
著書[6]では結合合ビューの更新
新可能性を紹介したあと，節を
を改め

問合せ式の
の挿入可能性て関関数従属性を（関関係ありげに）紹介しているので，暗に上述
述のよ「SQL:19999 における更新
新可能なビュー
ーの条件」の 7))項でうなな関係性を意識しているのかな
なと想像される
るが，結合ビューーの更定義されてている通り．

新可可能性に関する規格と関数従属
属性を直接関連
連付ける記述はは見当

4.3 ビューの更新可可能性に関連すする機能識別子
子の導入

たら
らない．

QL:1999 では，SQL 規格への適適合性の主張ののために機能全
全体がSQ

さて，このようなな認識の下で， 例題 1 の結合合ビューV につつき，

細かく分類され，分分類された区分そそれぞれに機能
能識別子が割り 当て

SQL
L:1999 で結合ビビューの更新可可能性がどのように判定されてていく子の示す各機能能は中核 SQL（ccore SQL）と適適合性られた．機能識別子のかか，規格に照らし合わせながらら見ていく．まず，箇条 11.21<ビュ

加的に主張でききる部分に大ききく分類される．中核 SQL は，SQLを追加

ー定定義>の構文規則
則の 9)項「ビュュー表が更新可能（updatable）であ

規格へへの適合性のた
ため必須の最小小言語仕様で，SQL-92 の初級
級水準

るののは<問合せ式>>が更新可能で あるとき及びそそのときのみ」なのを完全全に包含し，そその中級と完全水水準の一部機能能を含む機能設
設定にで，V について箇条
条 7.11 の「問合合せ指定の更新
新可能」の 19)項
項の検なっている．また，この中核 SQL
L に準拠するこことに加えて， 追加を行うと， a), b), c)をすべて満満たしているのので V は潜在的
的に更
証を

的に機
機能を選択してて主張することとができる．さららに，パッケーージと新可可能であることが分かる．潜在
在的に更新可能であり表式が 2 つの呼ぶデータベースア
アプリケーショョンの特定の分分野に向けに追追加機

表参参照，この例では R と S，をし検証にしているので，21)項の b)の検に適合させるこ
ことができる．中核 SQL は， SQL
能をまとめた設定に移る
る．
「QS の列は，QS が UT に対
対して 1 対 1 であるように，でQS のレーショナル DBMS
D
製品としして最小限のユ
ユーザ
規格に準拠するリレ

基表
表 UT の一部の列列に対応する更更新可能なもののがある場合，更新可更つ容易に実装可可能である範囲に限定されていいる．
要求を満たし，かつ能なな列であるといわれる」についいては，
QS の列は
は例題１では A,
A R.B,

注目するべきは注，ビューの更新
新可能性に関連
連して，機能識
識別子

C で，A
で
と R.B はそれぞれ
はUT の R の A と B に 1 対 1 であり，C

T111，機能名称「更更新可能な結合合，UNION 及びび列」，機能記述
述「キは UT
U の S の C と 1 対 1 であるのので，更新可能能な列である．そうすそ存による一対一
一対応関係に基基づく問合せ指定の更新可能性
性，問
ー保存

ると
と，22)項 「<問問合せ指定>は， それが潜在的的に更新可能でであり，合せ式式の更新可能性性」が適合機能としてリストアアップされていいるこ

かつ 少 な く とも 1 つ の 更新 可 能 な 列 がある 場 合 ， 更新 可 能とである．SQL の適適合性試験の歴
歴史と経緯につついては 7 章でで改め（up
pdatable）である」により，V
V は更新可能でであると結論できる．

て論じる．

リレーショナルデータベースででは関連するデ
データが複数ののテー

もとでの結合ビューの更新可能能性
4.4 SQL:1999 のもルに分散して格納されている状状況は多々ありり，それらのテーーブル
ブル

結合ビューは<問結問合せ式>を持持ち出さずとも<問合せ指定>>で定を結結合して生成される結合ビュー
ーをサポートすすることにはととても義できるので SQL--92 規格のもととでも結合ビューは定義できる
るが，意味味がある．加えてて，もし結合ビ
ビューが更新可能能であればそのの有用不可能とされたた理由は前述のの通りである．では，SQL:19999 規
更新不性はは格段に向上ししよう．実働してているプロプラライエタリあるるいは格のもとではどのよような扱いとななるのか，それを見てみる．

OSS
S のリレーショナル DBMS ののほとんどは先述の通り SQL--92 に

まず，一般に結ま合ビューはそれれに対して発行行された更新操操作を準拠拠しているので更新可能な結合合ビューのサポ
ポートはできないが，基表に一意に変換すすることができ
きないことから
ら更新不可能と され中にには SQL:1999 で新しく拡張さでされた 1 対 1 対応
応に基づく更新
新可能ていることはよく知知られたことでであるが，一方でで，一定の条件
件を満性をを踏まえて，更新
新可能な結合ビ
ビューのサポートを謳うリレーーショ

なる場合があるることも示せる．そのような簡
簡単なたすと更新可能となナル
ル DBMS が出現現していること も事実である．

5

日本データベベース学会和文論
論文誌
サーベ
ベイ論文

Vol. 22-J, Article No. 1, 2024 年 3 月

4.5 SQL:1999 のももとでの UNION
N ALL ビューのの更新可能性c) ：INTERSSECT を使用ししていないので成成立する．

QL:1999 のもととでは，ビューの定義に<問合合せ指定>ではな
なくSQd) ：QE2 が更更新可能であるることを要求してているが，tokyoo_emp<問合合せ式>を指定定できるので， UNION [ AL
LL | DISTINCT
T ]，と osakka_emp は更新可
可能としているるので成立している．

EXCE
EPT [ ALL | DIS
STINCT ]， INTERSECT [ AL
LL | DISTINCT ]]を使したがって，
し加法和ビューempp(emp_id, emp_
_name, dept)は更更新可って定定義されるビュ
ューを生成でききる（デフォルトは DISTINC
CT）．

能で
である．

ここでは「SQL:19999 における更新
新可能なビュー
ーの条件」の――問合□―に従って，UN
NION ALL ビュ
ューの更新可能
能性をせ式の更新可能性―

なお，SQL:1999
な
9 におけるビュ
ュー表に対する更新については
は，次に示示すように，問合合せ式を構成すする問合せ指定と 1 対 1 対応ととなる

く．
例題と共に見ていく
こで，一定の条
条件を満たす UN
NION ALL ビュ
ューが更新可能
能とな
そこ

基表
表（の行や行の列列）の存在が前前提となっていることを改めてて記しることを SQL:1999 規格と照らし合合わせて検証ししてみる．

ておおく（文献[8]のの 4.6.5 項）．

題 2】(SQL:19999 のもとでの UNIONU
ALL ビューの更新可能
ビ
能性)
【例題

① UPDATE 文のの更新対象表ににビュー表を指定する場合，ビビュー

和 両 立 な 2 つ の 実 表 tokyo__emp(emp_id, emp_name, deppt) と定義で指定さされた問合せ式
式が更新可能でなければならな
ない．

dの UNIOON ALL ビ ュ ーosakaa_emp(emp_id, emp_name, dept)

問合せ式を構構成する問合せ
せ指定と 1 対 1 対応となる基表
対表の行

emp(emp_id, emp_naame, dept)を次ののように定義すする．

の列が更新対対象となる．

CR
REATE VIEW eemp(emp_id, em
mp_name, dept)② DELETE 文のの削除対象表ににビュー表が指指定される場合
合には，

AS S
SELECT * FROM tokyo_emp

ビュー定義でで指定された問問合せ式が削除可能でなければばならUNION ALLず，問合せ式
式を構成する問
問合せ指定と 1 対 1 対応となる
る基表

OM osaka_emp
SELECT * FROの行が削除対対象となる．

ここで，こtokyo_eemp と osaka_em
mp は更新可能とする．このと き，③ INSERT 文のの挿入対象表ににビュー表が指定定される場合，ビュ―問合
合せ式の更新可可能性―で導入入された QE1 はキーワード
は
A
AS に

ー定義で指定定された問合せ
せ式が挿入可能でなければなららない．

続いて指定されていいる<問合せ式>>である．

問合せ式を構構成する問合せ
せ指定と 1 対 1 対応となる基表
対表が挿SELECT * FROMF
tokyo_em
mp

入対象となる
る．

QE11: UNION ALL

5. SQL:2003 以降
以 SQL:20023 に至るビ
ビューサポーート

SELECT * FROMF
osaka_em
mp
したがって，しQE11 にそのまま含含まれている<問
問合せ指定>QE
E2 はSQ
QL:1999 で拡張張されたビュー
ーの更新可能性について，そのの後のこの場
場合 2 つあり，それらは次のの通りとなる．

規格格の改正で概念，用語の整理とと記述の整備がが行われたが，その主そQE221: SELECT * FROM tokyo_eemp

な改
改正は SQL:2008
8 と SQL:2016 でなされている
る．一方，SQL
L:2003

QE222: SELECT * FROM osaka_eemp

でははビューの更新可能性そのもののに対する改正
正は見受けらないが，そこで，<問合せ
そせ式> QE1 が更新可能（updataable）であるた
ためのそこ
こで導入された<生成列>がビ ューの更新可能能性に影響を与与えているるので，それを指摘することかから議論を始めめる．

必要かつ十分条件をを吟味してみるる．
は，QE1 が UNIOON ALL を用いいて定義されてている
6))項 a) の条件は5.1 SQL:2003
SQ
QL:2003[7]でははビューとその 更新可能性につついての改正はは見らので成成立している．

れず
ず，その規格は SQL:1999 のそそれと同一であある．しかしながら，

6))項 b)については
は，まさしく QE1
Q は UNION ALL を用いてており
NJQE
E = QE1 であるる．

SQL
L:2003 では新ししい列の種類と して<生成列>mns）（generated columが導導入された[7, 9]．生成列は実9実表に定義する列
列で，その表のの列にそこで，b)-i)
そと b)-ii) を検証す
する：b)-i)：「NJQE は，<問合せ式
式> LO と<問合せ
せ項（query termm）>

対す
する演算結果の値が保持される
る．この機能はビューのためのの機能直接含み，その結結果として LO
O の通常は基表
表とし
RO を直

とい
いうわけではないが，ビューのの更新可能性を高めるための利
利用価

ての末端
端（leaf）が RO
O の一般に基ととなる表であるる末端値ががある．ビュー表
表に演算を行う
う列を定義すると，その列は更
更新可

になるこ
ことはないことと」については，この例では，LO =能ととはならないが，ビュー定義でで演算を行う代
代わりに，同じ演演算を

QE21，R
RO = QE22 でああるので，成立立している．

行う
う生成列を基となる実表に定義
義して，その列をビューの列のの基にb)-ii)：「NJQE
E のすべての列列について，LO
O および RO でで識別する
るとその列は更新可能な列にななる．同じ結果を得るビュー表
表では

されるテ
テーブルの基底
底列（underlying
g columns）は，それある
るが，生成列を基基とすることでで列が更新可能能となる．具体例
例を示

ぞれ，共共に更新可能または更新不可能能であること」につす．

いては，LO および RO
O で識別されるるテーブルはそ
それぞ

例題 3】(SQL:20
003 の<生成列>>とビューの更新可能性)【例

れ tokyoo_emp と osaka__emp であり，それらは更新可そ可能と従業員の身長と体重を保持すする checkup 表から，BMI 値をを参照
する
るビュー表 bmi を定義するこ とを考える．B
BMI 値は weigght(kg)

しているるから，成立ししている．

6

日本データベベース学会和文論
論文誌
サーベ
ベイ論文

Vol. 22-J, Article No. 1, 2024 年 3 月

÷((hheight(m))2 のように計算される
る．

であある．利用者識別
別子（ユーザ名名）や役割名（ロール名）が認認可識別子子として使用される．ビューのの定義者に対しして SELECT 権限は権

一つつの方法は，ここれを単純に次のように実現すすることであるる（基表の列列のデータ型はは適当）．

無条条件に生成される．

CREATEC
TABLE
E checkup(emp__id CHAR(7), em
mp_nameUPDATEU
権限，INSERT 権限，DELETE 権限についてはどううか．

VARCHA
AR(128), heightt DEC(4,1),weig
ght DEC(4,1))

更新
新可能でないビューに UPDATTE 権限を付加しても意味がな
ないの

CREATEC
VIEW bmi(emp_id, em
mp_name, bmi)

で，これらの権限がが生成されるかかどうかは，ビューの更新可能
能性や

AS SELECT emp_id, emp_naame, weight/POWER(height,2)

入可能性に関わってくる．SQL
能性に挿入
L:1999 で見たとおり更新可能

FROM ccheckupは単単純に更新可能な場合と，SQL
L:1999 で新しく拡張された 1 対 1

WHERE
E weight/POWER
R(height,2)<18.5対応
応に基づく更新
新可能性があり，においていちい
いち 2，権限の生成にO
OR weight/POW
WER(height,2)>==25

種類類の更新可能性を並べて書く煩煩雑を避けるた
ために，これらををまと

このビューは bmi 列
列以外の列が更更新可能なので更新可能であるるが，めてて表す用語が必要となった．そそのために導入
入された用語が「実効

bmi 列は，
列基となる表の列そのもののを基とする列
列ではなく演算算結果

的にに更新可能」である．つまり，実効的に更新可能とは「単純純に更なので更新可能でははない．

新可可能」である場合か，または 「1 対 1 対応にに基づいて更新
新可能」

として，checkupp 表に生成列をを定義する方法
法を考もう一つの方法とであある場合ということになる．
これらの
こ
2 つの
の変更により， ビューの更新可能性の規則は
は次の

みる．
えてみ
CREATEC
TABLE
E checkup(emp__id CHAR(7), em
mp_nameよう
うに改められた．

VARCHA
AR(128), heightt DEC(5,2),weig
ght DEC(4,2), bm
mi

構文規則：
構
（文献
献[10]より抜粋
粋し翻訳．番号は原文のママ）

GENERA
ATED ALWAYS
S AS weight/POWER(height,2)))

7) <問合せ式>が更新可能
能ならば，ビュュー表は，更新
新可能

CREATEC
VIEW bmi(emp_id, em
mp_name, bmi)e) とする．
(updatable

CT emp_id, empp_name, bmi
AS SELEC

8) <問合せ式
式>が単純に更更新可能ならば，，ビュー表は，単純FROM
M checkupに更新可
可能 (simply upddatable) とする．

WHER
RE bmi<18.5 OR
R bmi>=25

9) ビュー表
表が単純に更新
新可能か，又は SQL 処理系がが機能

このビューの bmi 列
列は基となる chheckup 表の bmi 列をそのままま基とT111「更新可能な結合，和集合及び列列」を提供し，かかつ，するので更新可能でである．bmi 列のの値は height 列と列 weight 列の
の値か

ビュー表
表が更新可能な らば，ビュー表
表は，実効的にに更新の値である必要
要があるので，更新や挿入の際際に，ら決まる演算結果の可能 (efffectively updatabble) とする．
5.3 SQL:2016

更新 値 や挿 入値 を 明 示的 に指 定 す る場 合に は ， 値で は な く
DEFA
AULT を 指 定 す る 必 要 が あ る （ 例 え ば 更 新 の 指 定 で はさて，SQL:200
さ
8 は SQL:2011 を経て SQL:20
016[11]へと改正
正され

bmi=
=DEFAULT と指指定する）．

た．ビュー定義の形式は SQL:19999 や SQL:200
08 のそれと同一
一であ□新可能性についてての規則も基本
本的に同一であある．
る．ビューの更新
L:2016 では，実実効的に更新可可能という用語の使用範囲が，ビュ
SQL

5.2 SQL:2008
SQ
QL:2008[10]でのの変更点は，更更新可能性の定
定義が「機能識識別子

ーだ
だけではなく<問
問合せ指定>のの更新可能性にに拡大された．また，T111」を用いて行わ
われるようにななった点と「実実効的に更新可可能」「一
一般に更新可能」という用語がが導入された．これらの用語は
は，箇という用語が導入さされた点であるる．

条 7.16
7 <問合せ指定定>の中で次の ように定義されれる．

■

機能識別子 T1111 による更新可能性の規定

構文規則：
構
（文献
献[11]より抜粋
粋し翻訳．番号は原文のママ）

ビューが単純にビ
ない場合は，問問合せ指定と基基とな更新可能ではな

26) <問合せ指指定>が潜在的的に更新可能で，，かつ，少なくくともる表の 1 対 1 対応のの関係がある場合
合に基となる表
表の更新可能なな列は一つの潜潜在的に更新可能
能な列をもつなならば，その<問
問合せが，これはリレ
レーショナル DBMS が機能識
識別子
更新可能とされるが指定>は，一般に更新可
可能 (generally updatable)
u
とす
する．

結合，和集合及及び列」の機能能を提供する場
場合にT111「更新可能な結指定>QS は，Q
QS が単純に更新
新可能か，又はは SQL28) <問合せ指れる．T111 をを提供しないと実
実際には更新ははできないのに
に，ビ
限られ

処理系が
が機能 T111「更更新可能な結合，和集合及び列
列」をューに更新可能といいう特性が付与
与されることはは矛盾したこと だか

提供し，かつ，QS が一
一般に更新可能ならば，実効的的に更うな事情で，問合合せの更新可能能性の規則の書書き方らである．このよう新可能 (effectively updaatable) とする．

更された．
が変更
■

一般に更新可能一という用語は何
何の形容もない
い更新可能といいう用可能という用語語の導入
実効的に更新可語がが多用されると規則の理解の妨妨げになるといいう理由で導入
入されビューを定義しビ
た認可識別子ににはビューを操操作するためのの権限たがが，あまり必然性
性はないようにに思える．ただだし，少なくともも一つが生成成される．認可
可識別子とは，表のような SQQL の資源へののアクの潜
潜在的に更新可能な列をもつとという条件付けけが行われることで，セスやその利用の認認可として権限限を与える対象
象を示すためのの名前

相応
応に意味が特定的になるにもかかかわらず，何の形容もない更更新可7

日本データベベース学会和文論
論文誌
サーベ
ベイ論文

Vol. 22-J, Article No. 1, 2024 年 3 月

可能な列 潜在的に更新可能といいう用語を使ううことは，単純にに更新可能等のの他の用語とのの釣り合いの上で好ましく
くないと考えらられる．

潜在的に更新可潜可能な<問合せ指指定>の結果の列列が次のいずれ
れかの

ビューの更新可ビ
能性についてはは次のように簡
簡潔な形に変更
更され

条件件を満たすとき，その列は潜在在的に更新可能能という．
― <問合せ指定定>の基となる表
表（FROM 句にに指定される表
表）が

ている．
構文規則：
構
（文献
献[11]より抜粋しし翻訳．番号はは原文のママ）

ただ一つでであり，その基基となる表の更新
新可能な列に対対応す10) QE が一般
般に更新可能ならば，ビュー表
表は，一般に更
更新可

る列である
る．

能 (generaally updatable) とする．

― 基となる表ははただ一つでははないが，問合合せ結果の表と行
行が 1

11) QE が単純純に更新可能ならば，ビュー表
表は，単純に更更新可

対 1 対応のの関係になる基
基となる表の更新
新可能な列に対対応す

能 (simplyy updatable) とする．

る列である
る．

12) QE が実効効的に更新可能ならば，ビュー
ー表は，実効的的に更

潜在的に更新可潜可能な<問合せ指指定>の基となる表が一つでああれば新可能 (eeffectively updattable) とする．

行はは 1 対 1 対応のの関係になるのので，これらの条
条件は総じて 1 対 1

5.4 SQL:2023

対応
応の関係になる基となる表の列列に対応する列列であることが
が必要

SQL
S
の最新規格
格として SQL:20023 規格が 2023
3 年 6 月に公開
開されとななる．そのようなな列であってもも基となる表の列
列が演算結果のの列でた[122]．この改正はは ISO/IEC 9075--16:2023 Inform
mation technologgy —あるるような場合は更新可能ではな
ないので，さらに基となる表の
の更新

Datab
base languages S
SQL — Part 166: Property Grapph Queries の新新設の可能
能な列である条件が付加されてている．

ためであり，既存機
機能についての修修正は不備の修修正と軽微な制
制限の 一般に更新可能
能な<問合せ指定
定>っている．したがって，ビューーに関連する修
修正も緩和だけにとどまっ<問合せ指定>が<が潜在的に更新
新可能であり，かつ少なくともも一つサポートに関ししては SQL:20116 に見当たらず，SQL:22023 はビューサの問問合せ結果列が潜在的に更新可可能な場合，そその<問合せ指定>はよい．
同じということでよ一般
般に更新可能という．<問合せせ指定>が潜在的的に更新可能でであってもも，問合せの結果列がすべて演
演算結果の列でであるような場
場合は，

6. SQL におけるビューの更更新可能性――総括―

基ととなる表の列にに対応する列が なく潜在的に更更新可能な列がが一つ

SQ
QL-87 に始まり
り SQL:2023 に到到るまで，ビュューの更新可能能性をもなない．このような<問合せ指定
定>は一般に更新
新可能とはいええない．
 単純に更新可能
能な<問合せ指定
定>

規定すするために，ささまざまな概念
念，用語，そして記述が出現しした．
本章では，ややもすすると断片の集合合体の感を与ええてしまいかねねない

一般に更新可能一
能な<問合せ指定
定>が次の条件を満たすとき，その<問合
合せ指定>は単単純に更新可能とという．

味・意図するところを咀嚼し伝伝えることで，改め規格の諸要素の意味
問合せ指定>と<<問合せ式>の更更新可能性の理
理解向上の一助
助として<問― <問合せ指定定>の基となる表
表（FROM 句にに指定される表
表）が

たい．
6.1

ただ一つで
である．
― <問合せ指定
定>のすべての結結果列が潜在的的に更新可能．

<問合せ指定>>の更新可能性― <問合せ指定
定>の WHERE 句に指定される条件の中に副副問合問合せ指定>という SQL 規格
格の構文要素は，，問合せの原子子的な<問部分であり一つの S
SELECT で指定定される範囲を示している．

せが指定さされる場合，<問
問合せ指定>の基となる表（FFROM

潜可能な<問合せ指指定>
 潜在的に更新可

句に指定さされる表）は， 副問合せで参照
照されない．

<問
問合せ指定>が次の条件を満たたすとき，そのの<問合せ指定>>は潜単純に更新可能単
能な<問合せ指定定>は，SQL-92
2 での更新可能な<問

在的に更新可能といいう．

合せせ指定>に相当すする．WHERE 句の条件によって選択される
る行の― DISTINCT ななし．

集ままりは，更新の実
実行前に決定さされるべきもののであるが，現実
実の実― 結果列に同じじ列が一つ以上上指定されない．

装ででは，副問合せ
せで<問合せ指定定>の基となる表
表を参照するとと基と― グループ表ででない．

なる
る表の更新の結果として，選択択される行の集まりが変化しててしま

この条件によっこ
指定される問合合せの基となるる表のて FROM 句に指う場場合があり，そののような状況がが起きないようにするために，，この行と，問合せ結果のの表の行が 1 対 1 に対応しなくくなるような問
問合せ

よううなことが要請されると考えらられる．

は排除される．DIST
TINCT によってて行の重複排除除が行われると 基と指定>
 実効的に更新可
可能な<問合せ指表と問合せの行
行は一般的に多多対 1 対応の関係係になる．グルループ
なる表

実効的に更新可実可能という用語語が導入された経緯については
は 5.2

化され
れて基となる表
表の行の集まりが 1 個のグルループに対応付付けらで述述べた．そこで述べたとおり， 機能 T111 の提提供なしでは実
実際のれる場
場合も同様であある．結果列に同同じ列が 1 つ以以上指定されな
ないこ

更新
新ができないので，機能 T1111 の提供のないい場合に，<問合
合せ指とは，問合せ結果のの表の複数の列がが基となる表のの同じ列に対応
応付け定>を更新可能とすすることはでききない．そのため，適合性上のの機能する．潜在的に更新可能とは，更新可能でああるた
られることを排除す取り込んだ概念となっている．
を取<問合せ指定>は<は，次のいずれ
れかの条件を満たせば実効的にに更新最低限必要な性性質があって，更新可能となる更る可能性があるることめに最と考えることができ
きる．

可能
能という．

8

日本データベベース学会和文論
論文誌
サーベ
ベイ論文

Vol. 22-J, Article No. 1, 2024 年 3 月― <問合せ指定
定>が単純に更新
新可能である．

<問合せ指定>の<の場合に対応しした概念になってている．<問合せ式>― <問合せ指定
定>が一般に更新
新可能であり，D
DBMS が機能 T111

は，次のいずれかかの条件を満たす
すとき，その<<問合せ式>は実実効的に更更新可能という．

「更新可能な結合，和集合
合及び列」を提提供する．
 <問合せ指定>の<の更新可能な列列― <問合せ式>が単純に更新可可能である．
― <問合せ式>が一般に更新可
可能であり，DBBMS が機能 T111「更<問問合せ指定>の列は，次のいずずれかの条件をを満たせば更新
新可能な列という．

新可能な結結合，和集合及及び列」を提供すする．
 <問合せ式>の更更新可能な列― 単純に更新可
可能な<問合せ指指定>の列である．

<問合せ式>の結<結果の列は，次次のいずれかの条
条件を満たすととき，― 一般に更新可
可能な<問合せ指定>の潜在的的に更新可能なな列であり，DBMS
S が機能 T111「更新可能な結合「合，和集合及びび列」

そのの<問合せ式>はは更新可能な列とという．
― <問合せ式>>が集合演算を含含まない場合はは，<問合せ式>に含を提供する．
 挿入可能な<問合
挿合せ指定>

まれる<問合合せ指定>の更更新可能な列であある．

<問
問合せ指定>は
は，実効的に更新
新可能であり，基となる表がが挿入― <問合せ式>>が集合演算をを含む場合，集合演算子は UNION
U

可能な場合に，そのの<問合せ指定>>は挿入可能という．

ALL でありり，演算項の各
各<問合せ指定>の対応する結果
果列は

実は，挿入可能実ということにつついて，更新可可能についてののよう

すべて更新
新可能であるか
かまたはすべてて更新可能でななく，に多くの議論がなさされたわけでははないように見受受けられる．11 対 1

DBMS が機機能 T111「更新
新可能な結合，和集合及び列」を提ない場合でも，挿入ができる場
挿場合もあるかももしれ
対応の関係にならな

供する．

本
挿入可
可能性は更新可能能性とは別に考考えるべきなののかもず，本来は，

 挿入可能な<問
問合せ式>
挿入可能な<問<問合せ式>は，<問合せ指定>であるときに挿入入可能しれない．ただ，そそういう場合が原
原理的にあり得得たとしても，そのいと考えられる
るので，挿入可能能を実効的に更更新可
実装は非常に難しいといいう．

場合としてしままうことは一つつの現実解と考えられる．
能な場
6.2

集合演算がある集
ると挿入先がどどの演算項の表かかが一般には特特定で<問合せ式>のの更新可能性きなないので，<問合合せ式>が<問合合せ指定>である場合というののは自問合せ式>は複複数の<問合せ指指定>に対してて集合演算を行行う問<問

然ななことと考えられる．
6.3

合せも可能な，<問
問合せ指定>を包包含する構文要要素である．たただ一

新可能性
ビューの更新つの<<問合せ指定>でで構成される問
問合せも<問合せ
せ式>として定定義可ュー定義>でキ
ビューは，<ビビキーワード AS に続いて指定さにされる能である．<問合せせ式>の更新可能
能性は，4.1 で説説明されているる通り<問合合せ式>が単純
純に更新可能， 一般に更新可能
能，実効的に更更新可ても纏めておく．
だが，これについて

能かかに応じて，単純純に更新可能，一般に更新可
可能，実効的に更更新可単能な<問合せ式>>
 単純に更新可能

能ととなる．<問合せ
せ式>の更新可可能な列に対応すするビューの列列が更<問
問合せ式>は，集合演算を含ま
まず，再帰や結結果行の順序付付けの新可可能な列になる．

指定（ORDER BY 句句）等を指定せせず，<問合せ式
式>が含む<問合合せ指7. 適合性試験
験―その歴史史と経緯―定>がが単純に更新可
可能な場合に単純純に更新可能とという．WITH 句（インライ
インビューのよようなもの）を指定する場合をを除くと，実質
質的に

SQL:1999
S
以降，適合性（confformance）のた
ために SQL 規格
格の機は，<<問合せ式>が単単純に更新可能
能な<問合せ指定
定>である場合
合とい能全
全体が細かい機能区分に分類さされ，最低限適適合が必要な部分
分（中うことになる．

核 SQL）以外は，
S
適合性を主張張する範囲を機能能区分によってて選択

一
能な<問合せ式>>
 一般に更新可能

でき
きるようになった．機能区分そそれぞれに機能識識別子が割り当
当てら<問
問合せ式>は次次の条件を満たす
すとき，その<問合せ式>は一
一般にれらられ，結合ビューや UNION ビ
ビューの更新可可能性のためにに T111

更新可能という．

「更更新可能な結合，和集合及び列列」という機能識識別子が割り当当てら― <問合せ式>にに含まれる<問合せ指定>が一
一般に更新可能
能であれた
た．T111 が設けけられた背景をを次のように推察察できる．つままり，ビュューの更新可能性は改正を重ねねるにつれて SQL
S
の構文規則
則で定

る．
― <問合せ式>がが集合演算を含含む場合，集合
合演算子は UN
NION

義す
するにはあまりにも複雑になりりすぎて，これをプロプライエ
エタリ

ALL である．

ある
るいは OSS のリレーショナル DBMS ベンダが忠実に実装す
するこ― <問合せ式>がが集合演算を含含む場合，演算項
項の各<問合せ
せ指定とははほぼ無理ではないかとの認識識となり，このの解決策として，，SQL>の対応する
る結果列はすべべて更新可能でであるかまたははすべとししてビューサポートのための標標準機能を標榜榜はするが，それ
れをどて更新可能でない．

のよように実装しその結果がどれほ
ほど SQL 標準に適合している
るかは― <問合せ式>がが集合演算を含含む場合，演算算項の<問合せ指指定>

ベンンダに任せる，という判断に至至ったのだと考考えられる．こののスタの末端で基となる表を演算
算項の間で共有有しない．

ンス
スはそれ以降現在に至るまで変変わっていないい．

 実効的に更新可
実可能な<問合せ式
式>

さて，SQL:199
さ
9 で，適合性のの主張のためにに SQL の全機能
能が細9

日本データベベース学会和文論
論文誌
サーベ
ベイ論文

Vol. 22-J, Article No. 1, 2024 年 3 月

分化されて，細分化化された機能ごとに番号が付与
与され，各機能能は中[2]

QL（core SQL）とパッケージに分類されたとと先述した．そそうす
核 SQ
ると，適合しているとの主張の正しさを一体誰ががどのような立立場でとなるが，これにについては次ののような経緯ががある．
認めるのかが問題と
まず，SQL
まの適適合性についてはは SQL-92 の頃
頃は認定機関に
による

[3]
[4]

適合性
性試験（conforrmance test）ががあった（SQL--92 では機能識
識別子

[5]

はなくて水準が 3 つ
つあっただけでである）．米国ででは NIST（Nattional
ute of Standardss and Technologgy）が適合性試試験を行っていいた．
Institu
日本では JIS の適合合性試験というものはなかった
たが，一部のママルチ[6]は JIS 規格を基基にした調達仕様
様が規定され，それベンダシステムではする試験が行わ
われることがああった．SQL:19
999 の頃になる
るとメに対す
インフレームの時代
代が終わってマ
マルチベンダ環
環境での厳格ななソー
搬性の要求が薄薄くなって適合合性試験という もの
スプログラムの可搬[7]の後は，適合性はは自己申告のよような形になっっていはなくなった．その
この場合，「SQ
QL:1999 に準拠しています」ののような大雑把
把な言
る．こ

[8]

い方がされることももあるが，「T1111 の機能を提供供します」とままで細ュアルのような
な公式文書に記記載する場合はは相応
かいレベルでマニュ[9]格だと考えられれる．第三者が認認定するわけでではなくあくままで自に厳格
己申告
告ではあるが，実態を伴わない
いと組織の信頼頼性に関わるこ
ことや，訴訟とまではいかな
なくてもクレー
ームの対象にははなりうるだろ
ろう．

[10]
[11]

DBM
MS の評判にも関わるので影響響は大きいと考考えられる．機機能を完全にサポートしてていない場合は
は，大部分はササポートしていいても
サブセットを提供供している」とというようによより正「T111 の機能のサ[12]

表現がなされるることもある．
確な表[13]

8. おわりに[14]

SQ
QL におけるビ
ビューの更新可能能性を規格の制制定から始まり その改正の歴史と共に辿辿った．ビュー
ーの定義が<問合合せ指定>から<<問合>に拡張されるるに従いビューのの更新可能性のの定義は SQL の提せ式>供する多様な機能とと関連してそのの複雑さは増加の一途を辿った
た．言
格の難解さは多様様なビューの更更新可能性を享享受し
うまでもなく，規格
アントを悩ませせる一方で，そののような規格ををフルようとするクライア
ようとするリレ
レーショナル DBMS ベンダのの高いスペックで実装しよSQL 規格が実装
装に配慮して「適合性」といいう概
障壁ともなった．S
取り入れたこととはごく自然なな流れであったといえよう．
念を取今後，SQL
今のビ
ビューサポートががどのような展展開を見せるののか予断は許許さないが，本
本稿が SQL のビ
ビューサポート
トの経緯と現状状を理解しておきたいと考考えている者のの一助となれば幸いである．

謝辞
辞
末筆ながら，幾末
つかの有益なコ
コメントを下ささった査読者に
に深謝
する．

参考
考文献
[1]

Edgar F. Coddd. Recent Investigations in Relational Dataabase
Systems. Infformation Proocessing 74, pp. 1017-11021,

10

North-Hollandd, 1974.
Michael Stoneebraker, Eugene Wong, Peter Krreps, and Geraldd Held.
The Design anda Implementat
ation of INGRES. ACM Transaactions
No. 3, pp. 189-2
on Database Systems,
S
Vol. 1, N
222, September 1976.
ISO 9075 FirstF
edition, In
Information pro
ocessing systemms —Database lang
guage SQL, 19877-06-15.
ISO/IEC 9075:1992, Inforrmation techno
ology — Daatabaselanguages — SQL, July 30, 19992.
ISO/IEC 907
75-2:1999, Info
formation technnology — Daatabaselanguages —SQL——Part 2: Foundationn (SQL/Foundation),
1999-12.
d A.R. Simon. SQL:1999 Und
derstanding Relaational
J. Melton andLanguage Components. Morgrgan Kaufman Publishers,P
20022. 邦
訳：ジム・メ
メルトン，アラ ン・サイモン（著）
．芝野耕司
司（監
訳），小寺孝，中章司郎，土田正正士，山平耕作（訳）（ ．
白鳥孝明，田中SQL：1999 リレーショナル
ル言語詳細．ピアソン・エデュュケーション，2003．
ISO/IEC 907
75-2:2003, Info
formation technnology — Daatabaselanguages — SQL — Part
rt 2: Foundatioon (SQL/Foundation),
December 200
03.
山平耕作，小小寺孝，土田正正士．SQL スーパ
パーテキスト．技術評論社，2004 .
土田正士，小小寺孝．SQL20003 ハンドブック
ク―SQL 最新標標準規格―．ソフトト・リサーチ・ センター，20004．
ISO/IEC 907
75-2:2008, Infoormation Technnology — Daatabase
Languages — SQL — Part 2: Foundation (SQ
QL/Foundation), 2008.
ISO/IEC 9075
5-2:2016(E) Fift
fth edition, Inforrmation technoloogy —Database laanguages — SQL — PartP
2: Founndation(SQL/Foundattion), 2016.
ISO/IEC 907
75-2:2023, Info
formation technnology — Daatabaselanguages SQL — Part 2: Fouundation (SQL/F
Foundation), 20223-06.
JIS X 3005-2
2:2015 データ
タベース言語 SQQL 第 2 部:基本
本機能
(SQL/Foundattion)．日本規格格協会，2015．
増永良文．リ
リレーショナルルデータベース入入門[第 3 版]．サイ
エンス社，2017．