4.1 データベース・スキーマをエンリッチするためのベスト・プラクティス

データベース・スキーマの最適なAIエンリッチメントを実現するには、次のベスト・プラクティスに従います。これらの推奨事項により、LLMのコンテキストの理解が向上し、より正確で信頼性の高いSQL問合せの生成が可能になります。

  • 明確な言語の使用

    各データベース・オブジェクトのビジネス上の意味を正確に表すために、注釈はすべてドメイン固有の明確な英語で記述します。

  • 効果的な説明の記述

    DESCRIPTIONラベルを使用して注釈を作成し、表や列などのデータベース・オブジェクトの目的を明確にします。たとえば、次のようにT_EMPという名前の表に注釈を付けて、その役割を記述することができます:

    This table stores both active and former employees, including contractors, with one row per employee.

  • データベース・オブジェクトの別名のリスト

    ALIASESラベルを使用して、データベース・オブジェクトに共通のシノニムまたは代替名を指定します。ユーザーは様々なシノニムを使用してオブジェクトを参照することが多いため、ALIASES注釈は、LLMが特定のオブジェクトに対してこれらのバリエーションを正確にマップするのに役立ち、ユーザーの意図を解釈する能力が向上します。たとえば、EMP_IDという列は、従業員番号個人番号または就業者IDと呼ばれることがあります。これらの代替案は、次のように注釈にリストできます:

    Common aliases for this column include employee number, worker id, and person number.

  • 数値データの測定単位の指定

    数値データを含む列の場合、UNITS注釈を使用して測定単位を指定します。これにより、LLMによる値の誤解釈を防止できます。たとえば、salary_amount列にExpressed in United States Dollars (USD)と注釈を付けることができます。これにより、モデルでは通貨タイプが正しく識別されます。同様に、距離の列の場合、Units: kilometersと注釈を付けて、モデルで正確な変換または集計を実行するようにできます。

  • 結合ロジックの定義

    表を結合する際は、JOIN COLUMNラベルを使用して、列の優先結合パートナを指定します。LLMによる自動SQL生成では、結合ロジックに苦労することが多いため、この注釈により、モデルを正しい結合へと導きます。たとえば、次のようにEMPLOYEE.DEPT_IDという名前の列に注釈を付けることができます:

    This column is most commonly joined with DEPARTMENT.DEPT_ID and represents the employee's home department.

  • サンプル値の列挙

    VALUESラベルを使用して、LLMに列のサンプル値または個別値を指定します。この情報は、モデルで有効な述語を認識するのに役立ち、そのフィルタリング機能を直接向上させます。たとえば、次のようにstatus_codeという名前の列に注釈を付けることができます:

    Typical values for status_code include A (active), I (inactive), and T (terminated).

  • グループ関連表

    アプリケーション・ドメインにあわせて表をグループに編成し、そのグループに注釈を付けます。表をグループ化することで、外部キーによって明示的に定義されていない関係をLLMが理解するのに役立ちます。たとえば、給与に関連するすべての表をHR_Payrollという名前のグループに編成し、次のように注釈を付けることができます:

    This group contains all tables related to payroll.