データベースの基本④~預金通帳を分解してみる3

Pocket

次に大事になるのが、「一意」という言葉。つまり「Only One」ということです。銀行口座の場合、あってはならないことそれは同じ口座番号が二つあるということです。二つ同じ口座番号があるとどちらがAさんの取引で、どちらがBさんの取引なのかわからなくなってしまいます。これでは安心して銀行と取引することもできません。

この場合絶対に「一意」にならなければいけない情報は、「口座番号」と「ID」です。通常Accessでデータベースを作成する場合、「一意」とならなければならないフィールドを「主キー」と設定します。

では一つの取引テーブルに入力された複数の口座番号の取引をどうやって分けたらいいのでしょうか?

ここで出てくるのが「クエリ」という機能です。

2809223
クエリを使うことで、口座番号の氏名を表示したり、
2809231
鈴木さんのデータだけ抽出することができます。

ちなみに口座番号の横の氏名は、顧客テーブルから引っ張ってきています。ですので自分で最初のクエリの設定をしますが、それ以降はデータベースが自動で氏名を表示してくれます。

なぜこのようなことができるのか?というと、顧客テーブルと取引テーブルの二つを関連付けたので、こういったことができるのです。この関連付けのことをAccessでは、「リレーションシップ」といいます。もちろんこのリレーションシップも自分で設定します。

リレーションシップを設定することで、二つの異なるテーブルの関連するデータを自由自在に切り貼りできるようになります。もう少し話を進めると、取引テーブルの口座番号さえわかれば、それを辿って、顧客テーブルの氏名だけでなく、住所・生年月日にたどり着くこともできます。

そうするためには一つだけ大事なルールがあります。それは関連付けようとするテーブル同士に同じフィールドを作るということです。これも一見異なるテーブルに同じフィールドがあると、不効率のように感じるかもしれませんが、同じフィールドがあることで、そこを切り口に互いにデータのやり取りができるのです。

今回のケースでは「口座番号」が顧客・取引のテーブルに存在しています。ただ何も設定しないでも関連付けられる訳ではなくちょっとした仕掛けが必要になります。

ここまで預金通帳を例に解説してきました。
まずは用語の意味
・テーブル
・フィールド
・レコード
・主キー
・クエリ
・リレーションシップ
これらをしっかり区別できるようになってください。

=============================================
昨日は市民プールへ。
今まで200mくらい泳ぐと息苦しく、途中でやめていましたが、昨日はそのまま
泳ぎ続けたら、結局40分泳ぎ続けました。距離にしたら、1.5キロくらい泳いだ
でしょうか。少し自信になりました。

本日も最後までお読みいただきありがとうございます。