[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

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

ストアドファンクション (stored function)

pointこの用語のポイント

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

pointデータベースさんに対する命令をまとめたものだよ

point戻り値の有る関数みたいなものだよ

スポンサーリンク

簡単に書くよ

ストアドファンクション (stored function)とは

データベースの世界におけるファンクション(複数の命令をまとめたもの、戻り値の有る関数)のこと。
もう少し具体的に書くと

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

image piyo

詳しく書くよ

※このページの説明は「ストアドプロシージャ」の説明と、ほとんど同じです。既に「ストアドプロシージャ」の説明をご覧になった方は、読んでもあまり意味は無いと思います。

比較しながら説明した方が分かりやすいと思うので、プログラミング関連の説明も一緒に書いていきますね。
多少遠回りに感じるかもしれませんが、のんびりお付き合いください。

プログラムというのはコンピュータさんに対する命令書です。
コンピュータさんに対して「あれしろ、これしろ」という命令が書かれています。

コンピュータさんに対する命令書を作る行為は「プログラミング」と言います。

プログラミングの分野において、何かを入れると何かをして何かを返してくれるプログラムの部品を「関数(ファンクション:function)」と言います。
「何らかの処理(命令)をまとめたもの」と解釈しても構いません。

ストアドファンクション

関数へ入れるものは「引数(ひきすう)」と言います。
関数から出てくるのは「戻り値(もどりち)」です。

ストアドファンクション2

プログラミング言語によっては、戻り値の有無によって関数を区別します。
区別する場合は

・戻り値のある関数:関数(ファンクション)
・戻り値のない関数:プロシージャ


と呼びます。

ストアドファンクション3

プロシージャの本来の意味は「複数の処理を1つにまとめたもの」ですけどね。
関数だって複数の処理を1つにまとめたものです。
「戻り値の無い関数がプロシージャ」と解釈して構いません。

ここまでの説明で、プログラミングの分野における「関数(ファンクション)」と「プロシージャ」は、何となく理解できたでしょうか。

あとは、データベースについても説明しておきましょう。
と言っても、特に難しく考える必要はありません。
データを入れておく箱」がデータベースです。

ストアドファンクション4

以上を踏まえて「データベースの世界におけるファンクション(複数の命令をまとめたもの、戻り値の有る関数)」が「ストアドファンクション」です。

ついでなので併せて書いておくと「データベースの世界における戻り値の無い関数」は「ストアドプロシージャ」と言います。

ストアドファンクションとストアドプロシージャの違いは、戻り値があるかないかの違い、と解釈してください。

ストアドファンクション5

ここで、プログラミングとの比較に戻りましょう。

プログラミング言語は、コンピュータさんに対して命令するときに使う言語です。
プログラミング言語を使って、あれやこれやと記述すると、コンピュータさんに対して「あれしろ、これしろ」と命令を出すことができます。

ストアドファンクション6

同じように「SQL」という名前の、データベースさんに対して命令を出すための言語があります。
SQLを使ってあれやこれやと記述すると、データベースさんに対して「あれしろ、これしろ」と命令を出すことができます。

ストアドファンクション7

プログラミング言語によって書かれたいくつかの命令を1つにまとめて部品化したものを「関数」と言います。
戻り値のある関数を「関数(ファンクション)」、戻り値のない関数を「プロシージャ」と呼びわける場合もあります。

ストアドファンクション8

同じように、SQLによって書かれたいくつかの命令を1つにまとめて部品化したものを「ストアドファンクション」もしくは「ストアドプロシージャ」と言います。
戻り値がある場合は「ストアドファンクション」、戻り値がない場合は「ストアドプロシージャ」として定義するのが一般的です。

ストアドファンクション9

多少乱暴な解釈ではあるのですが、プログラミングの分野における「ファンクション(関数)」「プロシージャ(戻り値のない関数)」が、データベースの分野における「ストアドファンクション」「ストアドプロシージャ」と考えると、分かりやすいと思います。

image piyo2

一言でまとめるよ

まぁ「ストアドファンクション」って単語が出てきたら「データベース世界における戻り値の有る関数なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク