【注目記事】
・SEの転職体験談 | 受託開発から自社製品開発へ ・SIer勤務のSEがパソナキャリアに相談してみた ・SIer勤務のSEがマイナビエージェントに相談してみた
システム開発の中でOracleやSQL SeverなどのDBMS(database management)を利用する際、初めのうちはアーキテクチャを意識しないと思います。
しかし、パフォーマンスチューニングに取り組んだり、運用を担当したりする場合には必ず必要な知識です。
この記事では、DBMSのアーキテクチャについて、最低限必要な知識をまとめました。
目次
DBMSのアーキテクチャ
全体像
(参考 『SQL実践入門』| ミック)
DBMSのアーキテクチャを図にすると上記のようになります。
クエリ評価エンジン
クエリ評価エンジンは、Webサービスなどのアプリケーションや、DBの値を知りたいユーザーから受け取ったSQLを解釈し、どのような手順でデータにアクセスするか計画を立てます。
この計画を「実行計画」または「実行プラン」と呼びます。
この実行計画を立てるために、クエリ評価エンジンの中には「プラン実行機能」「パーサ」「演算評価機能」「オプティマイザ」などの機能が用意されています。
アクセスメソッド
アクセスメソッドは、クエリ評価エンジンが立てた「実行計画」に従って、データにアクセスする方法を決定する機能です。
バッファマネージャ
DBMSでは、処理を高速にするためメモリ上に一時的にデータを格納します。そのメモリ領域をバッファと呼び、バッファマネージャは適切にバッファを管理する役割を担います。
ディスク容量マネージャ
永続的にデータを保管するために、DBMSではディスクを使用します。ディスク容量マネージャはどのデータをどこに保存するのかを管理します。
同時実行制御トランザクションマネージャとロックマネージャ
DBMSは複数人が同時に使用する可能性があります。
何も考えずに複数人が更新や削除をすると、データの整合性が取れなくなります。
それを防ぐために、同時実行制御はデータにロックをかけたり、ある人の問い合わせを待機させたりします。
なお、同時実行制御は「トランザクションマネージャ」と「ロックマネージャ」を利用して、整合性を保つ役割を担います。
リカバリマネージャ
DBMSが管理するデータには、消してはいけないデータが含まれます。
しかし、システムは必ず障害が発生します。
その時に大切なデータを消したり、壊したりしないように、リカバリマネージャには定期的にバックアップをとり、障害が発生した際はバックアップを利用して、データを復旧する機能があります。
まとめ
DMBSは高速にデータを処理したり、安全にデータを管理するために様々な機能があります。
それらの全体像を理解することで、開発や運用時に適切にDBMSを利用できると思います。
参考書籍
SQLスキルを高めるためのおススメ書籍
SQLのスキルを高めるには、学校の試験勉強と同じように多くの問題を解いてみるのが効率的です。
『スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)』は、SQLの基本的な内容の解説に加え、200問を超える問題が掲載されているので、SQL初心者が学習に使うのにおススメです。
実際、この書籍を新卒1年目の新人さんに2-3週間かけて取組んでもらったことがあり、書籍を読んだ後に簡単なSQLの改修を任せましたが、基本的な部分にはつまずかずに改修を進められました。
コメントを残す