スキーマ注釈の作成および管理
スキーマ注釈は、表、ビュー、列、索引、データ・ユース・ケース・ドメインなどのデータベース・オブジェクトの拡張プロパティまたはカスタム・プロパティを含む、自由形式のテキスト・フィールドです。注釈は、データベース・スキーマ・オブジェクトの使用方法プロパティを一元的に登録するための軽量かつ宣言的な機能です。これらは、アプリケーションで拡張およびカスタム使用方法プロパティの登録および処理に使用する、データベース・メタデータに関する軽量な標準化されたマークアップと考えることができます。
関連項目:注釈の詳細は、『Oracle AI Database概要』を参照してください。
注釈の作成
注釈は、スキーマ・オブジェクトのプロパティであり、オブジェクトのCREATE文で指定できます。
-
次の文では、表自体と内在する列についての注釈を含む、新しい表が作成されます。
CREATE TABLE employees ( id NUMBER(5) PRIMARY KEY ANNOTATIONS (Identity, Display 'Employee Name'), ename VARCHAR2(50) ANNOTATIONS(Display 'Employee Name'), salary NUMBER ANNOTATION(Display 'Employee Name', Confidential) ) ANNOTATIONS (Display 'Employee Table'); -
次の文には、
hrスキーマでのdept_codesアプリケーション使用方法ドメインの作成において注釈が含まれています。CREATE DOMAIN dept_codes AS NUMBER(3) CONSTRAINT dept_chk CHECK (dept_codes > 99 AND dept_codes != 200) ANNOTATIONS (Title 'Domain Annotation);
注釈用のDDL文については、『Oracle AI Database開発ガイド』を参照してください。
注釈のリスト
ディクショナリ・ビューを使用すると、特定のオブジェクトに対して使用されている注釈のリストを取得できます。
次のディクショナリ・ビューは、注釈および注釈使用方法に関して定義されています。
-
ALL_ANNOTATION_VALUES、DBA_ANNOTATION_VALUES、USER_ANNOTATION_VALUES
-
ALL_ANNOTATIONS、DBA_ANNOTATIONS、USER_ANNOTATIONS
-
ALL_ANNOTATIONS_USAGE、DBA_ANNOTATIONS_USAGE、USER_ANNOTATIONS_USAGE
ALL_*ビューには、そのユーザーが所有するオブジェクトに関するすべての注釈、そのユーザーにALTER権限がある他のユーザーが所有するオブジェクトに関するすべての注釈、およびそのユーザーにシステム権限があるオブジェクト・タイプのオブジェクトに関するすべての注釈が含まれています。DBA_*ビューには、データベース内のすべてのオブジェクトに関するすべての注釈が含まれています。USER_*ビューには、そのユーザーが所有するオブジェクトに関するすべての注釈が含まれています。
-
次の文では、
EMPLOYEE表に関する表レベルの注釈が取得されます。SELECT * from USER_ANNOTATIONS_USAGE WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NULL; -
次の文では、
EMPLOYEE表に関する列レベルの注釈が取得されます。SELECT * from USER_ANNOTATIONS_USAGE WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NOT NULL; -
次の文では、
EMPLOYEE表に関する列レベルの注釈が、列ごとに単一のJSONコレクションとして取得されます。SELECT U.Column_Name, JSON_ARRAYAGG(JSON_OBJECT(U.Annotation_Name, U.Annotation_Value)) FROM USER_ANNOTATIONS_USAGE U WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NOT NULL GROUP BY Column_Name;
注釈のディクショナリ・ビューについては、『Oracle AI Databaseリファレンス』を参照してください。
注釈の変更
注釈を変更するには、注釈付きスキーマ・オブジェクトに対してALTER文を使用します。
-
次の文では、値
HRを含む注釈Departmentがさらにemployees表に追加されます。ALTER TABLE employees ANNOTATIONS (ADD Department 'HR'); -
次の文では、注釈
Titleが削除され、値Domainを含む新しい注釈Nameがdept_codeドメインに追加されます。ALTER DOMAIN dept_codes ANNOTATIONS(DROP Title, ADD Name 'Domain');
注釈用のDDL文については、『Oracle AI Database開発ガイド』を参照してください。