新しく質問する

データベース接続/切断の基本的概念が理解できてません

役に立った:0件
  • 質問者:ll_VOXY_ll
  • 投稿日時:2007/10/12 12:03
  • 困り度:暇なときに回答をください
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

プログラミングをする上で初歩的な質問で大変申し訳ありません。
通信系プログラムの開発経験が多く、DBを扱うプログラミングは殆ど無いに等しいレベルです。
アドバイスを頂きたい点として大きく2点ありまして、以下の各システムでのDB接続のタイミングと切断のタイミングがよく理解できていません。
1.Windows系SYS(主にVC, VBによるInterfaceを持つもの)でのDB接続と切断するタイミング
2.WEB系SYS(主にASP, JSP)によるDB接続と切断するタイミング

例えば、画面Aから画面Bに遷移する場合、画面AでDBとの接続を確立したまま画面Bに遷移をするのか、それとも画面単位で接続と切断を行なうといった考え方が基本なのでしょうか?

内容がうまくまとめられなくお見苦しいところばかりですが、アドバイスお願い致します。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:1件

No.1ベストアンサー20pt

  • 回答者:FEX2053
  • 回答日時:2007/10/12 13:02

DBはセッションを多く開くとパフォーマンスが落ちますので、
DBに接続し、必要なデータをSQL文ですべて引っ張ったら一旦クローズ、
処理終了後にDBに再接続しSQLで更新をかけるというのが普通のやり方
です。処理中はDBを対象とせず、プログラム側に引っ張ったデータで
処理する・・・ということですね。

ただ、この方法を取ると、検索~更新間に検索したデータに更新を
掛けられるとDBの整合性が取れなくなりますので、DB上に何か
フラグを立てるとか、プログラム上で整合性が取れる手段を考えます。

いずれにせよ、プログラム動作中にDBを開けっ放しにすることは、
プログラムが不正動作をした時にセッションをどう切るかという
ややこしい問題が発生しますので、何か特別な理由がある場合以外は
あまりやりません。

通報する

この回答へのお礼

画面単位で接続・切断を行なうことが基本ということを念頭に置き、
製造しようと思います。
仰られる通り、DB側データとプログラム上データの整合性に関する問題もありました。排他制御の実現方法についても今後学んでいきます。
解りやすいアドバイスありがとうございました。

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter