データベース文字セットの選択

TimesTenでは、データベース文字セットを使用して、CHARVARCHAR2などの文字データ型で格納するデータのエンコーディングを定義します。

データベースの文字セットは、DatabaseCharacterSetデータ・ストア属性を使用し、データベースの作成時に指定します。データベースの文字セットは、データベースの作成後は変更できず、DatabaseCharacterSetにはデフォルトの値がありません。サポートされている文字セットのリストについては、『Oracle TimesTen In-Memory Databaseリファレンス』サポートされている文字セットを参照してください。

データベースの文字セットを選択する場合は、次のことについて考慮してください。

  • 現在および将来、データベースでサポートする必要がある言語であるか。

  • 文字セットはオペレーティング・システムで使用可能かどうか。

  • クライアントで使用されている文字セット。

  • アプリケーションでの文字セットの処理状況。

  • パフォーマンスへの文字セットの影響。

Oracleデータベース表をキャッシュする場合、またはOracleデータベースのデータをTimesTen表にロードする場合は、Oracleデータベースと同じデータベース文字セットでデータベースを作成する必要があります。

この項の内容は次のとおりです。

文字セットおよび言語

データベース文字セットを選択すると、データベースで表示できる言語が決定されます。

一連の文字(アルファベット文字、表意文字、記号、句読点、制御文字など)を文字セットとしてエンコードできます。エンコードされた文字セットによって、文字レパートリ内の各文字に対して一意の数値コードが割り当てられます。この数値コードは、コード・ポイントまたはエンコードされた値と呼ばれます。

文字セットは、シングルバイトでもマルチバイトでもかまいません。シングルバイトの7ビット・コード体系は、128文字までの文字を定義でき、通常、1つの言語のみをサポートします。シングルバイトの8ビット・コード体系は、256文字までの文字を定義でき、通常、1つの関連言語グループをサポートします。マルチバイトのコード体系は、何千もの文字を使用する中国語や日本語などのアジア言語の表意文字スクリプトをサポートするために必要です。これらのコード体系では、固定バイト数または可変バイト数のいずれかを使用してそれぞれの文字を表します。エンコードされたユニバーサル文字セットのことで、1つの文字セットを使用して任意の言語の情報を格納できます。Unicodeは使用されるプラットフォーム、プログラムまたは言語に関係なく、すべてのキャラクタにそれぞれ一意のコード値を提供します。

クライアント・オペレーティング・システムとアプリケーションの互換性

データベース文字セットは、オペレーティング・システムから独立しています。英語のオペレーティング・システムで、日本語文字セットのデータベースを作成できます。クライアントのオペレーティング・システム内のアプリケーションでデータベースにアクセスする場合は、クライアントのオペレーティング・システムによって適切なフォントおよび入力方法のデータベース文字セットがサポートされている必要があります。

たとえば、英語版Windowsでは、最初に日本語のフォントおよび入力方法をインストールせずに、日本語のデータを挿入または取得することはできません。日本語のデータを挿入および取得するもう1つの方法として、リモートで日本語オペレーティング・システムを使用してデータベース・サーバーにアクセスする方法もあります。

パフォーマンスおよび記憶域への影響

最適なパフォーマンスのためには、変換が不要な文字セットを選択し、使用言語にとって最も効率的なエンコーディングを使用してください。

シングルバイト文字セットは、パフォーマンスの点でマルチバイト文字セットよりも優れており、領域要件に関してもより効率的です。ただし、シングルバイト文字セットには、サポートできる言語の種類に制限があります。

文字セットおよびレプリケーション

レプリケーション・スキーム内のすべてのデータベースのデータベース文字セットは同じである必要があります。レプリケーションでは、文字セットの変換は行われません。