Identity Manager のリポジトリには、3 種類のテーブルがあり、テーブルごとに使用方法の特徴が多少異なります。このテーブルについての情報は、次の節で構成されています。
属性テーブルを使用すると、定義済みの単一値または複数値のオブジェクト属性を照会できます。
大半のオブジェクト型のストアド属性はハードコードされます。
User オブジェクト型と Role オブジェクト型は、この規則における例外です。User と Role オブジェクトテーブルに格納されるインライン属性は構成可能なため、追加のカスタム属性をクエリー可能として設定できます。
属性状態を基にオブジェクトを検索すると、Identity Manager は対応するオブジェクトテーブルを使用して結合内の属性テーブルにアクセスします。結合の形式 (JOIN、EXISTS 述語、SUB-SELECT など) によっては、属性の状態ごとに発生するものもあります。
属性テーブルの行数は、対応するオブジェクトテーブルの行数に比例しています。この値は傾斜 (スキュー) の形に分布することがあります。複数値の属性には値ごとに行があります。オブジェクトの中にはほかと比べて属性や属性値が多いものもあります。通常、属性テーブルの行とオブジェクトテーブルの行には、多対 1 の関係があります。
属性テーブルのテーブル名は ATTR です。
Identity Manager では、対応するオブジェクトテーブルに加えた変更内容の履歴を追跡するのに変更テーブルを使用します。これらのテーブルのサイズは、オブジェクトの変更率に比例しますが、際限なく増えることはありません。Identity Manager は、自動的に変更テーブルを切り捨てます。
変更テーブルは、行の有効期間が比較的短く新しい行が頻繁に作成されるため、変動率が高くなることがあります。
変更テーブルへのアクセスは、通常、タイムスタンプフィールドの範囲スキャンで実行されます。
変更テーブルのテーブル名は CHANGE です。
Identity Manager のリポジトリは、オブジェクトテーブルを使用してラージオブジェクト (LOB) などの直列化データオブジェクトを保持します。オブジェクトテーブルでは、よく問い合わされる単一値のオブジェクト属性も保持できます。
大半のオブジェクト型のストアド属性はハードコードされます。
User オブジェクト型と Role オブジェクト型は、この規則における例外です。オブジェクトテーブルに格納されるインライン属性は構成可能なため、User と Role は、追加のカスタム属性をクエリー可能として設定できます。
オブジェクトテーブル内の行数と、格納されるオブジェクト数は一致します。オブジェクトテーブルごとに格納されるオブジェクト数は、そのテーブルに格納されるオブジェクト型によって決まります。オブジェクト型によっては多数のものもあれば、少数のものもあります。
Identity Manager は通常、オブジェクト ID またはオブジェクト名を使ってオブジェクトテーブルにアクセスしますが、テーブル内に格納されている属性のうちの 1 つを使ってアクセスすることもできます。オブジェクト ID とオブジェクト名は単一のオブジェクト型をとおして一意ですが、属性値は一意ではなかったり均等に分布されていたりします。属性によっては値が多いものもあれば、比較的少ないものもあります。さらに、複数のオブジェクト型で同じ属性を使用することもあります。属性の中には、あるオブジェクト型に対する値は多く、別のオブジェクト型に対する値は少ないものもあります。値の分布が均一でないと、インデックスページの分布も均一でなくなり、スキューと呼ばれる状態になります。
オブジェクトテーブルは、テーブル名に ATTR または CHANGE 接尾辞が付かないテーブルです。