データベース設計
このノートの問いがそのまま復習カードになり、忘れかけたころに出題されます。
シラバス Ver.6.5 の小分類 55「データベース設計」(大分類 9:技術要素/中分類 21:データベース)。
2026-08-05 にシラバス本文と突合済み。
0. 何を押さえるか
表の構造を決める話です。まず入れ物の言葉を固定します。
| 用語 | 何か |
|---|---|
| ファイル/テーブル(表) | データのまとまり全体 |
| レコード | 表の1 行(1 件ぶんのデータ) |
| フィールド(項目) | 表の1 列(データの種類) |
そして最頻出が主キーと外部キーです。
| 何のためか | |
|---|---|
| 主キー | その表の行を 1 つに特定する(重複も空も不可) |
| 外部キー | 別の表の主キーを指す(表と表をつなぐ) |
主キーは自分の表の中で一意、外部キーは他の表を参照する——ここが分かれ目です。
1. 表の構成要素
根拠: シラバス 9-21-55
テーブル・レコード・フィールドの関係は?
| 用語 | 何か |
|---|---|
| テーブル(表) | データのまとまり全体。ファイルとも呼ぶ |
| レコード | 1 行。1 件ぶんのデータ(1 人の顧客、1 件の注文) |
| フィールド(項目) | 1 列。データの種類(氏名、住所、金額) |
行がレコード、列がフィールド。
主キーとは? 満たすべき条件は?
表の中で行を 1 つに特定できる項目
条件は 2 つ。
- 重複しない(同じ値の行が 2 つあってはならない)
- 空(NULL)にできない
氏名は同姓同名がありうるので主キーにできない。
顧客番号のように、必ず異なる値が入る項目を使う。
複数の項目を組み合わせて主キーにすることもできる。
外部キーとは? 何のためにあるか?
別の表の主キーを参照する項目
注文表の「顧客番号」が、顧客表の主キーを指す、という形。
これにより、
- 表と表を関連付けられる
- 存在しない顧客番号の注文を作れない(参照整合性)
同じ情報を何度も持たずに済むので、
重複と矛盾を防げるのが最大の利点。
インデックスとは? 何のために作るか?
目的のデータを速く探すために作る索引
本の索引と同じで、
全部を先頭から見なくても目的の行に辿り着ける。
ただし、
- 記憶領域を余分に使う
- 追加・更新・削除が遅くなる(索引も更新するため)
ので、検索の多い項目に絞って作る。
2. 設計の作業
根拠: シラバス 9-21-55
E-R 図はデータベース設計でどう使うか?
実体(エンティティ)と、実体どうしの関連(リレーションシップ)を図示する
「顧客」と「注文」があり、
「1 人の顧客が複数の注文をする(1 対多)」という関係を描く。
この図がそのまま表の構造と外部キーの置き方になるので、
設計の出発点として使われる。
コード設計とは? 何に気をつけるか?
商品コードや社員番号など、データを識別する符号の体系を決めること
気をつける点は 3 つ。
- 桁数に余裕を持たせる(後から足りなくなると全面的な作り直しになる)
- 意味を持たせすぎない(分類をコードに埋めると、分類変更で番号が変わる)
- 一意性を保てる採番の仕組みにする
コードは長く使われるので、後から直せないという前提で決める。
3. データを整える
根拠: シラバス 9-21-55
データの結合とは?
複数の表を、共通する項目を手がかりに 1 つに合わせること
顧客表と注文表を「顧客番号」で結合すれば、
「誰が何を注文したか」を 1 つの表として取り出せる。
外部キーがあるからこそ結合できる。
データクレンジングとは?
データの誤り・重複・表記のゆれを取り除き、質を整えること
- 「株式会社ABC」と「(株)ABC」を統一する
- 半角・全角、空白の有無をそろえる
- 明らかな誤入力や重複した行を除く
分析の前に必ず必要な作業で、
これを飛ばすと集計結果が実態とずれる。