表計算とデーターベース
表計算もデーターベースも表を使ってデーターを整理していくという点では同じですが、その際の発想が違うように思います。データーベースについては、テーブルの正規化という考え方があり、本格的にやりたい人はそちらを勉強していただくとして、ここでは簡単に「データーベースではデーターを縦に並べよう。」という考え方を書いておきます。
例えば、ある野球チームの選手のホームラン数を記録していく場合、表の形にして下さいというとどうするでしょうか?
普通の感覚ではこんな感じですね。
| 1978年 | 1979年 | 1980年 | 1981年 | |
| 野村克也 | 3 | 5 | 4 | |
| 王貞治 | 39 | 33 | 30 | |
| 山本浩二 | 44 | 42 | 44 | 43 |
| 門田博光 | 15 | 2 | 41 | 44 |
| 落合博満 | 2 | 15 | 33 |
表計算だと、それぞれの欄の一番右側に合計欄を作って合計のホームラン数を出すというところでしょうか。
これに対してデーターベースソフトは違います。こんな感じでデーターを並べます。
| 野村克也 | 1979年 | 3 |
| 野村克也 | 1980年 | 5 |
| 野村克也 | 1981年 | 4 |
| 王貞治 | 1979年 | 39 |
| 王貞治 | 1980年 | 33 |
| 王貞治 | 1981年 | 30 |
| 山本浩二 | 1979年 | 44 |
| 山本浩二 | 1980年 | 42 |
| 山本浩二 | 1981年 | 44 |
| 山本浩二 | 1982年 | 43 |
| 門田博光 | 1979年 | 15 |
| 門田博光 | 1980年 | 2 |
| 門田博光 | 1981年 | 41 |
| 門田博光 | 1982年 | 44 |
| 落合博満 | 1980年 | 2 |
| 落合博満 | 1981年 | 15 |
| 落合博満 | 1982年 | 33 |
つまり、同じ種類のデーター(この場合だと選手名、年、ホームラン数)は縦に並べる。これがデーターベースの基本だと考えたらいいかと思います。最近は表計算もデーターベースも多機能化していてどちらを使っても同じようなことが出来ますが、基本は表計算は表で計算する("spreadsheet"の訳語が「表計算」ってほんとに良く出来ているよなぁと思います)のが仕事で、データーベースはデータをどんどんため込んでいってあとから高速に検索するのが仕事です。データーを高速で検索するためには、縦に並べておかなければなりません。縦に並べたり横に並べたりすると、検索の際のコンピューターの計算処理が複雑になるからです。
じゃあデーターベースソフトで各選手のホームランの合計数を出せないんじゃないかというとそんなことはありません。とにかくデーターの検索に関してはものすごく速いわけですから、データーベースソフトに「○○という名の選手のデーターをすべて出せ」という命令を出し、それによって抽出されたデーターを足し算させればいいわけです。

例えばこんな感じですね。たいていのデーターベースソフトは、元々の「縦に並んだ」データーを抽出した後の後処理を簡単にするための仕組みを備えています。
この「仕組み」についてはまたいずれ。
ロータスアプローチ付属の住所録の「子名」が横に並んでいるのは困ったもんだ。データーベースなら縦、じゃないと…。
