個人的には No.1 の回答者の方に1票。
「誰に」「どういう目的で」が明らかでないと,本来的にはどう説明すればいいかは決められないと思います。
今回,「誰に」は「全くパソコン初心者の方に」ということですが,「どういう目的で」の方がはっきりしていません。ShiftTailさんは「単にリレーショナルデータベースとはどういうものなのか?を伝えないと駄目」と書かれていますが,教えられる側の方が「どういう時にその知識を活用したい」のかというようなこともわからないのでしょうか? 極論「試験に受かる/いい成績を取るため」でもいいので,なにかそういう活用シーンというのがあるはずだと思うのですが。それがないのであれば,逆にいうとその知識は不要なのではないでしょうか?
とにかく,基本的に何かを説明するということは,「正確さ」と「わかりやすさ」のトレード・オフであり,そのバランスは,「誰に」「どういう目的で」という要素で変わってきます。
一応「初心者」向けに,「正確さ」より「わかりやすさ」を優先した私なりの説明を以下に述べておきます。「目的」がわからないので,本当に最低限の説明になっています。
・「データベース」とは,たくさんのデータの集まり。
・「リレーショナル・データベース」とは,表形式で表されるデータの集まり。ただし,同じ表の中に同じデータは1つしかないことが保証されている。
以下は質問が出たときの補足。
・「表形式」というのは,「行」と「列」で表現されるという事。リレーショナル・データベースの世界では,データを「行」,データの項目を「列」として扱う事になっている。
例:項目「番号」が「11」,項目「名前」が「佐藤」,項目「年齢」が「16」のデータ
列 列 列
↓ ↓ ↓
+——+——+——+
|番号|名前|年齢|
+——+——+——+
|11 |佐藤|16 |←行=データ
+——+——+——+
・「同じ表の中に同じデータは1つしかない」については,リレーショナル・データベースになっている表となっていない表の,2つの表を例に説明する。
リレーショナルでない例:
+————+——+
|氏名 |年齢|
+————+——+
|佐藤一郎|16 |
+————+——+
|鈴木二郎|16 |
+————+——+
|佐藤一郎|16 |
+————+——+
リレーショナルな例:
+——+————+——+
|番号|氏名 |年齢|
+——+————+——+
|11 |佐藤一郎|16 |
+——+————+——+
|12 |鈴木二郎|16 |
+——+————+——+
|13 |佐藤一郎|16 |
+——+————+——+
同姓同名で年齢が同じ人も,番号という項目を持つことで識別できる。
リレーショナル・データベースでは,上の表に,もう一行「番号」が「11」,「氏名」が「佐藤一郎」,「年齢」が「16」の行を追加しようとすると拒否される。
さらに詳細な質問のための説明は以下。
・では「番号」が「11」,「氏名」が「佐藤一郎」,「年齢」が「17」の行を追加するのは可能か?
→このままだと可能。それで困る場合は,「主キー」を指定する。「主キー」は,データが重複しているかどうかを判断するのに利用する項目のこと。このばあい,主キーに「番号」を指定すると,「番号」が同じ行は追加できなくなる。
・なぜ重複を排除するのか
その方が検索や更新がしやすくなるから。いい加減面倒になったので,例は質問者ご自身で考えてみてください。
・各行の各項目にはどういう値が入れられるのか
一般的なリレーショナル・データベースでは数値または文字のどちらかしか入れられない。
109→OK
山田太郎→OK
3.14159→OK
1, 2, 180→NG(複数の値を一つのセルに入れる事はできない)
109, 山田太郎→NG(複数種類/複数の値を一つのセルに入れる事はできない)
ちなみに,「リレーショナル・データベース」とは,上で説明した「重複のない表」を表す数学用語「リレーション(relation)」を扱うデータベースという意味です。数学用語「リレーション(relation)」の日本語訳は「関係」ですが,これは通常の意味の「関係」とは全く異なる定義を持つ数学用語であり,上に書いた通り,「重複のない表」を指す名詞です。
http://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82_(%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9)
お礼
情報ありがとうございます。 >ひとつのデータと別のデータを各々のデータの中の特定の値で関連 付ける(別データを参照したりグループ化できる等)ことができる データベース、でいいのでは? これで説明しようと思います。