この動画は、無料公開期間を経た後、メンバーシップ限定動画になります。動画見放題のメンバーシップ(月額990円)を是非ご利用ください。
商品情報や顧客情報などは、Excelなどの「ファイル」で保管してしまうとWebでの再活用がしにくくなってしまうため、「データベース」と呼ばれる専用のシステムに保存します。
リレーショナルデータベース
データベースには、いくつかの種類がありますが、現在多く使われているのが「リレーショナルデータベース」という種類のもの。これは、「表(テーブル)」という単位でデータを管理し、列(カラム)を定義した後データを行(レコード)に追加していくことで、増やしていくというもので、Excel等で見慣れた扱いやすい形式のもの。
なお、データベースはファイルと違って、そのままでは扱うことができず、DBMS(DataBase Management System)というシステムを利用して扱います。
主キー(プライマリーキー)
各レコードには、他と重複しない情報を含めることが必要で、管理コードや商品コードなどを割り振ることが多いですが、そのような情報がない場合は、単純な連番を割り振ることもあります。また、複数のキーを組み合わせることもあります。例えば「学年+クラス+出席番号」などのように複合キーにすれば、「出席番号」が重複していても特定することができます。
このようなコードを「主キー」と呼び、各レコードを特定する際に利用されます。
演算
データベースには、あらかじめ演算機能が組み込まれていて、簡単な手続きでデータを加工して取得することができます。
- 和演算 複数の表を組み合わせて、1つの新しい表を作成します。この時、重複データは取り除かれます。
- 差演算 ある表から「引かれる表」にあるデータを引いたものを、新しい表として作成します。
- 積演算 2つの表の共通部分を抜き出して、新しい表を作成します。
これらの演算を「集合演算」といいます。
- 選択 表から、必要な行だけを抜き出すことができます
- 射影 表から、必要な列だけを抜き出すことができます
- 結合 複数の表から共通の列を使って、くっつけます
これを関係演算と言います。
データベースの取り扱い
データベースを取り扱う際は、データが壊れてしまったり、関係性が崩れてしまったりすることがないように注意をしなければなりません。次のような点を配慮します。
排他制御
商品の在庫数などを、複数の人が同時に編集してしまうと実数とずれてしまうかもしれません。そのため、ある人が編集しているときはロックをかけて他の人が編集できないようにする必要があります。
ロックには「共有ロック」と「専有ロック(排他ロック)」があります。共有ロックは編集のみがロックされ、編集中のデータを他の人が見ることはできます。
しかし、先の通り在庫情報などの編集で、実際にはすでに売り切れなのに更新前のデータが見えてしまうと問題が発生することもあります。そこで、見ることもロックする「専有ロック」もあります。情報の種類などに応じて使い分けます。
データのバックアップとリカバリ
データベースはトラブルが発生して壊れてしまったりすると、業務に支障が出るばかりか企業の資産を失うことにもなりかねません。
そこで、遠隔地へのバックアップなども含めたバックアップ体制はもちろん、データベース内で行った作業を逐一記録する「ジャーナル」という記録も行います。
このジャーナルがあれば、誤った作業を戻す「ロールバック」や、バックアップデータからジャーナルを使って作業を復元していく「ロールフォアード」といった作業が可能になります。
トランザクション
データベースへの操作は、1つのテーブルの操作だけでなく複数のテーブルに情報を反映しなければならないこともあります。そしてこの時、作業の途中で障害が発生したりすると、あるテーブルにだけ変更が加わってしまって、全体の関係性が崩れてしまう恐れがあります。
そこで、このような途中で中断できない作業を「トランザクション」という単位で管理し、トランザクション中に何かに失敗した場合は、そのトランザクション自体を元に戻したり、トランザクション中はロックをし続けるなどの管理が必要になります。