基本情報技術者試験対策!:主キー、外部キー、NULL値…関係DBの重要ルールを徹底解説!
ここでは、基本情報技術者試験対策として、関係データベースのルールについて、読みやすくまとめていきます。
---
1. 関係データベースの基本構造とは?
関係データベースは、現代のITシステムにおいて非常に重要な役割を担っています。基本情報技術者試験では、その基本的な概念とルールが頻繁に出題されます。ここでは、特に重要なポイントを絞って解説します。
- テーブル(表):行と列からなるデータの集合体。リレーションとも呼ばれます。
- 行(タプル、レコード):データの一件一件を表します。
- 列(属性、フィールド):データの種類を表します。各列にはデータ型(数値、文字列、日付など)が定義されます。
---
2. スキーマとインスタンスの違いを理解する
- スキーマ(Schema):データベースの構造や定義のこと。テーブル名、列名、データ型、制約などが含まれます。テーブルの設計図のようなものです。
- インスタンス(Instance):スキーマに基づいて、実際に格納されているデータのこと。実行時にテーブルに格納されている具体的な行の集合を指します。
---
3. データベースのキー:主キー・外部キーの役割と違い
データの一意性や関連性を保証するために、いくつかの「キー」が使われます。
3.1. 主キー(Primary Key: PK)
- 定義:テーブル内で各行を一意に識別するための列または列の集合。
- ルール:
- 一意性:同じ値は存在しない(重複を許さない)。
- 非NULL性:NULL(値がない状態)は許されない。
- 役割:データの特定、行の識別、他のテーブルとの関連付けの基盤となる。
- 例:「顧客ID」など。
3.2. 候補キー(Candidate Key)
- 定義:主キーになりうる列または列の集合。一意性と非NULL性を満たすもの。
- 役割:候補キーの中から主キーが選ばれる。一つのテーブルに複数の候補キーが存在する場合がある。
3.3. 外部キー(Foreign Key: FK)
- 定義:あるテーブルの列が、別のテーブルの主キーを参照しているもの。
- 役割:テーブル間の関連(リレーションシップ)を定義し、参照整合性を保つ。
- ルール:
- 参照先のテーブルに存在する値でなければならない(またはNULLでもよい)。
- 参照先の主キーが更新・削除された場合、関連する外部キーもそれに合わせて更新・削除されるか、操作が制限される(参照整合性制約)。
- 例:「注文テーブル」の「顧客ID」が「顧客テーブル」の「顧客ID(主キー)」を参照する場合。
---
4. 関係データベースの整合性制約:種類と重要性
4.1. 参照整合性制約(Referential Integrity Constraint)
- 定義:外部キーによって結びつけられたテーブル間で、データの整合性を保つためのルール。
- 具体例:
- 参照先の主キーが存在しない値を、外部キーとして登録することはできない。
- 参照されている主キーのデータを、外部キーが参照している間は削除できない(または削除する際には関連する外部キーのデータも削除する必要がある)。
4.2. ドメイン整合性制約(Domain Integrity Constraint)
- 定義:各列に格納されるデータの値が、その列の定義された「ドメイン」(データの型や範囲、許容される値の集合)に従っていることを保証するルール。
- 具体例:
- 「年齢」列には数値しか格納できない。
- 「性別」列には「男」または「女」しか格納できない。
4.3. エンティティ整合性制約(Entity Integrity Constraint)
- 定義:主キーがNULL値を持たないことを保証するルール。
- 役割:主キーが一意に識別する役割を果たすために必須の制約。
---
5. NULL値の特性とデータベースにおける注意点
- 定義:値が「不明」または「適用できない」状態を表す特別な値。0や空文字とは異なる。
- 注意点:
- NULL値は比較演算(=、<>など)で特別な振る舞いをする(NULL = NULLは真とは限らない)。
- 集計関数(SUM, AVGなど)ではNULL値は無視されることが多い。
- 主キーはNULLを許さない(エンティティ整合性制約)。
---
基本情報技術者試験合格へ!データベースルールの学習ポイントまとめ
これらの概念をしっかりと理解することで、関係データベースに関する問題に自信を持って取り組めるようになります。頑張ってください!
- 各種キーの定義と役割:特に主キーと外部キーは頻出。違いを明確に理解する。
- 各種整合性制約:参照整合性、ドメイン整合性、エンティティ整合性の内容と具体例を把握する。
- NULL値の特性:NULLが持つ意味と、一般的な値との違いを理解する。
- スキーマとインスタンス:それぞれの概念と関係性を説明できるようにする。
この記事へのコメント