データベースとは何か
表計算ではなくデータベースを使う理由を、重複と矛盾という観点から説明できるようになります。
ねらい
データをまとめて扱うしくみを学びます。このレッスンを終えると、表計算ではなくデータベースを使う理由を説明でき、関係データベースの基本の形が分かるようになります。
なぜ表計算では足りないのか
少量のデータなら表計算ソフトで足ります。しかし量が増え、複数の人が同時に扱うようになると、次の問題が出ます。
- 同じことを何度も書く。同じ顧客が10回注文すれば、住所を10回書くことになります。
- 矛盾が起きる。引っ越したとき、10か所すべてを直さなければ、古い住所が残ります。
- 同時に書けない。同じファイルを2人が同時に編集すると、どちらかの変更が消えます。
- 探すのが遅くなる。件数が増えると、目的の行を見つけるのに時間がかかります。
データベースは、これらを解決するために、データを整理して蓄え、複数の人が同時に安全に使えるようにしたしくみです。管理するソフトウェアをDBMSといいます。
関係データベース — 表で持ち、つなげて使う
関係データベースは、データを表(テーブル)の形で持ちます。
- 行(レコード)… 1件分のデータ。顧客表なら、1人分です。
- 列(フィールド・項目)… 項目。顧客番号、氏名、住所など。
表は目的ごとに分けます。顧客の情報は顧客表、注文の情報は注文表に置きます。そして注文表には顧客番号だけを持たせ、住所は持たせません。
こうすると、住所を直すのは顧客表の1か所だけで済みます。注文が何件あっても関係ありません。重複が無ければ、矛盾も起きません。
鍵 — 行を見分け、表をつなぐ
- 主キー… その表の中で、1つの行を確実に見分けるための項目です。顧客番号のように、重複せず、空にならないものを選びます。氏名は同姓同名がありうるので主キーには向きません。
- 外部キー… 他の表の主キーを指す項目です。注文表の顧客番号がこれにあたります。表と表をつなぐ役目を持ちます。
ポイント
外部キーがあることで、存在しない顧客の注文を作れなくなります。注文表の顧客番号は、顧客表に実在する番号でなければ受け付けない、という制約をかけられるためです。データの正しさを、しくみで守れます。
データベースの種類
- 関係データベース… 表の形。もっとも広く使われています。
- NoSQL… 表の形にとらわれない持ち方。大量のデータや、形の決まらないデータに向きます。
まとめ
データベースは、重複と矛盾を無くし、複数の人が同時に安全に使えるようにしたしくみです。関係データベースは目的ごとに表を分け、鍵でつなぎます。主キーは行を見分ける項目、外部キーは他の表を指す項目です。分けてつなぐことで、直す場所が1か所になります。
理解の確認
注文を記録する表に、顧客の氏名・住所・電話番号をそのまま書き込む設計にしています。この設計にどのような問題があるか、具体的に述べてください。
答え: 同じ顧客の情報が、注文の件数だけ重複して記録されることが問題です。ここから2つの不都合が生じます。
1つ目は手間です。同じ顧客が10回注文すれば、住所を10回書くことになります。
2つ目は矛盾です。その顧客が引っ越したとき、10件すべてを直さなければ、古い住所と新しい住所が混在します。1件でも直し漏れると、どちらが正しいのか分からなくなります。
対策は、顧客表と注文表に分け、注文表には顧客番号(外部キー)だけを持たせることです。住所は顧客表の1か所にしか無いので、変更もその1か所で済み、矛盾が起きません。
分からなかった点・気になった点
読み込み中です。