令和6年度 秋期 午前Ⅱ 問1
データ操作
SQLのシーケンスに関する説明
SQLのシーケンスに関する説明のうち,適切なものはどれか。
- ア現在基底値が0→1→2→0→1→2→0→... のように,周期的に繰り返すシーケンスを定義することはできない。
- イシーケンスの現在基底値を,最小値と最大値との間の任意の整数値に変更することはできない。
- ウシーケンスの増分を,負の整数値にすることはできない。
- エトランザクション開始後のシーケンスの値の取得による現在基底値の変更は,トランザクションのロールバックでその変更を取り消すことができない。
答えと解説を見る
✓ これが正解エトランザクション開始後のシーケンスの値の取得による現在基底値の変更は,トランザクションのロールバックでその変更を取り消すことができない。
解説
シーケンスで進んだ値は、ロールバックしても元に戻りません。
シーケンスは、表とは独立した順序番号の生成器で、値を取得するたびに現在基底値が増分だけ進みます。この値の進み方はトランザクションの取消しの対象になりません。トランザクションの中で値を取得したあとにロールバックしても、進んだ現在基底値は戻らず、次に取得すると続きの値が返ります。複数のトランザクションが同時に番号を取る場面で、取消しのたびに番号を巻き戻すと、ほかのトランザクションが取った番号と重なるおそれがあるためです。その結果、ロールバックがあると番号に欠番が生じます。見分ける軸は、できないと書かれた操作が本当にできないかです。周期、値の変更、負の増分はいずれも定義で指定できます。
ほかの選択肢はなぜ違うのか
- ア現在基底値が0→1→2→0→1→2→0→…:シーケンスには、最大値に達したら最小値に戻って番号を繰り返す指定があります。最小値0、最大値2、増分1として周期的に繰り返す指定をすれば、0、1、2、0、1、2と巡るシーケンスを定義できます。
- イシーケンスの現在基底値を,最小値と最大値…:シーケンスの定義は作成後に変更でき、現在基底値を最小値と最大値の間の任意の値から再開するように指定できます。番号を振り直したいときなどに使うもので、変更できないという説明は誤りです。
- ウシーケンスの増分を,負の整数値にすること…:シーケンスの増分には負の整数も指定できます。負の増分にすれば、値を取得するたびに番号が小さくなっていく、降順のシーケンスを作れるので、できないという説明は誤りです。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問1
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問16(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問15:隔離性水準に関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問14:べき等に関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)