例1
注文処理の際、顧客の詳細情報を検索、表示する例です。
注文テーブルに対する入出力が発生すると、顧客の詳細情報を表す事前結合列にも値が入るので、RDMLを使って普通の仮想列と同じようにアクセスできます。顧客テーブルからの読み込み処理を明示的に記述する必要はありません。
頻繁にテーブル・アクセスが発生する場合、その内容が変化しないのであれば、「保管数」属性を適切に設定することにより、入出力負荷を軽減できます。
例2
「商品配送管理」テーブルに「配送元倉庫コード」と「配送先倉庫コード」の各列があって、倉庫に関する詳細情報を、事前結合列の機能により取得する例です。
例3
いくつかの明細行の金額を検索し、合計値を求めて表示する例です。
するとRDMLエディターで、合計金額および商品数を表す列を使って処理を記述できるようになります。明細行を参照する処理を明示的に記述する必要はありません。
例4
注文の明細行ごとに金額を計算する例で、事前結合列と仮想列を使います。
製品の単価(事前結合列)と金額(仮想列)を、RDMLのSELECTコマンドに埋め込んで定義することにより、それ以外のRDMLコードを記述することなく計算できます。
人事管理システムのアプリケーション・データベースには、部門テーブル、部課テーブルを操作します。
部門テーブルの「説明」列と同じものを、「部門の説明」列として部課テーブル内にも設けてみましょう。さらに、部門テーブルに「部課数」列を設け、その部門に属する部課の数を求めることにします。このような目的には事前結合列が向いています。
まず、次の2つの仮想列をリポジトリに定義します。
部課テーブルから部門テーブルへのアクセス経路を設定し、これをもとに、部課テーブルに事前結合列「部門の説明」を追加します。その値は、部門テーブルの「説明」列を検索して求めることになります。「部門の説明」は仮想列なので、実際に部課テーブル中にデータが格納されているわけではありません。あるファンクション内でこの列を参照しようとすると、自動的に部門テーブルにアクセスして値を求めます。その際、アクセス経路の定義を参照します。
次に、部門テーブルから部課テーブルへのアクセス経路を設定し、これをもとに、部門テーブルに「部課数」列を追加します。その値は、部課テーブルの該当するレコードを数えて求めることになります。「部課数」は仮想列なので、実際に個数データが格納されているわけではありません。あるファンクション内でこの列を参照しようとすると、自動的に部課テーブルにアクセスして値を求めます。
次のトピックも参照してください。