読み方 : ノットヌルせいやく

NOT NULL制約【NOT NULL constraint】非NULL制約

NOT NULL制約とは?

リレーショナルデータベース(RDB)でテーブルにデータを追加・更新する際にシステム側で自動適用できる制約(constraint)の種類の一つで、指定した列には必ず値を設定しなければならないとするもの。
NOT NULL制約のイメージ画像

NULLとは、数値のゼロや空の文字列とは異なり、値そのものが存在しない状態を指す。例えば、アンケートで回答が任意の項目に何も答えなかった場合、その欄にはNULLが入る。多くのデータベースでは数値とNULLを足した結果がNULLになるため、数値の列にNULLが混在すると、合計や平均などの計算処理で意図しない結果が出ることがある。

NOT NULL制約は何らかの値を必須とする制約で、設定した列に値を入れないままデータを登録・更新しようとすると、データベース管理システムDBMS)がエラーを返して処理を拒否する。情報が欠落した不完全なデータが保存されるのを防ぐことができる。アプリケーション側は「この列には必ず値が存在する」と前提を置いて設計できるため、毎回NULLかどうか確認する処理を省ける。

設定方法はシンプルで、テーブルを作成するCREATE TABLE文の列定義に「NOT NULL」と記述するだけである。既存のテーブルにALTER TABLE文で後から追加することも可能だが、対象列にすでにNULLが含まれている場合は事前に値を補う必要がある。なお、主キーに指定された列は一意性を保証する性質上、NOT NULL制約を自動的に付与するDBMSが多い。

どの列に制約を設定するかは、設計段階で慎重に判断する必要がある。氏名、社員番号、注文日時など、業務上必ず把握しておくべき項目には積極的に設定するのが一般的である。一方、登録時点では確定していない情報や入力が任意の項目には、NULLを許容する設計が適切である。制約を課しすぎると一部の情報が未確定なだけで登録全体が失敗するという不便が生じるため、必須項目と任意項目をあらかじめ整理したうえで適用範囲を決めることが求められる。

他の辞典等による「NOT NULL制約」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。