アプリに組み込む場合,それでは少し困ることがあります。それは,操作するたびに二次記憶をがちがちといじることになること。アプリの場合は,単発のトランザクションについて二次記憶を制御することになるから,処理の単位が比較的シンプルだったりする。INSERT-文を発行したからといっても,それをすぐに永続化層に運んでもらいたくない(ディスクにセーブしてもらいたくない)ことがあります。いちいち二次記憶が動いてたら遅くて大変です。アプリでは,ウィンドウやダイアログを複数開いて連携させることがあります。登録はこっちのウィンドウで行うけれど,コミットは別のウィンドウでしたい,けどさらに別のウィンドウでキャンセルが押されたらロールバック,最終的な永続化は保存ボタンを押したとき,保存しないで終了したときは編集結果を破棄する,みたいな制御をする場合,ディスク上でこれやるのは大変です(できなくはないんだけれども)。database)が用意されています。これを使えば,起動中はメモリ上にデータベースを展開しておいて,保存するときにメモリ上のデータベースをファイルに書き出す,なんてことができたりします。あたしゃしばらく,メモリ上にデータベースを展開するのはいいとしても,どうやって永続化するのかわかってなかったのでした。バックアップとかいうから,データベースマネジメントのことかと思ってた。クラスを継承した自前のドキュメントクラスで,永続化の処理を行うことになります。何か操作するたびに,ドキュメントクラスで二次記憶向けのトランザクションが発生するのは嫌だな......と思っていたんですけれど,こゆ方法があったんですね。この仕組みを使えば,メモリ上の操作とディスク上の操作をうまく棲み分けさせることができそうです。ま,ただ知らなかったからメモっただけ。便利だなー......SQLite。