Ssqllogo
SuperSQL
Trinity

SuperSQLは関係データベースの出力結果を構造化し、多様なレイアウト表現を可能とするSQLの拡張言語です。


SuperSQLのクエリはSQLのSELECT句をGENERATE <media> <TFE>の構文を持つGENERATE句で置き換えたものです。<media>は出力媒体を示し、HTML,PDF,SWF,Excelなど様々な媒体を指定することができます。また<TFE>はターゲットリストの拡張であるTarget Form Expressionを表し、結合子、反復子などのレイアウト指定演算子を持つ一種の式です。

SuperSQLは報告書やDB/WWWサイト作成などの4GL-タイプアプリケーションに理論的かつ実際的な基盤を提供するものです。このウェブページでは、TFEがどのようにクエリーの結果をさまざまなメディアへと再構築するかをご紹介します。
System_architecture
SuperSQLは、様々な種類の構造化された出版/プレゼンテーションドキュメント(例えばHTML, XML, PDF, EXCEL...) を作るためにTFE(Target Form Expression)を用いてSQLを拡張するものです。左の図はSuperSQLのシステムイメージを示します。

TFEはSQLのターゲットリストの拡張です。属性がコンマで分割されている普通のターゲットリストとは異なり、TFEはクエリの結果として作成されるドキュメントの構造を指定するために、新しい演算子(結合子と反復子)を使用します。各演算子は水平(1次元)、垂直(2次元)、および深度(3次元)と結びつきます。 また、いくつかの特別な機能も提供されます。


SuperSQL Query

SuperSQLではクエリを表現するためにSELECT句に代わってGENERATE句を使用します。さらに、クエリの結果を生成するメディアは以下のように指定します。
GENERATE <media> <TFE>
FROM <from clause>
WHERE <where clause>
Connector

Operators

[ , ] は水平結合子、 [ ! ] は垂直結合子、そして [ % ] は深度結合子を表します。結合子の両端ではTFEが指定されます。演算対象のTFEの結果は結合子の示す方向へと接続されます。水平結合子は左から右まで水平方向にそれらを接続し、また、垂直結合子は上から下まで垂直方向にそれらを接続します。HTML生成において、深度結合子はハイパーテキストでハイパーリンクを指定します。演算対象の左側はリンクボタンになり、そして演算対象の右はそのボタンが押されるとき現れるページになります。

通常、左の結合子は他の結合子より優先されます。優先順位を変える必要性があるときには、{ }を使用します。

Iterator

Repeater
[ ], は水平反復子、 [ ]! は垂直反復子、そして [ ]% は深度反復子を表します。1組の括弧でTFEは指定されます。内側のTFEによって発生した複数のインスタンスが繰り返してそれぞれの反復子の示す方向に接続されます。[a1,a2,...,an] ! というTFEは通常のターゲットリストの a1,a2,...,an と同じ結果を生成します。

Grouping

Grouping
反復子が1つ以上のアイテム(属性)に接続されるとき、後者は反復するアイテムをグルーピングするのに使用されます。このように、グルーピング項目の余分な表示を減少させることができます。

Decoration Operator

出力の装飾を指定する演算子は装飾演算子 @ です。@はTFEに続いて書きます。コンマによって仕切られた1組のかっこ{ }に装飾の記述をすることができます。それぞれの装飾は「item = value」と記述します。
  1. クエリ呼び出しによるWEBページの動的生成 (Movie,Theater,Actor Database)

  2. SuperSQLを用いた高品質なデータベース出版 (Movie,Actor Database)

  3. SuperSQLによるHTML上での動的プレゼンテーション生成 (Satellite Image Database)

  4. クエリ分割を利用した複雑なクエリ生成 (Car, Engine, Company Database)

  5. SuperSQLを用いたAjaxページ生成 (Car, Engine, Company, CarImage, Cartype, Country Database)

  6. SuperSQLを用いたWEBアプリケーション生成

SuperSQL (standalone version) 164KB SuperSQL on Linux
postgresql.jar, pdflib.jarが含まれています。
サーブレット(検索、動的生成)は含まれていません。
postgreSQLで動作します。
SuperSQL for Ajax 579KB 各種サーブレット(検索、動的生成)を含んでいます。
pdflib.jar, postgresql.jarを含んでいます。
postgreSQLで動作します。
TOMCAT 4.1.31以降で動作確認済み
YAHOO User Interface 2.3.1(改良版), prototype.js, lightbox.jsを含んでいます。
SuperSQL導入マニュアル(PDF) 166KB LinuxにおけるSuperSQL導入マニュアルです。
SuperSQLを使って、HTMLページを生成しよう
(縦・横結合子、縦・横反復子、装飾子、各種関数、集約関数、order by)
SuperSQLを使って、Ajaxページを生成しよう
(部分更新、ドラッグ&ドロップ、タブ、パネル、検索、エフェクト、デモ)
SuperSQLを用いたWEBアプリケーション生成