データディクショナリ

データディクショナリは、ひとまとまりの、データモデルやシステムに関する情報です。LN では、「ランタイムデータディクショナリ」 および 「アプリケーションデータディクショナリ」 という 2 種類のデータディクショナリを使用します。

このセクションでは、ランタイムデータディクショナリの目的、アプリケーションデータディクショナリの目的、およびアプリケーションデータディクショナリからランタイムデータディクショナリへのデータの変換方法について説明します。

ランタイムデータディクショナリ

ランタイムデータディクショナリ (RTDD) は、システムを実行するために使用されるファイルやデータを指すため、「ランタイム」 と呼ばれます。RTDD の目的は次の 2 つです。

  • テクニカルアーキテクチャに構成情報を提供します。これはランタイム環境とも呼ばれます。
  • アプリケーションの実行時に最適化したアプリケーション情報を提供します。
構成情報

RTDD は、システムのテクニカルアーキテクチャが構成可能なので必要です。この構成情報がデータベースに保存された場合、この情報を取得する方法や取得先のデータベースをシステムでは判別できません。メッセージを表示する言語や、システムをサポートするために開始するプログラムも判別できません。それらの情報は、bshell のスタートアップ中にアプリケーションサーバのオペレーティングシステムから直接取得できるようになっています。

最適化したアプリケーション情報

アプリケーションは、実行中のアプリケーション構成要素に関する多数の情報を繰り返し必要とします。この情報はデータベースから取得できますが、情報は頻繁に必要で、変更頻度が少ないため、事前に処理し、圧縮した最適な状態で保存するほうが高速かつ効率的です。この種の情報例としては、日付フォーマット、メニュー、ツールバーのテキスト、メニュー、フォームなどがあります。フォーム、フォームのフィールド、ラベルなどのアプリケーション構成要素はデータベースに保存されます。実行中のシステムが情報を必要とするとき、すべての情報をデータベースから収集すると、システムの速度が低下します。このため、システムは変換関数を使用して、この情報を最適なフォーマットにコンパイルします。

アプリケーションデータディクショナリ

ランタイムデータディクショナリはアプリケーションサーバのオペレーティングシステムと Enterprise Server のテーブルに保存されますが、アプリケーションデータディクショナリ (APDD) はテーブルに保存されるデータです。APDD データには各セッションがアクセスします。

APDD をデータとして保存し、セッションでアクセス可能にすると、管理者はセッションを使用して簡単にシステムを管理し、開発者はシステムでアプリケーションを簡単に開発することができるようになります。この方法では、アプリケーションの管理環境と開発環境がアプリケーションの実行環境と基本的に同じになります。

APDD のデータは会社番号 000 に保存されます。

ランタイムデータディクショナリへの変換

アプリケーションデータディクショナリのデータをセッションでメンテナンスした後、RTDD 用の情報を APDD から抽出し、再フォーマットまたは最適化して、ランタイムデータディクショナリで使用できるようにする必要があります。このプロセスを 「ランタイムへの変換」 と呼びます。

最適化した情報は次のいずれかのフォーマットになります。

  • オペレーティングシステム上のファイル
  • テーブル内の圧縮データ

APDD をランタイム時に使用可能にする方法は、以下のように分類されます。

  • 直接利用可能: システムは APDD から直接データにアクセスするため、変換ステップは不要です。
  • 変換 (ランタイムへ): このタイプの変換は、情報を APDD から取得して、アプリケーションサーバのオペレーティングシステムでファイルを作成します。
  • コンパイルまたはダンプ: 通常、プログラマが実行するこのタイプの変換は、テーブルやスクリプトファイルから情報を取得し、オブジェクトまたは構成要素と呼ばれる最適化した暗号化形式によりオペレーティングシステムレベルで保存します。

ランタイムへの変換が必要なことをどのようにして見分けるのでしょうか。これは難しい質問です。最も効果的な方法は、セッションにランタイムへの変換ボタンがあるか、特定メニューの下にプルダウンメニュー項目があるかを確認します。たとえば、「パッケージコンビネーション」、「テーブル」、および 「ドメイン」 でランタイムへの変換が必要です。

他のエンティティで APDD の情報を使用可能にするには、コンパイルのステップが必要です。通常は、コンパイルのステップでシステムからサインアウトする必要はありません (ただし、ユーザのスタートメニューを変更した場合は例外です)。コンパイルは、たとえば以下の項目に必要です。

  • メニュー
  • ラベル
  • セッションとフォーム
  • レポート
  • スクリプトとライブラリ
[ランタイムへ変換] セッション

ソフトウェア開発中に使用できる [ランタイムへ変換] セッションは多数あります。通常、エンティティのランタイムへの変換は、そのエンティティを保守するセッションの特定メニューから開始できます。

複数のエンティティに変換が必要な場合や、エンティティの複数の要素を変更する場合は、メニューブラウザからアクセスできる変換セッションを使用します。例:

セッション記述
ランタイムデータディクショナリへの変換 (ttadv5215m000)

「アプリケーション開発」 でのランタイムデータディクショナリへの変換は、「パッケージコンビネーション」 に関連付けられている 「テーブル定義」 ファイルと 「ドメイン」 ファイルに特定の処理を実行します。テーブル定義とドメイン定義のファイルには、テーブルのフィールドとデータ型に関する情報が入っています。このフォーマットが変更になると、テーブルにフィールドが追加され、テーブル定義が変更されます。

一方、データを格納している物理テーブルは、この定義に従う必要があります。定義および物理テーブルが相互に同期しなければならないため、再構成プロセスによって物理テーブルに変更が行われます。

テーブル定義セッションでテーブルに [変換指示 (ttadv500)] という指標のエントリが追加されるため、システムはどのテーブル定義が変更されたかを判別できます。新しいテーブル定義で既存のテーブル定義を置き換えると、実際の変更はテーブルの再構成プロセスが完了するまで保留になります。システムはテーブルの再構成プロセスを、[再構成指示 (ttadv501)] テーブルのエントリから判別します。

ランタイムへの変換プロセスはこの指示テーブルを見て、変換するテーブルを判別します。このセッションではセッションデータは変換されません。

ランタイムデータディクショナリの作成 (ttadv5210m000)

このセッションでは、ランタイムデータディクショナリへの変換 (ttadv5215m000) セッションと同じタスクが実行されますが、以下のような違いがあります。

  • 変更がない場合でも、テーブル/ドメイン定義ファイルが作成されます。したがって、ランタイムデータディクショナリへの変換 (ttadv5215m000) セッションとは異なり、指示テーブルはチェックされません。
  • セッションのエントリはランタイムデータディクショナリテーブル (ttadv999) で作成されます。このテーブルには、セッションの起動時にアクセスします。

このセッションは、データディクショナリのインポートなど、システムに影響を与える変更の後で使用します。データディクショナリのインポート関数を使用すると、アプリケーションのデータディクショナリ構成要素をインポートできます。これは、構成要素を 1 つのシステム (例: 開発サーバ) から別のサーバに移動する方法です。