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

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


今後のSQL標準化動向

 SQL国際標準委員会は、次のSQL標準(開発コード名は「SQL4」)として次のような課題を検討している。

■コレクション型の拡張

 SQL99でサポートした配列(ARRAY)型に加えて次のような型を追加する。

  • SET型・・・・要素の順番に意味がないが、重複を許さない集合
  • LIST型・・・要素の順番に意味があるが、重複を許す集合

■ オブジェクトリレーショナル機能の拡張

 SQL99のオブジェクトリレーショナル機能は第一段階である。次のような機能が検討されている。

  • 多重継承・・・副型が複数の上位型を持てるようにする。
  • 型移行・・・・例えば表階層にある社員表のある社員が、その副表の管理職社員表に移るときどのように行うべきか。現在の仕様では、いったん上位表からその社員の行オブジェクトを削除してから、副表にあらためてその社員の行オブジェクトを挿入しなければならない。

■SQL/MED

 SQL/MED(SQL/Management of External Data,SQL/外部データ管理)は、DBMSの外にある様々なファイルや非リレーショナルデータベースに対してSQL文によって管理したり、アクセスを可能にしようという試みである。まだ草案を審議中の段階であるが、米国のベンダーを中心に意欲的に標準化作業が進められている。
 SQL/MEDは次の三つの構成要素からなる。

  • DATALINK型
  • 抽象表(外部ファイルを表として扱う)
  • 抽象LOB(外部ファイルをLOB型データとして扱う)

 DATALINK型は、外部ファイルを位置づけるURLをコード化したもので、外部ファイルがひとつのオブジェクトしてあたかもデータベースの中に格納されているかのように扱うことを目的としている。アプリケーションは、SELECT文を使用してDATALINK型の列を読込んで、適切な外部ファイル名を獲得し、その内容を参照したり操作するのは従来のファイルAPIを使用する。

 DBMSは、どこに外部ファイルの場所を知っているので、GRANT文によって機密保護を制御したり、データベースと一緒にバックアップを作成するなどの統合的な管理が期待できる。

図40 SQL/MEDにおけるDATALINK型による外部ファイルアクセス

 抽象表は、SQLサーバ(DBMS)の管理外の外部ファイル、非リレーショナル編成のデータベース、あるいは他社ベンダーのデータベース中の表を「外部表」として定義する。そしてSQLサーバと外部サーバとの間のAPIを標準化することによって、アプリケーションが発行するSQL文の目的表が、自分のデータベース中に存在するのか、それとも外部表であるのかを意識させないような透過性を実現しようというのである。

 このAPIをアプリケーションが知る必要はないが、もしSQLサーバと外部サーバがそのような機能を持てば、SQL文による非リレーショナルデータベースへのアクセスや、他社ベンダー製品間の表の結合、さらにはリレーショナルな表と非リレーショナルなファイルあるいは階層構造データベースとの間の結合も可能となり、応用範囲が一層広がることが期待できる。

■OLAP機能の拡張

  OLAPに今後追加されようとしている機能としてウィンドウがある。ウィンドウとはデータの部分的な区分を示し、その中での順序づけや総計を指定することができるものである。またその他のOLAP機能としてRANK、DENSRANK、ROWNUMBERなどの関数も検討されており、これらをウィンドウと組み合わせて使用することも考えられている。

自由度が高まるデータアクセス

  この連載では、SQL99の数多い新機能のなかから、興味深い機能をできるだけ具体例を挙げて解説したつもりであるが、ご理解いただけただろうか。筆者らが3回の連載を通じて感じるのは、SQL言語は、最早、リレーショナルモデルだけのデータベース言語ではなくなったということである。オブジェクト・リレーショナルに進化・発展したことによって、SQLアプリケーションを適用できる分野が格段に広がったと思われる。その典型例はマルチメディアアプリケーションであろうし、SQLJによるJavaアプリケーションであろう。SQLなしに新しいアプリケーションの開発はありえないとさえ思える。また従来、リレーショナルモデルの枠に束縛されていたデータベース設計も、正規化という基本を踏まえながらも、自由度が一層高まるだろう。今回の連載記事が、読者の今後のSQLアプリケーションやデータベース設計の指針を作成するのに少しでもお役立てていただければ幸いである。

 最後に、SQL99のフレームワーク、ファウンデーション、PSM(永続格納モジュール)、CLI(コールレベルインタフェース)、言語バインディング、およびSQL/マルチメディア・地理情報(SQL/MMスペーシャル)が1999年11月に正式に国際標準化されたとことをお伝えして連載の終わりとしたい。


とびら 新しい業界標準「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
  イテレータの使用
  Javaを使用したストアドプロシージャとUDF
  SQLデータ型としてのJavaクラス
オブジェクトリレーショナル機能の応用例
  SQL/MM全文検索(フルテキスト)
  SQL/MM地理情報(スペーシャル)
今後のSQL標準化動向
  コレクション型の拡張
  オブジェクトリレーショナル機能の拡張
  SQL/MED
  OLAP機能の拡張
  WINDOW句
  自由度が高まるデータアクセス



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


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

注目のテーマ

Master of IP Network 記事ランキング

本日 月間