出力グループ定義 JSON、XML、またはXSDファイルをベースとしてインテリジェント構造モデル を作成する場合は、インテリジェント構造検出 で出力グループを定義する方法を選択できます。
入力ファイルの構造を確認する前に、[設定] タブで次のいずれかのオプションを選択できます。
デフォルトの出力グループ インテリジェント構造検出 は、正規化または非正規化された出力グループを生成できます。入力ファイルで使用されている場合、インテリジェント構造検出 はXSDコンポジタをベースとしたグループ(選択グループなど)も生成します。デフォルトの出力グループを生成するときに、[リレーショナル出力] タブで[非正規化] データ正規化モードに切り替えることで、複数の出力グループを1つのグループにマージできます。これにより、データを単一のターゲットに書き込んで、データ処理を効率化することができます。
階層リレーションの正規化 この方法は、繰り返し要素ごとに出力グループを生成します。正規化された階層リレーションを使用すると、通常はデフォルトの出力グループを使用するよりも高速になり、メモリ使用量が少なくなります。 正規化された階層リレーションを生成する場合は、[リレーショナル出力] タブで[非正規化] データ正規化モードに切り替えることで、複数の出力グループを1つのグループにマージできます。これにより、データを単一のターゲットに書き込んで、データ処理を効率化することができます。
エンティティリレーション この方法は、各繰り返し要素および複合データ型の出力グループを生成します。エンティティリレーションを使用すると、複合データ型の最もコンパクトな表現が作成されます。エンティティリレーションは、XMLファイルとXSDファイルにのみ使用できます。 インテリジェント構造検出 は、エンティティリレーションを生成するときに、以下のルールを使用します。
- インテリジェント構造検出 は、すべての出力グループに<group name>_PK という名前のプライマリキーを追加します。- インテリジェント構造検出 は、次のグローバル要素の出力グループを生成します。▪ ルート要素▪ 再帰参照の一部である要素▪ インジケータmaxOccurs = "unbounded" の繰り返し要素- インテリジェント構造検出 は、グローバル要素を参照する各出力グループのグローバル要素に基づいて、出力グループに外部キーを追加します。外部キーは、<parent group name>_FK という名前を使用します。グローバル要素を参照する親グループが複数ある場合、グローバル要素の出力グループには複数の外部キーがあります。- インテリジェント構造検出 は、すべての複合型の出力グループを生成します。出力グループの名前は、複合型の名前です。- 複合型が親要素と1対1の関係にある場合、インテリジェント構造検出 は、<parent element name>_<type name>_FK という名前の外部キーを複合タイプの出力グループに追加します。- 複合型とその親要素の間に1対多または多対多の関係がある場合、インテリジェント構造検出 は<group name 1>_<group name 2> というブリッジテーブルを生成します。ブリッジテーブルには、プライマリキー、最初の出力グループへの外部キー、および2番目の出力グループへの外部キーのみが含まれます。- maxOccursスキーマ属性を単純なデータ型で使用すると、単一の出力グループではなく、複数の個別の出力フィールドを生成できます。ただし、maxOccursが12より大きい値に設定されている場合、インテリジェント構造検出 は複数の出力フィールドではなく単一の出力グループを作成します。どの出力グループも、最初のフィールドは生成されたプライマリキーで、その後に外部キーが続き、その後にスキーマに存在するフィールドが続きます。
maxOccursスキーマ属性を単純なデータ型で使用すると、単一の出力グループではなく、複数の個別の出力フィールドを生成できます。ただし、maxOccursが12より大きい値に設定されている場合、インテリジェント構造検出 は、複数の出力フィールドではなく、単純なデータ型の場合でも単一の出力グループを作成します。