土日シリーズ「いろんなコンピューター言語の覚え方」、第3回に、コンピューター言語の覚え方の手順をかきました。
今回は、そこの「(5)入出力処理」の「DB」です。
■実現方法の違い
DBアクセスは、言語や環境などによって、実現方法が大きくことなります。
1つめの違いは、
・SQLを発行できるかどうか
です。たしか、昔のオフコン用のCOBOLだと、SQLを発行しないものもあったし、汎用だと、そもそもリレーショナルでない(階層型データベース、親子関係でアクセスする。ちょとXMLのDOMに似た感じ)こともあります。
で、SQLの場合、
・SQL操作をどのように呼び出す(実現する)か
です。ODBCやJDBC、ODBCをラップする関数、それ以外(AccessVBAなどの場合)とか、いろいろありますが、要は
・SQLを発行する前にすべきこと
・コネクション
・オープン
などなど・・
・SQL実行のためにすべきこと
・SQLのステートメント作成
・SQL実行
・発行した後にすること
・値の取得
・トランザクション処理
・クローズ
です。このうち、特に注意すべき、値の取得とトランザクション処理について、追加説明します。
■値の取得―カーソル処理
値の取得なのですが、たいてい、DBからSELECTすると、レコード(セット)単位で取得でき、さらに、そのセットから値をとるようになります。
このとき、現在、操作対象(値を取得する対象)のレコード(セット)を、カーソルとよび、このカーソルの操作ができるようになっています。
そして、カーソルのあるレコードから値を取得する方法が用意されています。
ただし、このカーソルの設定や、値の取得に関して、いろんな便利な関数などがあるおともあります(VBAのFindなど)
■トランザクション処理
トランザクション処理に関しては、
・トランザクションスタート
・SQLによる操作
・コミットまたはロールバック
・トランザクションEnd
というふうになります。SQLによる操作は、トランザクションありなしで違う場合と、同じ場合どちらもありえます。また、ふつう、トランザクションスタートをしない場合は、オートコミットされるようになってます(トランザクションスタートの処理に、オートコミットOFFも、はいります)
トランザクション処理は、ライブラリとして用意されている場合(JDBCにはある)と、データベース側でおこない、SQLで設定する方法の2種類ある場合があります(が、JDBCの場合は、JDBCのクラス内メソッドで行なうことが多いと思います)
一般論的にはこうなのですが、具体的なプログラム方法は、言語や利用するライブラリなどによって違うので、それぞれの言語やライブラリで、上記のことをどのように実現しているのかを確認し、操作するということになります。
今回のお話は以上です。