バージョン 8.1.3
 —  DBA タスク  —

ユニバーサルエンコーディングサポート(UES)

注意:
UES サポートを使用するには、バージョン 7 以降の Adabas SVC またはルーターを使用する必要があります。

このドキュメントでは、次のトピックについて説明します。


概要

ユニバーサルエンコーディングサポート(UES)は Adabas が次の処理を行なうことを可能にするデータベースオプションです。

データ変換は、異なるシステムとの通信時に必要です。例えば、英数字データを異なるコードページに変換したり、異なるマシンアーキテクチャに合わせて数値データを変換したりする必要があります(「複数プラットフォームのサポート」も参照)。

アジア言語環境ではワイド文字のエンコードが使用されます。 多数の各種文字の要求のために、非 1 バイト文字セットが定義されました。 また、Unicode(汎用文字セット)がより頻繁に使用されます(「ワイド文字のエンコード」も参照)。

頻繁にリストされる国際化対応タスクは、エンコードによって定義されるように、バイナリ順ではなく、言語固有の順番でデータを検索し、ソートすることです(「ユーザー出口」内の「照合ディスクリプタ出口」も参照)。

Top of page

ワイド文字のエンコード

たいていの場合、アジアのテキスト文字は、単一バイトを使用してエンコードすることはできません。 例えば、10,000 文字以上の日本語セットは、1 文字あたりに 2 バイト以上を使用してエンコードされます。 必要なエンコードにより、これらは 2 バイト文字セット(DBCS)またはマルチバイト文字セット(MBCS)と呼ばれ、大部分の西洋言語の特徴である 1 バイト文字セット(SBCS)と相反します。

以前のバージョンの Adabas は、DBCS にエンコードしたデータを英数字フィールドに保存していました。 この解決方法には、次の問題点がありました。

Adabas バージョン 7 は、英数字フィールドの DBCS エンコードデータの保存をサポートしていますが、適切に定義されたエンコードおよび文字セットでデータを保存するために、ワイド文字(W)フィールドフォーマットを導入しています。

ワイド文字フォーマットのデフォルトエンコードは、ストレージおよびユーザーに対して Unicode です。 このデフォルトはユーザーおよびストレージレベルで、意図された使用方法に合わせたエンコードに変更することができます。

次の図では、日本語かな(最初の 2 つ)および漢字(次の 2 つ)文字は、メインフレームモーダル(ミックス)および非モーダル(ピュア)にエンコードされます。

Unicode では、固定 2 バイトのエンコードは他のエンコードよりも一般的であり、Adabas のデフォルトエンコードとして使用されます。

graphics/wide_char_encoding.png

ワイド文字エンコード例

モーダルエンコードは、1 バイトおよび 2 バイト文字エンコードの間を前後にシフトします。 混在する DBCS 文字列は、常に 1 バイトモードで開始および終了します。

2 バイト文字のみのフィールド長は、偶数バイトでなければなりません。

EBCDIC エンコードでは、パディングまたは空白文字は、X'40' または X'4040' です。 日立マシンでは、ワイドスペースは X'A1A1'、1 バイトスペースは X'40' です。 Adabas では、モード切換えなしで、1 バイトスペースを 2 バイトモードで使用することができます。

Top of page

ワイド文字データサポート

Adabas は、次のワイド文字データをサポートします。

既存のデータベースまたはファイルのために、エンコードは ADADBS ユーティリティを使用して英数字フィールドまたはワイド文字フィールドに割り当てられます(アンロード/リロードなし)。 フィールドレベルのオプション NV(変換されていないフィールドをコール元に、またはコール元から渡す)が使用可能です。

拡張英数字フィールド

Adabas は、データベースおよびファイルレベルの両方にエンコードキーを定義することで、ワイド文字データをサポートするために英数字フィールドを拡張します。ファイルレベルのエンコードは、データベースエンコードよりも優先します。 エンコードは、データを保存するフォーマットを指定します。 これは、ローカルユーザーと交換するデータのデフォルトフォーマットとしても使用されます。

エンコードは、EBCDIC と互換性がなければなりません。つまり、スペース文字は X'40' でなければなりません。 内部的な処理の理由により、次のエンコードファミリの中から 1 つだけがファイルにサポートされます。

長所と短所

拡張英数字フィールドを使用する利点は次のとおりです。

短所は、DBCS がユニバーサルエンコードではなく、Unicode と異なり世界中の言語が使用するすべての文字をサポートしないことです。

制限

アプリケーションに対して、すべての英数字フィールドが同一のエンコードを持ちます。 同一セッションの異なるフィールドに異なるエンコードを使用することはできません。

変換の考慮点

純粋な 1 バイト文字エンコードから変換するとき、可変フィールドのフィールド長は、変換レコードのシフトを必要とすることがあります。

ワイド文字フィールド

Adabas は、フィールドにワイド文字(W)フォーマットを定義します。 W フォーマットフィールドは、英数字(A)フォーマットフィールドに類似しており、エンコードキーはデータベースおよびファイルレベルの両方に定義されます。ファイルエンコードは、データベースエンコードよりも優先します。 A フィールドエンコードと異なる点は次のとおりです。

A ディスクリプタは、内部的なエンコードで保存(およびソート)されます。

長所と短所

ワイド文字(W)フィールドを使用する利点は次のとおりです。

不利な点は次のとおりです。

制限

特殊 DBCS フォーマットの変換規則

混在 DBCS および DBCS オンリーデータを使用する既存のアプリケーションから、円滑に変換できるように、特殊フォーマット変換規則が定義されました。

  1. 1 バイトおよび 2 バイト文字のスーパーセットを構成するモーダル DBCS エンコードは、英数字フィールドでは混在 DBCS エンコードとして、ワイド文字フィールドでは DBCS オンリーエンコードとして扱われます。

  2. ワイド文字 DBCS オンリーから、ユーザーの英数字混在 DBCS エンコードに変換するとき、エンコードの違いは無視されます。

例えば、英数字フォーマットおよびワイドフォーマットの両方のユーザーエンコードが DBCS として定義され、FDT では、フィールド AA は英数字として定義され、フィールド WW はワイドとして定義されている場合があります。

フォーマットバッファ ユーザーバッファの値
AA[,A] 混合 DBCS
AA,W DBCS オンリー
WW,A DBCS オンリー
WW[,W] DBCS オンリー

Top of page