アサーション(表明)とは?あさーしょん
アサーション(表明)とは、SQLの CREATE ASSERTION で宣言する、特定の表に属さずデータベース全体に対して成り立つべき条件のこと。複数の表にまたがる条件や、合計・件数といった集計に関する条件を書けるため、1行だけを見る検査制約では表せない業務ルールを宣言のまま扱える。ただし実装しているDBMSはほとんど無い。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →背景
制約は本来「その表の性質」として書ける範囲に限られ、表をまたぐ条件は置き場所が無かった。そこでSQL標準は、どの表にも属さない独立した制約オブジェクトを用意した。ところが、どの表のどの更新でこの条件を検査すべきかをDBMSが自動で判断しようとすると、更新のたびに全体を評価しかねず現実的な性能にならない。実装が広がらなかった理由はここにあり、実務ではトリガで代替する。
具体例
「受注明細の合計金額が受注ヘッダの合計額と一致する」「1部門の在籍社員数は50人以下」といった条件が対象になる。PostgreSQL・MySQL・Oracle Database はいずれも未実装なので、実際には明細側の INSERT/UPDATE/DELETE に文単位のトリガを置いて突き合わせる形になる。
試験での引っ掛け
検査制約(CHECK)との違いが本命。CHECKは表の定義に属し原則その表の1行で完結し、サブクエリは書けない。こちらは表から独立し複数表を参照できる。なお監査分野のアサーション(監査要点)は経営者が財務諸表で主張している内容を指す別語で、DBのこの制約とは無関係。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。