EPL-SIM もデータベースで稼働しています。
Excelファイルは他の人が開いていると参照モードでしか開けなくなりますが、データベースってどうなのでしょうか。
細かい点で言うとデータベースも参照モードになってしまいます。
Office系のデータベースソフトであるAccessもファイルを排他モードで開くと、複数人が同時に開けなくなってしまいます。
共有モードで開くと同時に開くことは可能になりますが、今度は上書きの禁止ができなくなりますよね。
一般的なデータベースではロックと呼ばれる機能を使って、上書きを防止しています。
- 悲観的ロック(ペシミスティックロック)
- 楽観的ロック(オプティミスティックロック)
編集中はロック(編集者以外の書き換え不能)状態にしてしまう考え方です。
一見、安全そうに見えますが、編集中である限り編集者以外の書き換えができないので、ロックしっぱなしで離籍してしまった(or 帰宅してしまった)ということになると大変です。
長期ロックを解除する手段と更新後は確実にロックを解除することが大事になります。
ペシミスティックロックはデータの重要性が高い、更新頻度が高いシステムに利用されます。
できるだけロック時間を少なくすることを考慮したロック方法です。
ロック期間はデータを更新する間だけなので、ロックが掛っぱなしの恐れはほとんどありません。
しかし、ユーザーAさんが編集中のデータをユーザーBさんが後から編集を行い、Aさんより先に更新することができてしまいます。この場合はAさんは更新することができなくなります。
オプティミスティックロックは更新頻度が少ないシステムに利用されます。
EPL-SIMでは同時アクセスを考慮していますが(LAN対応版のみ)、同時に更新するユーザー数は少ないと考えています。このため、ロック時間が比較的短く、ロック管理の手間も少ないオプティミスティックロック制御を採用しています。
仮に同じ情報元に対して更新タイミングが衝突した場合、後に更新処理を行ったほうに警告表示されます。