「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ストアドサブプログラム

pointこの用語のポイント

pointデータベースのお話で出てくるよ

pointストアドプロシージャとかストアドファンクションのことだよ

pointOracleで使われる表現だよ

スポンサーリンク

簡単に書くよ

ストアドサブプログラム(英:stored sub program)とは

データベースのOracleさんで使われる表現で、ストアドプロシージャとかストアドファンクションのこと。
言い換えると

データベースに対する「あれやれ、これやれ」の命令をひとつにまとめて保存したもの
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

データベース
Oracle
ストアドプロシージャ
ストアドファンクション


について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

データベースは「データを入れておく箱」です。
突っ込んで考えると混乱するかもしれません。
何となくのフィーリングで理解してください。

ストアドサブプログラム

Oracleは「大規模システムで使われることが多いデータベース」です。
データ件数が多かったり、たくさんのアクセスがあったり、お仕事がいっぱいな大規模システムでよく使われます。

ストアドサブプログラム2

ストアドプロシージャストアドファンクションは、データベースに対する「あれやれ、これやれ」な命令を1つにまとめて保存したものです。
データベース世界における関数だと思ってください。

ストアドプロシージャとストアドファンクションの違いは、戻り値(関数から出てくるもの)の有無です。
戻り値が無いのがストアドプロシージャです。
戻り値が有るのがストアドファンクションになります。

ストアドサブプログラム3

以上を踏まえて

Oracleさんで使われる表現で、ストアドプロシージャとかストアドファンクションを指す用語

が「ストアドサブプログラム」です。
「ストアド」と「サブプログラム」間に点が入って「ストアド・サブプログラム」と表記するのが正式っぽいですが、そこら辺はゆるく捉えてください。

ストアドサブプログラムについて、Oracleさんの公式サイトには以下のように書かれていました。

ストアド・サブプログラムについて
サブプログラムは、特定の問題を解決したり、関連する一連のタスクを実行するSQL文およびPL/SQL文で構成されているPL/SQLユニットです。サブプログラムはパラメータを持つことができ、値は起動元から提供されます。サブプログラムは、プロシージャまたはファンクションです。通常、プロシージャはアクションを実行するために使用し、ファンクションは計算を行って値を戻すために使用します。

ストアド・サブプログラムは、データベースに格納されたサブプログラムです。ストアド・サブプログラムは、データベースに格納されているため、多様なデータベース・アプリケーションのビルディング・ブロックとして使用できます。別のサブプログラムまたは無名ブロック内で宣言されたサブプログラムは、ネストされたサブプログラムまたはローカル・サブプログラムと呼ばれます。宣言されたサブプログラムまたはブロックの外部から呼び出すことはできません。無名ブロックとは、データベースに格納されていないブロックです。


なんか難しそうなことがいっぱい書いてありますが、ポイントは

サブプログラムは、プロシージャまたはファンクションです。



ストアド・サブプログラムは、データベースに格納されたサブプログラムです。

の部分です。

この2つを合体させると

ストアド・サブプログラムは、データベースに格納されたプロシージャまたはファンクションです。

に なります。

「データベースに格納されたプロシージャ」はストアドプロシージャです。
「データベースに格納されたファンクション」はストアドファンクションです。

これを先ほどの文章に当てはめると

ストアド・サブプログラムは、ストアドプロシージャまたはストアドファンクションです。

に なります。

ふむ。
この文章でも、ストアド・サブプログラムはストアドプロシージャとかストアドファンクションのことだと説明されていますね。

以上でストアドサブプログラム自体の説明は終わりです。

ここまで説明を書いておきながらなんですが、実は私、お仕事の現場において「ストアドサブプログラム」という表現を聞いたことがありません。
大体みんな「ストアドプロシージャ」や「ストアドファンクション」と言っています。
ワイルドな人になると、ストアドファンクションも含めて「ストアドプロシージャ」と表現していたりしますよ。


image piyo2

一言でまとめるよ

まぁ「ストアドサブプログラム」って単語が出てきたら「ストアドプロシージャとかストアドファンクションのことなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像035
書籍画像043

おまけ

■訳してみるよ

「stored(ストアド)」は「store(ストア)」+「ed」です。
「store(ストア)」の意味は「お店」とか「蓄え」とか「貯蔵」とか「蓄える」とか「保管する」とか「保存する」とか「格納する」とかです。
「ed」という接尾辞が付くと「~された」的な意味になります。
「sub(サブ)」という接頭辞が付くと「~の下」や「副~」的な意味になります。
「program(プログラム)」の意味は「計画」とか「演目」とか「(コンピュータの)プログラム」とかです。
何となく くっつけると

保存された副プログラム

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
おい点P、動くんじゃねえ!──ニガテ民のための算数と数学の本
実践サイバーセキュリティ入門講座 現場に残された痕跡からハッカーの攻撃を暴け