Skip to the content.

DS検定トップ > データベースの制約とは?NOT NULL・一意性・外部キーを整理【DS検定】

まず結論

データベースの制約(constraint)とは、データの整合性や正しさを保つためにテーブルに設定するルールです。

DS検定では 「データの品質を守る仕組み」として理解しておくことが重要です。

直感的な説明

データベースは、会社の重要なデータを保存する場所です。

もし何のルールもなければ、

IDが空のデータ

同じIDが複数あるデータ

存在しない顧客IDの注文データ

のような 壊れたデータが簡単に登録されてしまいます。

そこでデータベースでは、

「この列は必ず値を入れる」 「この列は重複してはいけない」 「この列は別のテーブルの値と一致していなければならない」

といった ルール(制約)を設定します。

これによって、 データの品質(データ品質・データ整合性)を守ることができます。

定義・仕組み

データベースの制約とは、

テーブルに登録されるデータが、定義されたルールを満たしているかをチェックする仕組み

です。

代表的な制約には次のものがあります。

NOT NULL制約

NULL(値なし)を禁止する制約

例 顧客テーブル

顧客ID 名前

1 田中 2 鈴木

もし顧客IDがNULLだと 誰のデータか分からなくなるため、

顧客IDは必ず入力する

というルールを設定します。

一意性制約(UNIQUE)

同じ値の重複を禁止する制約

例 社員番号

社員番号 名前

1001 山田 1002 佐藤

社員番号は 同じ番号が2人存在してはいけません。

そのため

社員番号は重複禁止

という制約を設定します。

外部キー制約(Foreign Key)

別のテーブルに存在する値のみ許可する制約

顧客テーブル

顧客ID 名前

1 田中 2 鈴木

注文テーブル

注文ID 顧客ID

100 1

もし

顧客ID = 99

の注文が登録されたら 存在しない顧客の注文になってしまいます。

そこで

注文の顧客IDは 顧客テーブルに存在するIDのみ

という制約を設定します。

CHECK制約

値の条件を指定する制約

年齢 >= 0

のように 条件に合わないデータを禁止します。

どんな場面で使う?

データベースの制約は データの品質を守るために必ず使われます。

例えば

システム開発

顧客IDは必ず入力(NOT NULL)

メールアドレスは重複禁止(UNIQUE)

業務データ管理

注文は必ず既存顧客に紐づく(外部キー)

在庫数は0以上(CHECK)

このように データが壊れないようにするための基本機能です。

データサイエンスでも、

データ基盤

データウェアハウス

ETL処理

などで重要になります。

よくある誤解・混同

制約 = データ型 ではない

DS検定ではここを混同させる問題が出ます。

データ型

INTEGER VARCHAR DATE

制約

NOT NULL UNIQUE FOREIGN KEY CHECK

つまり

種類 役割

データ型 値の種類 制約 値のルール

です。

主キー(Primary Key)との関係

主キーは

NOT NULL + UNIQUE

を同時に満たす制約です。

DS検定では

主キー

一意制約

外部キー

の違いを問われることがあります。

DS検定の典型的なひっかけ

選択肢で次のように書かれていたら注意です。

❌ 「制約はデータの型を定義する」 → これは データ型の説明

⭕ 「制約はデータの整合性を保つルール」 → こちらが正しい

まとめ(試験直前用)

データベースの制約は データの整合性を守るルール

NOT NULL → NULL禁止

UNIQUE → 重複禁止

外部キー → 他テーブルとの整合性

CHECK → 値の条件

DS検定では

データ型と制約の違い 主キー・外部キーとの関係

を判断できることが重要です。

対応スキル項目(データエンジニアリング力シート)

データ管理

データベース

★ データベースの基本概念(テーブル、主キー、外部キーなど)を理解している ★ データの整合性や品質を保つ仕組みを理解している

🔗 関連記事


🏠 DS検定トップに戻る