DBデータベーススペシャリスト試験 午前Ⅱ

令和6年度秋期 データベーススペシャリスト 午前Ⅱ 問1

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

SQLのシーケンスに関する説明のうち,適切なものはどれか。

選択肢

  1. ア
    現在基底値が0→1→2→0→1→2→0→…のように,周期的に繰り返すシーケンスを定義することはできない。
  2. イ
    シーケンスの現在基底値を,最小値と最大値との間の任意の整数値に変更することはできない。
  3. ウ
    シーケンスの増分を,負の整数値にすることはできない。
  4. エ
    トランザクション開始後のシーケンスの値の取得による現在基底値の変更は,トランザクションのロールバックでその変更を取り消すことができない。
解き方のヒントを見る

SQLシーケンスの役割を見極める視点

シーケンスは、データベース内で値を扱う仕組みの一つです。問題文の用語が担う目的と、表や行との関係を区別して考えると、説明の妥当性を検討しやすくなります。

この問題で問われていること

確認の中心は、シーケンスを表そのもののデータ構造として捉えるのか、それとも値の生成や管理を補助する独立した仕組みとして捉えるのかという役割の違いです。

視点

シーケンスの目的、表との関係、値を扱う単位に注目し、データベースの他の構成要素と役割が混同されていないかを整理しましょう。

確認ポイント

  • シーケンスが担う目的を確認する
  • 表や行との関係を区別して読む
  • 値を扱う単位や管理対象を確認する
正解と解説を見る

正解

エ

解説

SQLのシーケンスには、周期的な繰返し、現在値の変更、負の増分などを設定できる。一方、値の取得による進行はトランザクションのロールバックでは取り消されない。

理由

シーケンスは連番などを生成するための独立したオブジェクトであり、最大値・最小値・増分・繰返しなどを指定できる。したがって、周期的な値や負の増分も定義でき、現在値も範囲内で変更できる。

比較

シーケンスから値を取得して現在値が進んだ後にトランザクションをロールバックしても、その取得による進行は元に戻らない。設問ではこの性質を述べたエが適切です。

選択肢ア

これは不正解だよ。シーケンスには、最小値や最大値に達したときに再び範囲内を循環させる設定がある。そのため、0、1、2、0、1、2のように周期的に値を繰り返すシーケンスを定義できないという説明は誤りである。

選択肢イ

これは不正解だよ。シーケンスでは、最小値と最大値の範囲内にある任意の整数値を現在値として設定できる。したがって、現在基底値をその範囲内の整数値へ変更できないとする説明は、シーケンスの値を変更できる仕様と一致しない。

選択肢ウ

これは不正解だよ。シーケンスの増分は正の値に限られず、負の整数値も指定できる。負の増分を設定すれば、値を減少させながら生成できるため、負の整数値にできないとする説明は誤りである。

選択肢エ(正解)

これは正解だよ。シーケンスから値を取得すると現在基底値が変更されるが、その変更は通常のトランザクション更新とは異なり、ロールバックによって取り消されない。したがって、取得済みの値を再利用する状態には戻らない。

学習のポイント

シーケンスの設定項目とトランザクション制御の範囲を整理する。

出典:独立行政法人 情報処理推進機構(IPA)令和6年度秋期 データベーススペシャリスト試験 午前Ⅱ 問1(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針