Let's start from here

図書館の貸出管理をイメージしよう

これからSQLのコマンドについて説明をする前に、そもそもデータベースはどんな時に必要なのでしょうか?
身近な所では、個人で運用しているブログやSNS、家計簿などもあります。また企業での商品管理や販売管理などもあります。いろんな場面でのデータ管理にデータベースは使用されていますが、ここでは、皆さんの馴染みのある図書館の本の運用を例に上げてデータベースの有用性やデータベースの設計に関する基礎知識を学んでいきましょう。
図書館での業務は、本の貸出以外にも様々な業務がありますが、ここでは本の管理と貸出に特化した部分のみでフローの洗い出しをします。またあまり複雑にしないために他の図書館との連携に関しても扱いません。ここでの目的はデータベースの理解を深めるためなのでなるべくシンプルに扱います。

情報の整理

図書館では、利用者への本の貸出や返却が主な業務になります。
まず最初は、本の貸出フローの中で必要な情報を洗い出しましょう。

先ず貸し出す本の情報は必要になります。どの本を貸し出すかです
①タイトル名
②著者名
③発行年月日

次に誰に貸し出すのかといった利用者の情報も必要ですよね。
①氏名
②電話番号
③住所
④メールアドレス

さらに、いつ貸出をしたかという貸出記録と返却記録も必要ですね。
小学校の頃は図書カードを使って学校の本を借りていましたが確かにそんな情報がありましたね。ここでは受付担当者の名前もあったほうが良いでしょうか。
①貸出日
②返却日
③受付担当者

本の貸出・返却の流れ

1. 利用者は、借りる本を決める(複数の本を借りる場合もある)。
2. 本を持って貸出の受付処理をする(利用者情報確認のため身分証明等の確認も必要)
3. 利用者は本を自宅に持って変える
4. 利用者は返却時に本を持って受付で返却処理をする

ここで重要となるのが受付での貸出処理と返却処理になります。
ここで扱う情報をまとめて見ましょう。

受付での記録情報

受付での記録は「情報の整理」で抽出した本の情報・利用者情報・貸出記録・返却記録が必要になります。
これら全ての情報を毎回ノートに書いていけば受付完了です。
実際には以下の項目になるでしょう。

・受付番号
・タイトル名
・著者名
・発行年月日
・氏名
・電話番号
・住所
・メールアドレス
・貸出日
・貸出受付担当者
・返却日
・返却受付担当者

最初の貸出受付の時に「返却日」と「返却受付担当者」以外の情報を書いて返却時に先の情報を追記するという具合ですね。
これなら、このノートを見れば誰がどの本をいつ借りたのかわかりますね。また返却日のない行が貸出中だとすぐわかりますね。
さらにこれをエクセルのシートに記載すれば貸出中(未返却)の本もすぐ抽出できます。

運用の改善

お気づきだと思いますが、この運用はまだ改善の余地があります。
1.利用者の会員登録
初回利用時に利用者が会員登録して会員コードで扱えば利用者名や住所の記入する必要がなくなり会員コードのみ記入になります。また毎回記入する場合の手間や誤字なども防ぐことができます。但し会員証の持参が必要になります。
2. 本情報のコード管理
本の情報も会員管理と同様にコード化して管理することで受付時に本の情報を全て記載する必要がなくなります。

—本の情報—
①本ID
②タイトル名
③著者名
④発行年月日
⑤登録日時
⑥更新日時

—利用者情報—
①利用者ID
②氏名
③電話番号
④住所
⑤メールアドレス
⑥登録日時
⑦更新日時

これで貸出の受付票は以下となります。スッキリしました。

—貸出情報—
受付番号
本ID
利用者ID
貸出日
返却日
受付担当者

本項目の結び

ここまでくるとこの3つの情報をデータ化して紐付けすることで、より管理しやすくなります。この情報を効率的に管理する方法がデータベースを使った運用です。
少し強引な気がしますがイメージが掴めましたでしょうか。イメージをつかめればOKです。
本来はこのデータ化に至る前に「正規化」などの手続きが必要になります。今回は説明しませんが気になる方はそのへんも学習してみてください。
本運用する場合は、不足している管理項目もまだあるかもしれませんが今回はこのくらいにしておきます。この後で詳しく説明しますが、これらのデータをコントロールするために使うスクリプトが「SQL」です。