行が入れ替わっただけのテーブルは同じ
さて、テーブルの中身を詳しくみていきましょう。
まず、2つのテーブルを内容を見比べてください。
★その1
★その2
どこが違うかわかりますか。
間違い探しみたいですね。
~
答えは、
- Linux入門講座
- C/C++辞典
の2冊が入れ替わっています。
ここで問題です。
この2つのテーブルは、データベースとして中身が一緒なのでしょうか?
~
~
~
~
~
~
はい、答えです。
2つのテーブルは、一緒なのです。
そうなんですね。
データベースの中のテーブルは、それぞれのデータの順序は関係ありません。
データの内容が同じでさえあれば、「同じ」とみなされます。
ここは、よく覚えてくださいね。
少し、SQL の話をしますが、
SELECT * FROM テーブル
としたときのデータの順序は、いつも一緒とは限りません。
データベースの都合で、変わることがあるのです。
だから、
SELECT * FROM テーブル ORDER BY 列名
のように、常に順序が同じになるように、順序を指定する「ORDER BY」という命令を書くのが常です。
逆に言えば、
検索条件を指定したときに、どの順序で検索されるかは、分からない、ってことなんですね。
次回は、検索を早くするための「索引(Index)」を説明しましょう。
テーブルには識別子(ID)が使われる
さて、本の整理ですが、どのようにしましょうか?
今でこそ、ISBN(本の裏に付いているバーコードですね)が、どの本にもついていて整理できるようになっていますが、その昔、本屋さんで注文をするときは、
- 本の名前(タイトル)
- 著者名
- 出版社名
を伝えるしかありませんでした。
そう、今でも、Amazon などでは、書名で検索ができたりしますよね。
この3つは、本の整理には外せないものなのです。
というわけで、これをそのまま Excel に書き出すと、
になります。
普通に、「タイトル」、「著者名」、「出版社名」で並んでいますね。
実は、どの本なのかを特定するにはこれで十分なのです。
ですが、コンピュータではちょっと扱いにくいですね。
例えば、
「Linux入門講座」の本をください。
と言われた時、どの作者かどうかを調べるためには、
そう、全部のデータをチェックした後に、
著者さんは「水口克也」さんですね。
と確認しないといけません。
これはなかなか面倒です。
調べるときにも、本のタイトルは正確でないとダメだし、言い方を間違っただけで、見つからなくなってしまいます。
なので、識別子(ID)というものを割り振ります。
※ 書籍の場合は、ISBN がいいんですが、ここではデータベースの説明のために ID にします。
※ ID というのは、Identify(識別子)の略です。
IDを割り振っておくと、書名を伝える代わりに、
IDが「X0003」の本をください。
と伝えることができます。
「Linux入門講座」というタイトルを使うよりも、短くて伝えやすくなります(覚えにくいですが・・・)。
データベースでは、こんな風に、
ID(識別子)
がたくさん使われています。
次回は、テーブルの中でデータが、どんな順序で並んでいるのかを見ていきましょう。
いろいろな整理の仕方を覚えよう
データベースの整理の仕方の続きです。
こんな風に一直線に並べる方法が、データベースのテーブルになります。
そうですね。よく Excel でテーブルを作ると思いますが、ひとまず、「全てを並べてしまう」のが、最初の整理の仕方です。
さて、下の方法はわかりましたか?
そうですね。タイトル順(っぽい)並べ方がしてあります。
- Linux
- Visual Basic
- C/C++
- その他
のような感じで分類されています。
こういう風な並べ方をすると、「Linux」の本を見つけたいときは、2冊だけ調べてば良いことになります。
最初の一列に並べた場合は、すべての本から探さないとダメです(途中で、目的の本が見つかりますが)。
さて、2番目のように分類した形で並べたものを、「索引を付ける」と言います。
データベースの専門用語で言えば、
索引 あるいは インデックス(Index)
となります。
さて、次回は、この本の並びを Excel を使って整理してみましょう。