|
ストアドプロシージャ (stored procedure) とは、データベースに対する一連の処理をまとめた手続きにして、リレーショナルデータベース管理システムに保存(永続化)したもの。永続格納モジュール(Persistent Storage Module)とも呼ばれる。ストアドプロシージャの格納先はRDBMSの実装により異なり、RDBMSのデータ辞書や専用の格納スペースが用いられている。 == 概要 == データベース言語標準SQLでは、SQL/PSM規格として策定されている。 ベンダー各社とも、静的・動的SQLにカーソル処理や制御構文・例外処理などを含めた仕様の拡張言語により手続きを記述することができるDBMSを提供している場合が多い。また、C言語で記述しコンパイルした外部モジュール(共有ライブラリなど)やJavaのクラスライブラリから、関数やクラスメソッドを呼び出すことで実現する「外部プロシージャ」機能を実装しているものもある。 ストアドプロシージャを利用することにより次のようなメリットが生まれる。 # ひとつの要求で複数のSQL文を実行できる(ネットワークに対する負荷を軽減できる) # あらかじめ構文解析や内部中間コードへの変換をすませるため、処理時間が軽減される # データベーストリガと組み合わせることで、複雑なルールによるデータの参照整合性保持が可能になる。簡単に言えば、アプリケーション側にロジックを持たずとも、データベース内のデータのつじつまが合うようにすることができる。 # JAVA等のホスト言語とSQL文が確実に分離されソースコードの見通しが良くなること、また、Webサイトなど運用中でもストアドプロシージャの入れ替えによる修正が可能なため保守性に優れる。 ストアドプロシージャを多用することによるデメリットには以下のようなものがある。 # データベース製品ごとに、記述する構文の規約がSQL/PSM規格との互換性が低いため、コード資産としての再利用性が悪い。 # ビジネスロジックの一部として利用する場合、業務の仕様変更に際して、外部のアプリケーションとともにストアドプロシージャの定義を変更する必要がある。このとき、よけいな手間や変更ミスによる障害を発生させる可能性がある。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「ストアドプロシージャ」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Stored procedure 」があります。 スポンサード リンク
|