オブジェクト指向、Javaを取り入れた
新しい業界標準「SQL99」詳細解説

第一章 高度なデータ操作(4)


ユニオン(UNION)経由の更新

 これまでユニオン(UNION)を含むビュー(VIEW)に対しては参照の操作だけが許されていたが、SQL99で更新が可能になった。図12に例を示す。名簿表は、社員表と同好会会員表を併合(ユニオン)したビューであり、田中一郎さんの「氏名」を更新する必要があるとする。ビューである名簿表に対してUPDATE文を実行すれば、ビューの定義元の実表である社員表と同好会会員表のそれぞれの対応する列値が1回の操作で更新することができる。

図12 ユニオン(UNION)経由のUPDATE文の例

■結合(JOIN)経由の更新

 これまで結合(JOIN)を含むビューは、参照のみの操作だけが許されていたが、SQL99では整合性に問題がなければ更新が可能になった。図13に例を示す。名簿表2は、社員表と同好会会員表を1対1で結合したビューである。このビューに対して、図にあるようなINSERT文を実行すれば、ビューの定義元の実表である社員表と同好会会員表のそれぞれに1行を1回の操作で挿入することができる。

図13 結合(JOIN)経由のINSERT文の例

 本来はひとつの表であるべきものを、何らかの理由で複数の表に物理的に分割しなければならない場合がある。表を分割した場合、それまでに作成したSELECT文はユニオンや結合を含んだビューを利用できるため、分割されたことをある程度不可視にすることができる。しかし、ユニオンや結合を含んだビューを通しての更新や削除はできなかったため、これらの操作を行うときは、分割されたものに対して個別にSQL文で変更せざるをえなかった。SQL99によってユニオンや結合を含むビューが更新可能になりこうした問題が解決されたので、これまで以上に柔軟な表の設計を行うことができるようになるだろう。

とびら 新しい業界標準「SQL99」詳細解説

第一章 高度なデータ操作

SQL99の背景と特徴
SQL99の主な機能強化
  スキーマ定義の新機能
  データ操作と演算子の新機能
  整合性の新機能
  セキュリティ(機密保護)の新機能
  トランザクション管理の新機能
  クライアント/サーバの新機能
高度なリレーショナル操作
  共通表式 WITH句
  再帰SQL
OLAPによる分析手順
  ROLLUP
  CUBE
  GROUPING SETS
ユニオン(UNION)経由の更新
  結合(JOIN)経由の更新


第二章 柔軟さを増したデータ構造

ユーザー定義可能な新しいデータ
  新しい組込みデータ型
  真理値型(BOOLEAN型)
  配列型(ARRAY型)
LOBとは
  LOBデータ型の定義
  LOBデータ型の取り扱い
  LOBロケータの使用
  HOLD LOCATORとFREE LOCATOR
  LOBの挿入(更新)と検索方法の拡張
ユーザー定義型
  ユーザー定義DISTINCT型
ユーザー定義関数
関数のオーバーロード

オブジェクトリレーショナル
  ユーザー定義構造型と列オブジェクト
  ユーザー定義構造型と行オブジェクト
副表(サブテーブル)と継承(インヘリタンス)
  副型を持つ列オブジェクト
  行オブジェクトと経路式
オブジェクトビュー
トリガ


第三章 SQLJと今後の標準化動向

クライアント/サーバ環境のための機能強化
  ストアドプロシージャ
  新しいプロシージャ言語
静的埋め込みSQLを実現する「SQLJ」
  パフォーマンスの向上と移植性
  SQLJのコンパイル
  SQLJの記述方法
  SQLJ 対 JDBC
  イテレータの使用
  SQLデータ型としてのJavaクラス
オブジェクトリレーショナル機能の応用例
  SQL/MM全文検索(フルテキスト)
  SQL/MM地理情報(スペーシャル)
今後のSQL標準化動向
  コレクション型の拡張
  オブジェクトリレーショナル機能の拡張
  SQL/MED
  OLAP機能の拡張
  自由度が高まるデータアクセス



「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間