表定義は、アプリケーションがデータベース表またはビューの操作およびアクセスに必要とするメタデータを記述します。

定義には、次の主要な詳細が含まれます。
  • アプリケーションの表の摘要。

  • 表に定義されているフィールドのリスト、および他の表に対して設定される外部キー制約。

  • 表の主キーとその生成方法。

  • 表に保持されるのは管理データ、マスター・データ、トランザクション・データのいずれであるか。

  • 表が製品所有のシステム・データ行とともにリリースされるかどうか。

  • 変換プロセスにおける表の役割。

  • 表の内容のアップグレード方法。

  • その他

次の各項では、表の定義に関連する概念およびガイドラインについてさらに説明します。

システム表

基本製品で所有される行とともにリリースされる表は、システム表と呼ばれます。これらの表には、各行の所有者を取得する所有者(OWNER_​FLG)フィールドが含まれています。

命名規則および行レコード所有権に関する標準の詳細は、「システム・データ」を参照してください。

表定義レコードの「アップグレード」設定は、システムを新しいリリースにアップグレードするときの表の行に対する処理を制御します。最も一般的な設定では、顧客所有の行を基本製品所有の行とマージできます。表の内容をそのまま保持する、つまり、行がアップグレードによる影響を受けないような設定や、表の内容を基本製品の行で完全にリフレッシュする設定もあります。

特定のシステム所有表の一部のフィールドは、カスタマイズ可能であると明示的にマークされています。つまり、実装では、基本所有のレコードに対してこれらの特定のフィールドを変更できます。これらのフィールド・タイプを持ついずれか1つのフィールド値に対して実装で加えた変更は、製品の新しいバージョンへのアップグレード時に保守されます。

指定された表の役割

一部の表は、次のアプリケーション役割をサポートするように設計されています。
  • キー表
    • キー表は表の主キーのコピーのみを保持するものとなり、システム生成キーを持つ表にのみ適用可能です。

    • システム生成キーを持つ表は、キー表を表定義レコードの一部として参照します。

    • 関連エンティティがアーカイブされても、キー表のレコードはシステムに残るため、同じキーを新しいレコードに割り当てることはできません。キーを保持することで、アーカイブされたエンティティにまだ存在する可能性のある参照の整合性が保たれます。

  • 言語表
    • 複数言語の実装をサポートするために、ユーザーに表示されるすべてのラベルと摘要は、指定した言語表に保持されます。言語表では、使用可能な言語ごとに1つの行が存在します。

    • 製品は、様々な言語表で提供されている英語のコンテンツとともにリリースされます。これらの表には、使用可能な言語ごとに追加の行がその言語の翻訳済コンテンツとともに追加されます。詳細は、「異なる言語のサポート」を参照してください。

    • 言語依存フィールドに関連付けられた表は、それに対応する言語表を表定義レコードの一部として参照します。

  • 特性表
    • システム内の多くのエンティティでは、1つ以上の特性表がサポートされています。これらを使用して、エンティティに用意されている属性ではサポートされていないオブジェクトの追加のフィールドを取得します。

    • 特性表は、特定のエンティティにのみ適用可能な特性を取得するように設計されています。特性表に関連付けられたエンティティは、表の定義レコードで参照されます。

    • 詳細は、「特性タイプとその値の設定」を参照してください。

  • エンティティ・ログ表
    • システム内の多くのエンティティでは、指定されたログ表でライフサイクルおよびその他の重要なビジネス・イベントを取得できます。

    • ログ表は、アプリケーション・メッセージの形式でイベント詳細を取得し、メッセージのすべてのパラメータを子ログ・パラメータ表に格納します。すべてのログ表およびログ・パラメータ表は、事前定義された構造に従うため、一貫して効率的に実装できます。

    • 通常、ログ表は変換プロセスに関与しません。

表制約

表間の外部キー関係は、データベース・レベルではなくアプリケーション・レベルで適用されるため、データ操作および参照整合性に関するアプリケーションの柔軟性が向上します。

表の定義レコードには、次のタイプの制約を定義できます。
  • 「主キー」は、表に格納されているレコードの一意の識別子を表すフィールドまたはフィールド・セットを示します。

  • 「論理キー」は、主キーと異なる一連のフィールドに基づくレコードの一意の代替識別子を表します。

  • 「外部キー」は、アプリケーションのその他の表に対する識別関係または非識別関係を指定するフィールドまたはフィールド・セットを表します。外部キー制約は、別の表の主キー制約を参照します。

  • 「条件付き外部キー」 は、単一のフィールド(またはフィールド・セット)が、アプリケーション内にある他の表の複数の主キー制約を外部キーとして参照する、表の間の珍しい関係を表します。

この表の行が削除されると、表の外部キー制約情報を利用して参照整合性検証が実行されます。これらの検証を無効にするには、表定義レコードの「参照整合性の有効化」フィールドを選択解除します。

表索引

特定の表に対して基本製品で提供されている索引は、索引メタデータに表示されます。また、表索引情報は、特定のユース・ケースでカスタム表を生成するためのクラウド・サービス・サポートの一部として定義できます。詳細は、次の「カスタム表の生成」の項を参照してください。

主キー・タイプ

表の主キーには次のタイプがあります。

  • 「ユーザー定義」は、レコードが追加されるときに、ユーザーがキーを指定することを意味します。このタイプのキーは通常、構成表と管理表に使用されます。

  • 「システム生成」は、レコードの追加時に、プログラムでランダムな数値キーが生成されることを意味します。
    • このタイプの表は通常、キー表に関連付けられます。詳細は、「指定された表の役割」の項を参照してください。

    • パフォーマンス上の理由で、システム生成キーは完全にランダムになる場合もあれば、親表のキーから部分的に継承される場合もあります。詳細は、「システム生成キー」を参照してください。

  • 「順次」は、レコードが表に追加されるたびに、シーケンス番号が増分されることを意味します。シーケンスの次の番号によってキーの値が決まります。

  • 「データベース・ネイティブ順次キー」は、データベース・シーケンス・オブジェクトを使用して一意の番号が割り当てられることを意味します。

  • 「その他」は、他のビジネス・ルールによって表の主キーを割り当てるか、複数の部分で主キーを構成することを意味します。

システム生成キー

一般に、ランダムに生成された数値システム・キーは、可能なIDの全範囲にわたってレコードを均等に配分しようとする際に使用されます。複数のスレッドを使用するバッチ・プログラムは、通常、ID範囲を使用してスレッドを分割し、均等に配分されたキーがこれらのスレッド間での作業の分配に役立ちます。

システム生成キーを使用する表が別の表の子である場合、子表のキーは、その親表のキーからランダムな数値の一部を継承できます。子レコードのキー継承により、パフォーマンス上のメリットがさらに大きくなります。パーティション化を検討する際は、異なるバッチ・スレッドが異なるパーティションで動作してホット・ブロックの競合を抑制できるように、データベース管理者が主キーに基づいてパーティション・データを範囲指定することをお薦めします。理想的には、バッチ・スレッドの数はパーティションの数の正確な倍数になります。子データを挿入するバッチ・プログラム(バッチ請求作成など)も、特に子表が同じ方法でパーティション化されている場合に、この設計のメリットが得られます。多くの場合、親はバッチ・プロセスのドライバです。これがマルチスレッドの場合、各スレッドは指定されたID範囲の一連の親レコードを処理し、すべての子レコードが同じID範囲に挿入されます。

システム生成キーを持つほとんどのエンティティでは、完全にランダムなキーを使用するか、単一の親から部分的に継承したキーを使用しますが、さらに具体的なキー生成ルールを実装するようにエンティティを設計することもできます。

キー継承を使用すると、子表の表定義で次の情報が定義されます。
  • 子レコードのキー値のプリフィクスとして使用する、親レコードの主キーの有効桁数。

  • キーの継承元の親キー・フィールド名。この情報は表示およびドキュメント化のみを目的として提供され、エンティティによって実装された継承ルールをこの方法でドキュメント化できる場合にのみ提供されます。通常、子キーの値は単一の親キーから継承されますが、場合によっては継承ルールのほうが複雑になることもあります。たとえば、同じ子表内の異なるタイプのレコードが、別々の親キー・フィールドからキーを継承する場合があります。この場合、様々な継承オプションを記述するために複数の親フィールド名がリストされることがあります。ルールが複雑すぎると、表定義レコードにこの情報が提供されない場合があります。

変換オプション

変換プロセスにより管理されるプロセスでは、ステージング・スキーマにロードされたマスター・データおよびトランザクション・レガシー・データが検証され、本番スキーマにコピーされる前に、新しいシステム生成キーが割り当てられます。詳細は、「変換プロセスの理解」を参照してください。

このツールでは、表が次の役割に分類されます。
  • 管理表。これらは本番スキーマにのみ存在します。ステージング・スキーマには、この表のかわりに本番表のビューが存在します。ステージング・スキーマでデータの検証時に外部キー参照を適用するために、これらのビューが必要になります

  • 主キーを保持する変換可能な表。これらの表ではデータ変換がサポートされており、主キーの値は変更されません。

  • 新しいシステム生成キーを割り当てる必要がある変換可能な表。これらの表ではデータ変換がサポートされており、変換中に主キーが再割当されます。

  • 変換可能でない表。レコードに新しいシステム生成キーを割り当て、そのレコードに含まれる可能性のあるすべての外部キー参照を新しいキーに置き換えることは、複雑なプロセスであり、一部の表ではサポートされていない可能性があります。

表定義レコードの「データ変換役割」設定は、変換処理で表を使用するかどうか、およびどのように使用するかを制御します。

日時構成

日時情報を取得するフィールドは、現地の法定時間または現地の標準時間でデータを格納するように設計できます。ローカル法定時間は、入力したとおりに取得され、データベースに取得されたとおりに表示されます。また、日時情報が、インストール・オプションで定義されたタイム・ゾーンを参照することが想定されています。詳細は、「標準と法定」を参照してください。

カスタム表の生成

クラウドのお客様および特定のユース・ケースに対しては、製品で、カスタム表の表メタデータの定義や、データベース内のそのメタデータの関連DDLの生成がサポートされています。これらのカスタム表では、表メタデータに表示される生成ステータスがあります。これは、このサポート対象機能で表がライフサイクルのどこにあるかを識別するものです。また、表ポータルの「索引」タブを使用して、DDLに含まれるカスタム索引をこの機能の一部として定義します。より詳細な情報が必要なクラウドのお客様は、Cloud Servicesインプリメンテーション・ガイドを参照してください。