Page History
LANSAで言う「テーブル」とは、データベースのテーブルのことです。レコードの検索、追加、更新、削除が可能です。IBMのi関連用語では、単に「テーブル」と言えば、物理テーブルを表す場合もインデックスを表す場合もあります。
テーブルを作成するには、リポジトリで言うところの「テーブル定義」が必要です。これは、特定のデータベースに依存しない形で、テーブルの特性を定義したもののことです。
具体的には、次のような事項を定義します。
テーブル・レコードのフォーマットを構成するテーブル内の実フィールド。そのうちいくつかを、テーブルの「キー」として指定できます。
必要となるテーブルの1.6.3 インデックスの作成。インデックスに入れるレコードの選択/除外基準も設定できます。
さらに次のような事項も定義できます。
1.6.4 仮想列の作成の定義。実フィールドとしては存在しませんが、他のフィールドから派生させて存在しているように見えます。「仮想」と呼ばれるのはこのためです。これらの列はテーブルに存在するように表示されますが、実際には存在しません。
1.6.5 テーブルに対する妥当性規則やトリガーの作成。レコードを追加/更新/削除したとき、列に対して実行されます。
1.6.6 アクセス経路の作成。当該テーブルと他のテーブルとの「関係」を表します。細かいデータベース構成を意識することなく、複数のテーブルを組み合わせて表される概念を扱えるようになります。
1.6.7 事前結合列の作成。先に定義したアクセス経路を使って他のテーブルから情報を検索し、データの関連づけ(結合)を行うものです。
1.6.8 バッチ制御の作成。このテーブル中のデータの合計、個数など、集約演算の結果を他のテーブルで管理する場合に、そのテーブルを設定します。演算結果の値は、必要に応じて自動的に更新されます。
テーブル定義に関しては、次の点に注意してください。
テーブル定義名と物理テーブル名は常に一致します。テーブル定義名を指定する必要がある場合は、関連するインデックス/テーブル名ではなく、物理テーブル名を指定してください。
フィールド・タイプとしてどのようなものが設定できるかは、区画の設定によって異なります詳細については、『Visual LANSA 管理者ガイド』の「RDML 区画および RDMLX 区画」を参照してください。
LANSAシステムでは、インデックスはテーブル定義の一部であると考えます。
テーブル定義には、対応する物理テーブルおよびインデックスの属性もすべて含みます。
[ |../../index.htm#lansa/l4wdev01_0075.htm]
現在地:
...
従来のいわゆる第3世代言語によるプログラム開発には、アプリケーションに関する情報があちこちに分散して記述され、重複した情報が多いという問題がありました。例えばフィールド定義について見ると、省略値、有効範囲などの設定が、そのフィールドを使ういくつものプログラムに、ばらばらに記述されていたのです。そのため、テーブル間の参照整合性その他、規約を設けた上で開発を進める必要がありました。処理プログラムのかなりの部分が、業務に関する定義や妥当性規則を単純に実装するだけのものになっています。
LANSAのアーキテクチャはこの問題を解消するために考えられたもので、業務アプリケーションに関する情報を、LANSAアクティブ・オブジェクト・レポジトリで集中管理するようになっています。同じような処理プログラムを繰り返し記述する必要はありません。リポジトリに1度だけ記述することにより、同じ業務処理ロジックを、どのプログラムでも共有できるようにしているのです。さらに、LANSAのアーキテクチャは一般にも公開されているので、他の開発ツールからもリポジトリの情報を使えます。
1.4 LANSA RDML で開発することにより、リポジトリで集中管理されたオブジェクトの定義を再利用できるので、開発の生産性が向上します。リポジトリで管理されている情報を改めて記述する必要はないので、RDML プログラムは必要最小限の簡潔なものになります。開発者はリポジトリ情報を再利用することで、より短い期間でアプリケーションを作成でき、コーディング量もはるかに少なくてすみます。
LANSAリポジトリを使うと、保守作業も容易になります。業務内容が変わってもプログラムはそのままで、リポジトリ側で集中管理されている定義を変更するだけで済むことが多いからです。コンパイル作業すら必要ないことも珍しくありません。情報の集中管理により、変更による影響範囲の分析、コーディング、テストの作業が非常に少なくて済みます。
次のトピックも参照してくださいe
1.3.4 リポジトリ・コンテンツの制御
| リポジトリ・・チュートリアル – データベース定義およびコーディングが不要な再利用可能なアプリケーション・ロジック |
...