H27午後1問3問題文(同期とは?)
gpさん
(No.1)
設問ではなく、問題文の表現がよくわからないため質問です。
該当箇所
[売上登録処理の現状調査及び見直し]1. (4)
ジョブ2は、最後に1回だけ同期をとっていた。これは、ジョブ2が異常終了(以下、失敗という)した場合、失敗の原因を取り除いた後、ジョブ2を最初から単純に再実行できるからであった。
上記該当箇所ですが、「同期をとる」とは何に対して何のためにどのような処理をしているかわからず、教えていただけないでしょうか。
最後の文の「ジョブ2を最初から単純に再実行できるからであった」が理由のようですが、理解できなかったです。
該当箇所
[売上登録処理の現状調査及び見直し]1. (4)
ジョブ2は、最後に1回だけ同期をとっていた。これは、ジョブ2が異常終了(以下、失敗という)した場合、失敗の原因を取り除いた後、ジョブ2を最初から単純に再実行できるからであった。
上記該当箇所ですが、「同期をとる」とは何に対して何のためにどのような処理をしているかわからず、教えていただけないでしょうか。
最後の文の「ジョブ2を最初から単純に再実行できるからであった」が理由のようですが、理解できなかったです。
2024.10.06 01:52
めんちゃんさん
(No.2)
「同期をとる」= COMMIT という意味です。
トランザクションの開始コマンドは標準SQLで明確に決まっていない様です。
OracleやDB2は、データベースへ接続したら自動的にトランザクションが始まるそうです。
その他データベース製品は BEGIN TRANSACTION、START TRANSACTION で開始、終了はどのデータベースでも共通で COMMIT/ROLLBACK で終わるという事です。
この問題では自動的にトランザクションが始まる様に書かれていて、同期をとる = COMMIT という意味です。
これも問題文には書かれていませんがトランザクションが失敗すると自動的に ROLLBACK され途中までの更新が無かったことにされるので最初からもう一度やり直せばよいという事になります。
他の過去問も自動的にトランザクションが始まる前提で書かれているものも多いのでそういうものだと思って問題を読んでいくしかないかなと思います。
トランザクションの開始コマンドは標準SQLで明確に決まっていない様です。
OracleやDB2は、データベースへ接続したら自動的にトランザクションが始まるそうです。
その他データベース製品は BEGIN TRANSACTION、START TRANSACTION で開始、終了はどのデータベースでも共通で COMMIT/ROLLBACK で終わるという事です。
この問題では自動的にトランザクションが始まる様に書かれていて、同期をとる = COMMIT という意味です。
これも問題文には書かれていませんがトランザクションが失敗すると自動的に ROLLBACK され途中までの更新が無かったことにされるので最初からもう一度やり直せばよいという事になります。
他の過去問も自動的にトランザクションが始まる前提で書かれているものも多いのでそういうものだと思って問題を読んでいくしかないかなと思います。
2024.10.06 08:42
めんちゃんさん
(No.3)
追伸、
IPAの公式ページ、「試験要綱・シラバスについて」の下の方に以下の記述がありました。
試験で使用する情報技術に関する用語・プログラム言語など
2024年4月の試験から
・「試験で使用する情報技術に関する用語・プログラム言語など」Ver.5.1(PDF:507 KB)
(2023年11月6日掲載)
上記PDFの中でSQLについて以下の様に書かれています。
-------------------------
データベース言語
試験で使用するデータベース言語は,次の仕様に従う。
SQL :JIS X 3005 規格群
-------------------------
JIS X 3005の内容はというと、日本語が難しい・・・
-------------------------
4.36 SQLトランザクション
4.36.1 SQLトランザクションの一般記述
SQLトランザクション (SQL-transaction) (トランザクション)は,回復に関しての基本単位であるSQL文の実行の並びとする。
これらの操作は,一つ以上の翻訳単位及びSQLクライアントモジュールによって実行される。
SQLトランザクションを構成する操作は,SQLの直接起動によって実行してもよい。
SQLスキーマ文の実行と同じSQLトランザクション内に,SQLデータ文の実行が存在してもよいかどうかは,処理系定義とする。
・・・
-------------------------
この中でトランザクション開始は「START TRANSACTION」でした。
IPAの公式ページ、「試験要綱・シラバスについて」の下の方に以下の記述がありました。
試験で使用する情報技術に関する用語・プログラム言語など
2024年4月の試験から
・「試験で使用する情報技術に関する用語・プログラム言語など」Ver.5.1(PDF:507 KB)
(2023年11月6日掲載)
上記PDFの中でSQLについて以下の様に書かれています。
-------------------------
データベース言語
試験で使用するデータベース言語は,次の仕様に従う。
SQL :JIS X 3005 規格群
-------------------------
JIS X 3005の内容はというと、日本語が難しい・・・
-------------------------
4.36 SQLトランザクション
4.36.1 SQLトランザクションの一般記述
SQLトランザクション (SQL-transaction) (トランザクション)は,回復に関しての基本単位であるSQL文の実行の並びとする。
これらの操作は,一つ以上の翻訳単位及びSQLクライアントモジュールによって実行される。
SQLトランザクションを構成する操作は,SQLの直接起動によって実行してもよい。
SQLスキーマ文の実行と同じSQLトランザクション内に,SQLデータ文の実行が存在してもよいかどうかは,処理系定義とする。
・・・
-------------------------
この中でトランザクション開始は「START TRANSACTION」でした。
2024.10.06 09:27
gpさん
(No.4)
めんちゃんさん
ご回答ありがとうございます。
なるほどです。
R5~H28までの過去問でこのような表現がなかったですし(記憶が正しければ)、
さらにジョブ2が多重実行を想定した処理だったで、「他のジョブと同じデータに対する重複実行を避けるため?」とか余計なこと考えていたので混乱していました。
※重複実行しないための設計は後続の問題で出ているので、こちらの同期とは関係ないです。
こちらも参照元のご提示ありがとうございます。
ただ、この中にも「同期」という言葉が出てこないのですね。
三好本の解説にも「同期」について説明無しでかかれていたので、一般的な言葉なんですかね?
一旦はトランザクションの終了というところで覚えておきます。
疑問を払拭できてよかったです!
ご回答ありがとうございます。
>「同期をとる」= COMMIT という意味です。
なるほどです。
R5~H28までの過去問でこのような表現がなかったですし(記憶が正しければ)、
さらにジョブ2が多重実行を想定した処理だったで、「他のジョブと同じデータに対する重複実行を避けるため?」とか余計なこと考えていたので混乱していました。
※重複実行しないための設計は後続の問題で出ているので、こちらの同期とは関係ないです。
>データベース言語
>試験で使用するデータベース言語は,次の仕様に従う。
>SQL :JIS X 3005 規格群
こちらも参照元のご提示ありがとうございます。
ただ、この中にも「同期」という言葉が出てこないのですね。
三好本の解説にも「同期」について説明無しでかかれていたので、一般的な言葉なんですかね?
一旦はトランザクションの終了というところで覚えておきます。
疑問を払拭できてよかったです!
2024.10.06 13:33
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。