misc.log

日常茶飯事とお仕事と

ストアドプロシージャ、習得に向けた入り口まとめ

かれこれ15年以上逃げ続けてきたストアドプロシージャをはじめとした「データベースに直接触れる系の開発」、逃げ場が無くなってきたので対峙することにします(←そんなことないだろ?と言われがちですが、はい、データベースとSQL、苦手なんです。ついでに言うとネットワーク関連も苦手なんです)。

@ITにある関連記事

ちょっとだけ探してみたのですが、SQL ServerにしてもOracleにしても、あんまりDBと密連携した開発ツールや環境に関する「入り口」に相当する本って無いんですね。探し方が悪いのかも知れませんが、いわゆる「VB.NETを始めよう!」的な本って見つかりませんでした。そうなると、ネットです。近年、というかここ10年のWebコンテンツの充実ッぷりは半端ないですから、せっかく無料で公開してもらっている情報を利用しない手はありません。

というわけで、自宅のVM環境にちょっとした開発環境を構築するインストール待ちの間に探してみた結果をメモっておきます。

基本の基本

Transact-SQLでストアドプロシージャを作成する (1/2)/さらっと覚えるSQL&T-SQL入門(9)
http://www.atmarkit.co.jp/ait/articles/0710/29/news118.html

(株)システムインテグレータの石橋さんが書いてくださっている、「とりあえずの入り口」にもってこいな説明です。あんまり難しい「こうあるべき」ではなくて、何ができる、ってことの超入り口だけに特化しているのでとっつきやすいかと。

ちなみにこの本を書いた方です。

やさしいT-SQL入門 (DB SELECTION)

やさしいT-SQL入門 (DB SELECTION)

カーソルを使った繰り返し処理

ストアドプロシージャの花形“カーソル”を使おう (1/3)/さらっと覚えるSQL&T-SQL入門(11)
http://www.atmarkit.co.jp/ait/articles/0801/21/news117.html

こちらも同じ方が書かれている記事。ってかシリーズですね。前述の記事で基本のとっかかりを学んだ次は、「カーソル」。どうやら周囲に聞くところによると、これが難関、と言われているようですが、かつでのRDO*1を使った開発などでは普通に「持ってきたレコードセットのカーソルを順次動かしながら…」ってのがありましたし、これくらいわかんないと死ぬんじゃないか?と思うのですが……。

ここで初めて「1本のSQLではなくて、通常はプログラムを組んで記述するロジック的なもの」が登場します。これで初めてストアドプロシージャのメリットである「DBサーバー上で稼働する」ということの効果がでてきますよね。これが無いなら、別にVB.NETだろうがC#だろうがJavaだろうが、何で組んだって同じだとおもうのですが(もちろん、DB関連ロジックをDB側に寄せてカプセル化できるというメリットはありますが)。

ま、この辺も使ってみないとたぶん旨みは感じられないと思うわけです。

トランザクション処理

トランザクション処理をさらっとマスターしよう (1/3)/さらっと覚えるSQL&T-SQL入門
http://www.atmarkit.co.jp/ait/articles/0803/24/news138.html

んでもって次がトランザクション。これで一通りの「開発らしい道具」がそろいますね。ここまでやれば、プログラム側からは「はい!実行してね」で終わらせられるので、「ストアドプロシージャがあって楽だなぁ」と思えるのですが……。

とまぁ、この辺でしょうか。最初に踏まえておくべき基本事項は。
あ、もちろん基本的SQLの知識はあるという前提ですよ。


ASP.NET+SQL Server―ゼロからはじめるWebアプリケーション (DB press)

ASP.NET+SQL Server―ゼロからはじめるWebアプリケーション (DB press)

プロとしてのOracle PL/SQL入門 改訂版 (Oracle現場主義)

プロとしてのOracle PL/SQL入門 改訂版 (Oracle現場主義)

*1:RDO: Remote Data Objectsと呼ばれるDBアクセス処理を利用するためのオブジェクト群、ライブラリ。