📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の2版が非表示) | |||
| 14行目: | 14行目: | ||
<br> | <br> | ||
楽観ロックを使用する場合は、更新対象のデータがデータ取得時と同じ状態であることを判断するために、<br> | 楽観ロックを使用する場合は、更新対象のデータがデータ取得時と同じ状態であることを判断するために、<br> | ||
バージョンを管理するためのカラム(Versionカラム)を用意する。<br> | |||
<br> | <br> | ||
更新時の条件として、データ取得時のバージョンとデータ更新時のバージョンを同じとすることで、データの整合性を保証することができる。<br> | |||
<br> | |||
[[ファイル:Database Lock 1.png|フレームなし|中央]] | |||
<br> | <br> | ||
更新対象のデータがデータ取得時と同じ状態であることを判断するためのカラムを、ロックキーと呼ぶ。<br> | 更新対象のデータがデータ取得時と同じ状態であることを判断するためのカラムを、ロックキーと呼ぶ。<br> | ||
ロックキーは、バージョンカラム以外にも更新日時等のタイムスタンプを用いることもできる。<br> | |||
ただし、タイムスタンプを秒単位までしか保有していない場合、同一秒に複数の操作を行われた時に楽観ロックの判定ができなくなる。<br> | ただし、タイムスタンプを秒単位までしか保有していない場合、同一秒に複数の操作を行われた時に楽観ロックの判定ができなくなる。<br> | ||
<br> | |||
また、より精度の高いミリ秒まで保有していたとしても同様のことが言える。<br> | また、より精度の高いミリ秒まで保有していたとしても同様のことが言える。<br> | ||
つまり、タイムスタンプではこの懸念は払拭できないため、ロックキーはバージョンカラムを利用した方が無難である。<br> | |||
<br> | |||
また、検知のタイミングが業務終了時での検知となるため、画面入力に時間がかかる業務の場合は最初からやり直しになってしまい、<br> | また、検知のタイミングが業務終了時での検知となるため、画面入力に時間がかかる業務の場合は最初からやり直しになってしまい、<br> | ||
結果として時間のロスとなってしまう。<br> | 結果として時間のロスとなってしまう。<br> | ||
| 36行目: | 39行目: | ||
データの整合性を保証することができる。<br> | データの整合性を保証することができる。<br> | ||
<br> | <br> | ||
[[ファイル:Database Lock 2.png|フレームなし|中央]] | |||
<br> | <br> | ||
データのロックは、SELECT ... FOR UPDATE文を利用して実現されるのが一般的である。<br> | データのロックは、SELECT ... FOR UPDATE文を利用して実現されるのが一般的である。<br> | ||
| 120行目: | 123行目: | ||
どの方式も間違いではないため、業務要件を鑑みてしっかりと検討したうえで一番マッチする方式を採用する。<br> | どの方式も間違いではないため、業務要件を鑑みてしっかりと検討したうえで一番マッチする方式を採用する。<br> | ||
<br><br> | <br><br> | ||
{{#seo: | |||
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | |||
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 | |||
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | |||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |||
}} | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:SQL_Server]] | [[カテゴリ:SQL_Server]] | ||