適用対象: Windows |Windows Server
データベースの概要
ESE データベースは、データを格納および取得するためのインデックス付きシーケンシャル アクセス方式 (ISAM) です。 ESE データベースは 1 つのファイルに格納され、1 つ以上のユーザー定義テーブルで構成されます。 データは、1 つ以上のユーザー定義列を含むテーブル内のレコードに編成されます。 作成されるインデックスは、セット全体またはテーブル内のレコードのサブセットに対して異なるorganizationを提供します。 アプリケーションでは、ESE API を使用して、データベース内のレコードを異なる順番で移動するカーソルを作成できます。 テーブルの要素を以下に定義します。
列: 列は、特定の種類の情報を格納するテーブル内のフィールドです。 列は、格納されているデータ型に応じて固定または可変長にすることができます。 一部の列 (タグ付けされた列など) では 、NULL の場合や既定値に設定されている場合はスペースを使用せず、複数の値を含めることができます。
レコード: レコードは、主キーによって定義された一意の ID を持つ列値のコレクションです。
インデックス: インデックスは、テーブル内のレコードの格納順序を定義するキー列のコレクションです。 クラスター化インデックス (プライマリ インデックス) は、レコードがテーブル内に格納される順序を定義します。 テーブル内のレコードを介した走査の異なる順序を指定するために、複数のインデックスを定義できます。 また、インデックスは、レコード内の特定のキー列値の有無などの単純な条件に基づいて表示されるレコードのセットを制限することもできます。
カーソル: カーソルはテーブル内の現在のレコードを示し、現在のインデックスを使用してテーブル内のレコードに移動します。 カーソルには、現在準備されている更新プログラムの状態に関する情報も含まれています。
列とインデックスは、いつでもテーブルに追加または削除できます。 複数のインデックスを定義できますが、テーブル内のデータは、B+ ツリーのプライマリ インデックス定義に従って物理的に格納され、論理的にクラスター化されます。 各セカンダリ インデックスは、プライマリ テーブルに格納されている実際のデータへの論理ポインターのみを含む個別の B+ ツリーに格納されます。 インデックスが定義されていない場合、テーブル内のレコードは挿入順に B+ ツリーに格納され、シーケンシャル インデックスと呼ばれます。
次の図は、テーブルのデータがプライマリ インデックスに従って B+ ツリーに格納される方法の例です。 プライマリ インデックスは [名前] と [ID] で、従業員のオフィス番号に対してセカンダリ インデックスが作成されます。 セカンダリ インデックスのエントリは、プライマリ テーブルに格納されているレコードへのポインターのみを含む別の B+ ツリーに格納されます。 たとえば、セカンダリ テーブルのオフィス番号 12348 は、プライマリ テーブルのレコード 3 に関連しています。 レコード 3 には、Office 12348 の従業員の列値が含まれています。 詳細については、「 テーブルのインデックス作成 」トピックを参照してください。