すべてのプロダクト
Search
ドキュメントセンター

Data Management:スキーマ設計

最終更新日:Mar 29, 2026

Data Management Service (DMS) の「スキーマ設計」モジュールは、設計から公開に至るまでのスキーマ変更を管理します。このモジュールを使用して、検証ルールを定義し、リスクしきい値を設定し、承認プロセスを構成することで、すべてのスキーマ変更が本番環境への適用前にチームの基準を満たすようにしてください。

仕組み

スキーマ設計チケットは、以下の 2 つのステージを経て処理されます。

  1. 変更の保存 — DMS は、変更を保存する前に、テーブルヘッダー、フィールド、インデックスを設計ルールに対して検証します。

  2. 変更の適用 — DMS は、リスク識別ルールに基づいてリスクレベルを算出し、該当する承認プロセスにチケットをルーティングします。

チケットが複数のインスタンスにまたがる場合(例:テスト環境で設計し、本番環境に公開する)には、基本設定項目、設計ルール、およびリスク識別ルールは、ベースデータベース(テスト環境)に適用されます。一方、承認プロセスは、本番環境用に構成されたセキュリティルールを使用します。

基本概念

R&D プロセス

R&D プロセスは、スキーマ設計チケットの全ライフサイクルを定義するものであり、「スキーマ設計」モジュールにおいて最も重要な設定項目です。

プロセスには、以下の 2 種類のノードがあります。

ノードタイプ説明
設計スキーマ変更の設計を行う環境を決定します。デフォルトで生成され、削除できません。
公開設計後にスキーマ変更を公開します。複数の「公開」ノードを追加できます。

各ノードには、以下のパラメーターがあります。

パラメーター説明
ノード名最大 10 文字の名称。
データベース環境ノードが実行される環境。
実行戦略即時実行:ノードが承認されるとすぐに実行されます。定期実行:スケジュール時刻に実行されます。ノードがスケジュール時刻より前に承認された場合は、スケジュール通りに実行されます。スケジュール時刻以降に承認された場合は、ノードは中断され、実行されません。
戻り可能「公開」ノードが「設計」ノードへロールバックできるかどうか。
スキップ可能現在のノードをスキップできるかどうか。
アンカーノードを停止ポイントとしてマークします。「アンカー」ノードが公開されると、その後のノードはブロックされ、チケットは 公開済み 状態になります。
操作「公開」ノードで利用可能な操作(ノードの削除を含む)。
チケットを公開後に自動的に終了状態に進めるには、R&D プロセスの最後のノードをアンカーとして設定し、[公開時にチケットを終了状態に進める]を有効化します。

チェックポイント

DMS は、スキーマ変更を以下の 2 ステージで評価し、それぞれに一連のチェックポイントを設定しています。

変更の保存 — 保存前の構造を検証:

  • 変更の保存とヘッダーの検証

  • 変更の保存とフィールドの検証

  • 変更の保存とインデックスの検証

変更の適用 — リスクを識別し、承認を割り当て:

  • テーブル作成リスク管理

  • フィールド変更リスク管理

  • インデックス変更リスク管理

  • SQL 実行リスク管理

  • 承認ルール検証

最初の 4 つのチェックポイントでは、データ定義言語(DDL)変更に対するリスクレベルが算出されます。承認ルール検証 チェックポイントでは、これらのリスクレベルに基づき、チケットを適切な承認プロセスにルーティングします。

承認ルール検証 が構成されていない場合、DMS は基本設定項目で設定された「スキーマ設計のデフォルト承認テンプレート」にフォールバックします。

ファクターとアクション

セキュリティルールは、ファクターとアクションを用いたドメイン固有言語(DSL)文として記述されます。

ファクター は、変更に関するコンテキスト(例:テーブル種別、テーブルサイズ、環境など)を提供する組み込み変数です。ファクター名は、プレフィックス @fac. の後に表示名が続きます。

スキーマ設計のチェックポイントで利用可能なファクターは以下のとおりです。

ファクター説明
@fac.table_kind変更対象のテーブルの種別。値: new(新規作成)、old(既存)。
@fac.column_kind変更対象のフィールドの種別。値: new(新規作成)、old(既存)。
@fac.xxxx_old既存のフィールドまたはインデックスの現在値。比較に使用されます。
@fac.column_is_primaryフィールドがプライマリキーであるかどうか。値: truefalse
@fac.column_type_support_defaultフィールドのデータ型がデフォルト値をサポートしているかどうか。値: true(例:CHAR)、false(例:TEXT)。
@fac.index_kind変更対象のインデックスの種別。値: newold
@fac.index_column_countインデックス内のフィールド数。
@fac.change_typeDDL 操作の種別。値: new(追加)、modify(変更)、delete(削除)。
@fac.altered_table_size変更対象のテーブルサイズ(MB 単位)。
@fac.online_execute変更がオンライン環境で実行可能かどうか。値: truefalse
@fac.change_risk_level算出されたリスクレベル。値: high(高)、middle(中)、low(低)。
@fac.env_type環境タイプの表示名(例:DEVPRODUCT)。詳細については、「インスタンスの環境タイプの変更」をご参照ください。

アクション は、ルール条件が満たされたときに DMS が実行する操作です。アクション名は、プレフィックス @act. の後に表示名が続きます。

スキーマ設計のチェックポイントで利用可能なアクションは以下のとおりです。

アクション説明
@act.block_submitスキーマ変更の送信をブロックし、エラーメッセージを表示します。「変更の保存」プロセスで使用します。書式:@act.block_submit '理由'
@act.show_warning警告を表示しますが、送信はブロックしません。「変更の保存」プロセスで使用します。書式:@act.show_warning 'メッセージ'
@act.mark_middle_riskスキーマ変更を中リスクとしてマークします。リスク識別で使用します。書式:@act.mark_middle_risk '理由'
@act.mark_high_riskスキーマ変更を高リスクとしてマークします。リスク識別で使用します。書式:@act.mark_high_risk '理由'
@act.forbid_submit_publishチケットを拒否します。「承認ルール検証」で使用します。書式:@act.forbid_submit_publish '理由'
@act.do_not_approve承認テンプレートの ID を指定します。詳細については、「承認プロセスの設定」をご参照ください。
@act.choose_approve_template
@act.choose_approve_template_with_reason

セキュリティルールテンプレート

DMS には、各チェックポイント向けに事前定義されたセキュリティルールテンプレートが含まれています。これらのテンプレートを直接有効化するか、要件に合わせてカスタマイズしてください。

テンプレートは、対象とする内容ごとに分類されています。

命名および構造に関するルール(ヘッダーおよびフィールド検証チェックポイントで適用)

  • テーブル名に特定のキーワードを含めない

  • テーブル名の長さを制限する

  • 新規テーブルには説明を必須とする

  • 新規テーブルの名前を小文字に必須とする

  • 新規テーブルにはプライマリキーを必須とする

  • 新規テーブルには一意キーを必須とする

  • 新規テーブルには指定されたフィールドを必須とする

  • フィールド名に特定のキーワードを含めない

  • 新規フィールドには説明を必須とする

  • フィールド名には、大文字または小文字が必要です。

フィールド制約(フィールド検証チェックポイントで適用)

  • 既存テーブルに非 NULL フィールドを追加する場合、デフォルト値を必須とする

  • 既存フィールドを NULL 許容から非 NULL に変更する場合、デフォルト値を必須とする

  • プライマリキーのフィールドは INTEGER 型であることを必須とする

  • 新規テーブルのすべてのフィールドに値を割り当てる

  • CHAR フィールドの長さは制限されています

  • VARCHAR フィールド長は制限されています

インデックスに関するルール(インデックス検証チェックポイントで適用)

  • インデックス名に特定のキーワードを含めない

  • インデックス名は大文字または小文字のみを許可する

  • 新規インデックスは一意なインデックスであることを必須とする

  • 新規インデックスは通常のインデックスであることを必須とする

  • 新規インデックスは FULLTEXT 型であることを必須とする

  • 新規インデックスは SPATIAL 型であることを必須とする

  • プライマリキーのフィールド数を制限する

  • インデックスフィールドの数は制限されています。

  • テーブルあたりのインデックス数を制限する。しきい値に達するとアラートが送信される

リスク識別ルール(リスク管理チェックポイントで適用)

  • 論理テーブルにおけるテーブルシャード数を制限する

  • テーブルあたりのプライマリキー数を制限する

  • テーブルあたりのインデックス数を制限する

  • 指定されたフィールドを削除できない

  • 新規フィールドのフィールドデータ型を制限する

  • フィールドを指定された名前に変更できない

  • フィールドを指定されたデータ型に変更できない

  • プライマリキーを削除できない

  • インデックスを削除できない

  • プライマリキーを通常のインデックスに変更できない

  • プライマリキーのカラムに指定されたフィールドを含めない

  • 通常のインデックスを変更できない

  • 新規インデックスの種別を制限する

  • コアインスタンスを指定できない

  • テーブルが指定されたストレージエンジンを使用できない

  • テーブルサイズが指定された上限を超えると、テーブルがロックされる

承認ルーティングルール(「承認ルール検証」チェックポイントで適用)

  • データベーススキーマに対する DDL 変更をブロックする

  • 本番データベーススキーマに対する DDL 変更をブロックする

  • テスト環境での DDL 変更は承認不要とする

  • 本番環境では、リスクレベルに応じて異なる承認プロセスを適用する

その他の設定項目

設定項目説明
フィールド型設定新規追加フィールドでサポートされるデータ型。
インデックス型設定新規追加インデックスでサポートされるデータ型。
テーブル作成テンプレートテーブル作成時に、あらかじめ構成されたフィールドおよびインデックスをプリロードするテンプレートです。任意設定項目であり、チームで標準テーブル構造が必要な場合にのみ使用します。
テーブル文字セットテーブル作成時に利用可能な文字セット(例:utf8utf8mb4)。
元のフィールドデータ型の変更を禁止テーブル変更時に、既存フィールドのデータ型を変更することを防止します。
元のフィールドの削除を禁止テーブル変更時に、既存フィールドを削除することを防止します。フィールドの削除は高リスク操作であるため、特別な理由がない限り、この設定を有効化してください。
元のフィールドの名前変更を禁止テーブル変更時に、既存フィールドの名前を変更することを防止します。フィールドの名前変更は高リスク操作であるため、特別な理由がない限り、この設定を有効化してください。
ピア以外の公開を有効化デフォルトでは、テーブルの変更は、別のデータベース内にある同名のテーブルにのみ公開できます。このオプションを有効化すると、変更を任意のテーブルに公開できます。
警告

ピア以外の公開は高リスク操作です。特別な要件がある場合にのみ有効化してください。

デフォルト承認テンプレートの変更

  1. DMS コンソール V5.0 にログインします。

  2. 左上隅の 2023-01-28_15-57-17.png アイコンにポインターを移動し、「[すべての機能]」 > 「[セキュリティと仕様 (DBS)]」 > 「[セキュリティルール]」を選択します。

    通常モードでは、上部ナビゲーションバーで [セキュリティと仕様 (DBS)][セキュリティルール] を選択します。
  3. 左上隅の 2023-01-28_15-57-17.png アイコンにポインターを合わせ、すべての機能 > セキュリティおよびディザスタリカバリ(DBS) > セキュリティルール を選択します。

    説明

    DMS コンソールを通常モードで使用している場合、上部ナビゲーションバーから セキュリティおよびディザスタリカバリ(DBS) > セキュリティルール を選択します。

  4. 左上隅の 2023-01-28_15-57-17.png アイコンにポインターを合わせ、すべての機能 > セキュリティおよびディザスタリカバリ(DBS) > セキュリティルール を選択します。

    説明

    DMS コンソールを通常モードで使用している場合、上部ナビゲーションバーから セキュリティおよびディザスタリカバリ(DBS) > セキュリティルール を選択します。

  5. 変更するセキュリティルールセットを見つけ、編集 をクリックします(操作 列)。

  6. 詳細 ページの左側ナビゲーションウィンドウで、スキーマ設計 タブをクリックします。

  7. 基本設定項目 をクリックします。

  8. スキーマ設計のデフォルト承認テンプレート を見つけ、編集 をクリックします(操作 列)。

  9. 設定項目の変更 ダイアログボックスで、承認テンプレートの切り替え をクリックします。

  10. 適用するテンプレートを見つけ、選択 をクリックします(操作 列)。

    チケットの承認をスキップするには、承認不要にリセット をクリックします。
  11. 送信 をクリックします。

セキュリティルールの作成

  1. DMS コンソール V5.0 にログインします。

  2. 左上隅の 2023-01-28_15-57-17.png アイコンにポインターを合わせ、すべての機能 > セキュリティおよびディザスタリカバリ(DBS) > セキュリティルール を選択します。

    通常モードでは、上部ナビゲーションバーで セキュリティと仕様 (DBS) > セキュリティルール を選択します。
  3. 変更するセキュリティルールセットを見つけ、編集 をクリックします(操作 列)。

  4. 詳細 ページの左側ナビゲーションウィンドウで、スキーマ設計 タブをクリックします。

  5. 操作 の横にある ルールの作成 をクリックします。

  6. ルールの作成 - スキーマ設計 ダイアログボックスで、以下のパラメーターを設定します。

    パラメーター必須説明
    チェックポイントはいこのルールのチェックポイント。詳細については、「チェックポイント」をご参照ください。
    テンプレートデータベースいいえルールのベースとなる組み込みテンプレート。チェックポイントを選択した後、テンプレートデータベースから読み込む をクリックして、利用可能なテンプレートを参照します。詳細については、「セキュリティルールテンプレート」をご参照ください。
    ルール名はいルールのカスタム名。テンプレートから読み込んだ場合、自動入力されます。
    ルール DSLはいルールのロジックを定義する DSL 文。テンプレートから読み込んだ場合、自動入力されます。
  7. 送信 をクリックします。

  8. 新しく作成されたルール(デフォルトで 無効 状態)を見つけ、有効化 をクリックします(操作 列)。

  9. 確認メッセージで OK をクリックします。