今回はデータベースに対する頻出機能(操作)を、3つ紹介します。
ストアドプロシージャ
ストアドプロシージャとは、データベースに対する複数の命令をまとめて、データと共に保存できるようにしたものをいいます。SQLによる操作をストアドプロシージャ側にまとめることで、呼び出し側プログラムのソースコードからSQL文を排除して、読みやすさや保守性を向上させることができます。
様々な用途がありますが、下記3つが代表的な使用用途になります。
| 用途 | 概要 |
| ネットワークの負荷の軽減 | クライアント側から複数のSQL文を実行する必要がなくなるため |
| 処理速度の向上 | SQL文の構文解析などが済んだ状態でデータベース管理システムに保存されているため |
| セキュリティの向上 | DBへのアクセスをストアドプロシージャのみに制限することにより、不用意なデータへの操作を防げるため |
レプリケーション
レプリケーションとは複製を作るという意味で、サーバーを設置し、リアルタイムにデータをコピーする技術のことをいいます。複製のことをレプリカともいいます。データの同期やバックアップを取る際などに用いることが多いです。
様々な用途がありますが、下記2つが代表的な使用用途になります。
| 用途 | 概要 |
| システム停止の防止 | 元のサーバーやデータに異常が生じた際に、レプリカに切り替えることで停止を防げるため |
| サーバー負荷の分散 | レプリカを用いてサーバーに負荷のかかりそうな作業は分散して行うことができるため |
トリガー
トリガーとは、特定のテーブルに対する操作(挿入・更新・削除)を契機として、あらかじめ定義された処理を自動的に実行する機能のことをいいます。データの整合性を保つために大切な機能ですが、一つのテーブルのデータを変えると、他のテーブルへも影響(テーブル間の依存性)が出てしまうので、データの修正などが困難になる場合もあります。
様々な用途がありますが、下記3つが代表的な使用用途になります。
| 用途 | 概要 |
| イベントロギング | 監査やセキュリティ要件充足のために、データ操作に関する責任追跡性の確保する必要がある場合 |
| 導出項目・集計値の自動生成 | 性能要件充足などを目的に、カラムとして導出項目や集計値を保持したい場合 |
| ビジネスルールの実現 | 何らかの理由でアプリ側ではなく、データベース側でデータ操作を実施したい場合 |
エンジニアからのアドバイス
データベースの機能についてはイメージがつきにくいかと思います。実際の現場で使われる際に、すぐに調べられるように用語や概要を覚えておきましょう。
