ストアドプロシージャ、関数、ビュー
SQL命名規則に関する第3回目、最終回へようこそ。 パート1では、テーブルの命名規則について説明し、パート2では列名の規則について説明しました。この記事では、ストアドプロシージャ、関数、ビューなどの他のデータベースオブジェクトに名前を付けるためのガイドラインをいくつか紹介します。
ストアドプロシージャ
ストアドプロシージャは、定義されたアクションを実行する一連のステートメントです。通常、これらには頻繁に使用されるステートメントが含まれています。ストアドプロシージャは、パラメータを受け入れ、呼び出し時に操作を実行できるという点で、プログラミングにおける関数に似ています。
一般的なフォーマット
ほとんどのDBAは、ストアドプロシージャにそれ自体を識別する接頭辞を付け、その後にストアドプロシージャが実行するアクション、次にストアドプロシージャが影響するオブジェクトを表す名前を付けることを好みます。
[prefix]_[action]_[object]
ストアドプロシージャで実行できるアクションは次が含まれます:
- Insert
- Delete
- Update
- Select
- Get
- Validate
接頭辞の選択
ストアドプロシージャで使用する最も明白な接頭辞は"sp_"です。そうは言っても、これはSQL Serverによってマスターデータベースの標準の命名規則として既に使用されているため、これを回避するために正当な理由が少なくとも1つあります。オブジェクトが存在するデータベースを指定しない場合、SQL Serverはまずマスターデータベースを検索してオブジェクトがそこに存在するかどうかを確認し、次にユーザーデータベースを検索します。SQL Serverでデータベースをホストしていない場合でも、切り替える場合に備えて、これを命名規則として使用することは避けるべきです。
代わりに、"usp_"のような接頭辞を検討してください。
全てをまとめて
独自のストアドプロシージャを作成するための、適切な名前が付けられたストアドプロシージャの例をいくつか示します:
- usp_insert_person
- usp_delete_person
- usp_update_person
- usp_select_person
- usp_get_person
- usp_validate_person
ユーザー定義関数
組み込みデータベース関数と同様に、ユーザー定義関数は入力パラメータのみを受け入れ、アクションを実行して結果(単一の値またはテーブル)を返す一連のSQLステートメントが含まれています。
ユーザー定義関数の命名規則では、接頭辞"fn_"の後にそのアクションが続きます。したがって、その構文はストアドプロシージャの構文と非常に似ているはずです:
[prefix]_[action]_[object]
trueまたはfalseを返す関数は、アクション(動詞)として"is"または"are"を使用するというルールに従う場合があります。
関数名の例としては、次のようなものがあります:
- fn_count_string_instances
- fn_get_customer_balance
- fn_is_inventory_in_stock
- fn_get_column_type
ビュー
ビューは、クエリによって定義されるデータベース内の“仮想テーブル”です。ビューでは、結合を使用して2つ以上のテーブルのデータを合わせることができます。また、情報のサブセットを含めることもできます。これにより、複雑なクエリを抽象化または非表示にするのに便利になります。
ビューの命名規則には、接頭辞"v_"または"vw_"が必要で、その後に名前空間、結果が続きます。したがって、その構文は次のようになります:
[prefix]_[result]
以下にいくつかの例を示します:
- vw_actor_full_name
- vw_sales_by_store
- v_staff_list
- v_sales_by_product_category
ストアドプロシージャ、関数、ビューの命名規則に関する最終的な考え方
この3部構成のシリーズでは、一般的に使用される命名規則をいくつか調査し、独自の命名規則を作成する最適な方法を検討しました。パート1ではテーブル名について説明し、パート2では列名に焦点を当てました。最後に、パート3では、プロシージャ、関数、ビューなどの他のデータベースオブジェクトの命名規則について説明しました。
全てのデータベースオブジェクトにルールを適用する必要はないことに注意してください。命名規則ルールをテーブル名と列名のみに適用することを選択できます。命名規則の使用は必須ではありませんが、それでも有益であるため、実際に決定するのはあなたです。