DBMS・主キー・外部キーとは?わかりやすく解説
データベースを管理する仕組みと、表の1行を見分けてつなぐ印を学びます。
最初に考えてみよう
データの重複を避けるために表を分けたあと、分けた表どうしはどうやって正しくつなげればよいのでしょうか?
解説
1主キー=1行を「確実に見分ける」印
名簿の中の1人を重複なく見分けられる項目が主キー。下の名簿では 学生番号 が主キーです。
| 学生番号(主キー) | 名前 | クラス |
|---|---|---|
| S01 | 田中 | 1組 |
| S02 | 田中 | 2組 |
| S03 | 佐藤 | 1組 |
※「名前」は田中さんが2人いて見分けられず、「クラス」も重複する。だから重複しない学生番号が主キーに向いています(主キーは重複・空っぽが許されません)。
2外部キーでつながる(タップして辿る)
成績表の学生番号(外部キー)は、名簿の学生番号(主キー)を指しています。成績の行をタップすると、線が伸びて誰の成績か辿れます。
| 学生番号(外部キー) | 科目 | 点数 |
|---|---|---|
| S01 | 国語 | 80 |
| S03 | 数学 | 90 |
| S01 | 英語 | 70 |
| 学生番号(主キー) | 名前 | クラス |
|---|---|---|
| S01 | 田中 | 1組 |
| S02 | 田中 | 2組 |
| S03 | 佐藤 | 1組 |
3つなげると「誰の・どの成績か」が分かる
成績表だけだと「S01 国語 80」――番号しか分かりません。 学生番号で名簿とつなぐと、名前とクラスが合わさって意味のある1つの表になります。
| 学生番号 | 科目 | 点数 |
|---|---|---|
| S01 | 国語 | 80 |
| S03 | 数学 | 90 |
| S01 | 英語 | 70 |
4言葉をおさらい
- DBMS:データベースを管理するソフトウェア(名簿を管理する先生)。
- 主キー:表の1行を重複なく見分ける項目(学生番号)。重複も空っぽもダメ。
- 外部キー:別の表の主キーを参照してつなぐ項目(成績表の学生番号)。
- 参照整合性:外部キーの値は、参照先の主キーに必ず存在しなければならない決まり(S09の成績は登録できない)。
- 複合キー:1列では見分けられないとき、複数の列を組み合わせた主キー。成績表は S01 が2行あるので、学生番号+科目の組で1行が決まる。
試験のポイント
ITパスポート試験での問われ方
DBMSの役割、主キーの一意性、外部キーの参照関係が問われる
間違えやすいポイント
- 外部キーを外部の会社だけに関係するキーだと思う
- 主キーは重複してよいと思う
関連用語
DBMS、主キー、外部キー、テーブル、リレーション
図解の内容を文章で読む
DBMS・主キー・外部キーをイメージでつかむ
DBMSはデータベースを管理するソフトウェアです。主キーはテーブルの中で1件を一意に見分ける項目で、外部キーは別のテーブルの主キーを参照し、表どうしのつながりを表します。名簿の学生番号(主キー)と、成績表に書かれた学生番号(外部キー)を思い浮かべると理解しやすいです。
たとえると:学校の名簿を管理する先生がDBMS、学生番号が主キー、成績表に書かれた学生番号が外部キーです。番号で学生名簿と成績表を結びつけます。
DBMSは、データベースへの保存・検索・同時利用の調整などを引き受ける管理ソフトウェアです。主キーは、テーブルの中で1行を確実に見分けるための項目で、同じ値の重複や空欄は許されません(学生番号のイメージ)。外部キーは、別のテーブルの主キーを参照する項目です。「外部の会社」とは関係なく、「他の表とつなぐためのキー」という意味です。たとえば成績表に学生番号を載せておけば、名簿とつないで「この成績は誰のものか」をたどれます。存在しない学生番号を成績表に書けないように保つ性質を参照整合性と呼びます。試験では、主キーの「一意で空欄不可」という性質と、外部キーが「他の表の主キーを参照する」ことがくり返し問われます。
押さえどころ
- DBMS = データベースを管理
- 主キー = 1行を一意に識別
- 外部キー = 他の表とつなぐ
確認問題(4問)
確認問題は本サービスのオリジナル問題です。ログインなしで解けます(結果は保存されません)。
「DBMS・主キー・外部キー」の過去問(2問)
IPAが公開しているITパスポート試験の公開問題から、このテーマの問題を集めました。
あわせて覚える英略語
つながるテーマ
学習を記録して、合格まで続ける
教材と確認問題はこのページで全部無料で使えます。登録すると「DBMS・主キー・外部キー」の結果や習熟度が記録され、苦手分野の復習提案、試験日までの学習計画、合格準備度の見える化が使えます。最初の7日間は学習記録も無料です。