ds database
まず結論
データベースの制約(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検定では
データ型と制約の違い 主キー・外部キーとの関係
を判断できることが重要です。
対応スキル項目(データエンジニアリング力シート)
データ管理
データベース
★ データベースの基本概念(テーブル、主キー、外部キーなど)を理解している ★ データの整合性や品質を保つ仕組みを理解している
🔗 関連記事
- SQLインジェクションとは?仕組みと対策をやさしく理解【情報セキュリティマネジメント】
- データキューブとは?OLAP分析の基本概念を理解する【DS検定】
- データレイクとは?(DWHとの違いも整理)【DS検定リテラシー】
- データマートとは?(DWHとの違いを整理)【DS検定リテラシー】
- データウェアハウス(DWH)とは?データマートとの違いを理解する【DS検定】