51,アクセスでのダイナミクス運用の基本的概念:排他制御
(2001,8,24up)
ユーザーの質問に答えるということで
サポートサイドの日立ソフテックの保田 義一様が ダイナミクス支援メーリングリストで解説されて居られますので
当欄に許可を得て掲載します。
@ダイナミクスでの同一カルテへの複数PCからの入力について
一般にデータベースソフトは大量の蓄積データからいかに速く目的の
データを検索できるか、多くのデータベース使用者の同一データ同時
アクセスをどのように制御するか、そしてまたこれらを障害なく
安全に制御できるかがポイントです。
JRの緑の窓口のような大量データで大量アクセス、迅速なレスポンス
が要求されるデータベースは高価な高機能なデータベースシステムを
使用しております。
小規模な事業所にはもちろんここまでのニーズはなく、必要とされる
データ処理が出来るデータベースがあれば良いことになります
★Accessは個人ユースから小規模事業所を対象とした扱いやすい
データベースです。その分機能もシンプルになっております。
データ同時アクセスの制御は排他制御といわれております。
排他は一般に先にそのデータを捕まえたユーザーが「ロック」
をデータにかけ、処理が終わるまで他のユーザーの変更を
許さないようにします。
それは2人の人が同一データを同時に異なった内容で更新すれば
どちらが生き残るかで自分の更新した内容と違った結果になってしまう
問題を避けるためです。また物理的にも同一のDISKのあるエリアに
ディスクの針(古いたとえで恐縮です)が行くように2個所のPCから
指示が出るわけですから針の制御が危険になる(DISKに傷がつく)
可能性がイメージできると思います。
高価なデータベースでは同一データでも例えば行レベルの
ロックをかけ、行が違えば更新できるような制御が出来るものも
あります。「単語(フィールド)」レベルのロック制御すらあります。
Accessはもっとシンプルで基本的には「レコード」レベルでロックをかけます
がもともと「レコードのかたまり」レベル
でロックをかけていましたので一部はどうもこのレベルでロック
しているような気配があります。
Accessの宣伝文句は別として実運用上はできるだけ
排他にならないようにするのが経験上安全です。
(安全という意味はデータアクセスが複数箇所からバッティング
することによるAccessの内部制御不備による万一のデータ破損
から身を守るという意味です)
Accessの内部制御のレベルアップをマイクロソフトに期待する
よりは、できるだけ排他がかからないような運用の工夫が現実解です。
ダイナミクスのVER12からは下書き機能が追加されております。これの活用も一つの運用方法です。
ぶっつかりそうであれば 所見は下書きに書いておくという意味です。
ご診療(業務)の一連の流れの中で同一患者さんを複数PCからできるだけ同時にさわらないような流れを
工夫されることをお願いいたします。
同一患者さんの診療画面(点数に絡む入力)と 所見記入画面との 同時書き込みは問題ありません。
同一患者さんの診療画面(点数に絡む入力)を2以上のクライアントから入力すると排他制御になりますが
A
質問>>すべてのクライアントで、受付画面(待合室にいる受診希望者が一覧で表示される画面)
を開いていても問題はないでしょうか<<
受付画面も色々なPCからアクセスが集中しますし、
プログラム的にもいくつかの画面から受付画面を
参照したり書き込んだりしています。従いまして
必要の無いときは閉じるようにするのが無難です。
作者の吉原正彦先生のコメント:当方でも 3台はいつもオープンしていますが こわれたことは 1度くらい。
ただ このテーブルは いろんな端末から つつきまわすテーブル
なので こわれる頻度は他より高いようです。
でも この受付テーブルそのものは テンポラリーなデータ
をもつだけなので 削除して バックアップしてある 正常な
受付テーブルを インポートしてくだされば よろしいです。
本来データ共有がデータベースの魅力なのですがAccessは
もともとスタンドアロンのPCでのパーソナルユースからスタート
していますので、高価なデータベースシステムと比較すると
相対的にこの部分は簡略になっています。
マイクロソフトにもう少しがんばって欲しいところですが
マイクロソフトは本格的データ共有は例によって上位で高価な
SQLサーバーへ移行させようとしているのかもしれません。
(SQLサーバーの価格は一番下にあります:matu記)
なお排他がかかったら即データが危ないということでは
有りません。出来るだけ避ける運用をお願いしますという趣旨です。
どのソフト、ハードもそうですがAccessもコストパフォーマンスを
考え折り合いをつけて使用していくのが現実的な対応と愚考
いたします。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
SQLサーバーの価格調べ Microsoft HPより抜粋(matu記)
■SQLサーバー発表概要
| 製品名: | 「Microsoft SQL Server 2000」日本語版 |
| 発売日: | 10月27日(金) |
| 推定小売価格: | 下記の推定小売価格を参照 * 当社では、推定小売価格を表記しておりますが、販売価格はマイクロソフト製品取扱店にお問い合わせください。 |
[SQL Server 2000 Enterprise Edition 推定小売価格]
| ライセンス | 推定小売価格 | |
| サーバー ライセンス |
[パッケージ製品] - 25 CAL付き - 25 CAL付き アップグレード - アカデミック パック 25 CAL付き [Open License] - Open Business [Select] - Select 価格レベルA |
2,041,000円 1,020,900円 1,142,100円 1,066,400円 668,700円 |
| プロセッサ ライセンス |
[パッケージ製品] - 1プロセッサ ライセンス - 1プロセッサ ライセンス アップグレード [Open License] - Open Business [Select] - Select 価格レベルA |
3,676,000円 1,837,800円 3,320,800円 2,082,400円 |
[SQL Server 2000 Standard Edition推定小売価格]
| ライセンス | 推定小売価格 | |
| サーバー ライセンス |
[パッケージ製品] - 5 CAL付き - 10 CAL付き - アップグレード 5 CAL付き - アカデミック パック 10 CAL付き [Open License] - Open Business [Select] - Select 価格レベルA |
273,000円 414,000円 101,100円 168,200円 127,900円 80,200円 |
| プロセッサ ライセンス |
[パッケージ製品] - 1プロセッサ ライセンス - 1プロセッサ ライセンス アップグレード [Open License] - Open Business [Select] - Select 価格レベルA |
919,000円 338,400円 820,800円 514,700円 |
[SQL Server 2000 Developer Edition推定小売価格]
| ライセンス | 推定小売価格 |
| [パッケージ製品] - Developer Edition [Open License] - Open Business [Select] - Select 価格レベルA |
91,800円 81,000円 50,800円 |
[SQL Server 2000 クライアント アクセス ライセンス 推定小売価格]
| ライセンス | 推定小売価格 |
| [Open License] - Open Business [Select] - Select 価格レベルA |
28,000円 17,600円 |