
例えばExcelでアドレス帳を作ります。
図1:

アドレス帳に勤務先と勤務先の住所を追加することになりました。
図2:

朝日太郎さんが転職した場合を考えると、朝日太郎さんの勤務先に関するF列、G列のデータだけを変更すれば済みます。
では、A社が移転して郵便番号、住所、電話番号が変更になったとします。
そうなると朝日太郎さん、山田一郎さん、富士五郎さんの勤務先に関する列のデータを変更しなければなりません。3件程度なら簡単でしょうが、数百件のデータだったらA社に勤務している人を探すだけでも大変な作業になります。
そこでデータベースの登場です。
データベースの形態
表1
| 氏名 | 郵便番号 | 住所 | 電話番号 |
| 朝日太郎 | 111-1111 | xx県oo市xx町 | 00-123-4567 |
| 夕日花子 | 222-2222 | xx県oo市xx町 | 00-245-7845 |
| 山田一郎 | 333-3333 | xx県oo市xx町 | 00-410-5625 |
| 富士五郎 | 444-4444 | xx県oo市xx町 | 00-041-4890 |
データベースには色々な方式がありますが、リレーショナルデータベース(RDB)では、上表の様な形式で管理し、このような2次元の表をテーブルと呼びます。
テーブルは行と列から構成されていて、行をレコード、列をアトリビュート、行と列の交わる各欄をフィールド(項目)と呼びます。
現在このデータベースは4つのレコードと、4つのフィールドから構成されていますが、
この表にレコードを追加することによって、住所録はどんどん増えてゆくことになります。
データ量が少なく、データ構成が固定的な場合は表計算ソフトなどで簡単に作成することが出来ますが、データ量が多くなったり、項目数が増えた場合には、その都度プログラムを書き換えなければなりません。
さらに検索やソート(並び換え)などのプログラミングも必要になりますが、データベースはこれらの操作を一手に受け持つDBMSによって管理されているのです。
一般的にDBMSには検索/操作/一貫性/排他制御/アクセスなどの機能が備わっていますので、プログラマがそれらの機能をいちいち作成しなくてもよいようになっております。
リレーショナルデータベースとは、データベースに含まれるすべてのデータを行と列から構成される表として表現し、複数の表を関連付けて利用するものです。この関連付けを英語でリレーションと言います。
リレーショナルデータベースではレコードやフィールドの構造は考える必要がありませんので、例えばアドレス帳に勤務先やFax番号などのフィールドを追加したい場合は、単純に新しいフィールドを追加するだけで、データベースの操作方法やプログラム本体を変更する必要はありません。
複数の表を関連付けて利用するとは
個人情報のデータと勤務先情報のデータを別々に作成し、個人情報欄には勤務先コードだけを登録するようにします。
個人情報テーブル
| 氏名 | 郵便番号 | 住所 | 電話番号 | 勤務先 |
| 朝日太郎 | 111-1111 | xx県oo市xx町 | 00-123-4567 | 0001 |
| 夕日花子 | 222-2222 | xx県oo市xx町 | 00-245-7845 | 0002 |
| 山田一郎 | 333-3333 | xx県oo市xx町 | 00-410-5625 | 0001 |
| 富士五郎 | 444-4444 | xx県oo市xx町 | 00-041-4890 | 0001 |
勤務先情報テーブル
| 勤務先コード | 勤務先 | 郵便番号 | 住所 | 電話番号 |
| 0001 | A | 111-1111 | xx県oo市xx町 | 12-345-4789 |
| 0002 | B | 222-2222 | xx県oo市xx町 | 00-412-4102 |
2つのテーブルから1つのテーブルを表示します。
統合したテーブルを表示
| 氏名 | 郵便番号 | 住所 | 電話番号 | 勤務先 | 郵便番号 | 住所 | 電話番号 |
| 朝日太郎 | 111-1111 | xx県oo市xx町 | 00-123-4567 | A | 111-1111 | xx県oo市xx町 | 12-345-4789 |
| 夕日花子 | 222-2222 | xx県oo市xx町 | 00-245-7845 | B | 222-2222 | xx県oo市xx町 | 00-412-4102 |
| 山田一郎 | 333-3333 | xx県oo市xx町 | 00-410-5625 | A | 111-1111 | xx県oo市xx町 | 12-345-4789 |
| 富士五郎 | 444-4444 | xx県oo市xx町 | 00-041-4890 | A | 111-1111 | xx県oo市xx町 | 12-345-4789 |
この表は表示だけするもので、この表自体を作成するわけではありません。
このようにすれば、勤務先情報テーブルのA社に関する項目を変更するだけで、個人情報テーブルに手を加える必要がなくなります。
© AstroHeart. All Rights Reserved.