前回は、リレーショナルデータベースの役割とそれを管理するソフトウェアであるRDBMSの基本機能について解説しました。今回は、RDBMSの基本的なアーキテクチャ(内部構造)を解説します。アーキテクチャを理解すると、データベースに障害が起こった場合の復旧作業や、パフォーマンスを考慮したアプリケーション開発などに役立ちます。【更新版】
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
リレーショナルデータベース(RDB)は以下の3つの要素で構成されています(図1)。
本稿ではよく使用されるRDBMSとしてOracle Databaseを例にします。使用するRDBMS(リレーショナルデータベース管理システム)によって実際のファイルや機能の名称は異なりますが、仕組みや考え方はどのデータベース製品でも共通です。
1つ目の構成要素である「データベース」は、ディスク領域のOSファイルによって構成されています。
ファイルに格納されるデータの大部分を占めるのが表データです。例えば、商品表や在庫表のような、複数のユーザーが共有利用するデータのことです。この他に、障害から復旧するための「変更履歴」や、データベースに関する「管理情報」などが格納されています(図2)。
このファイルには、ユーザーが普段共有利用する表データが格納されています。表データを検索したり、変更したりする場合は、その表データが格納されている各ファイルにアクセスします。
昨今、企業システムが管理するデータベースのデータ量が増加の一途をたどっています。データ量が数TBを超えることも珍しくはありません。このような大量のデータを格納するデータベースでは、表データが1つのファイルに収まらず、複数に分散して管理することもあります。
Oracle Databaseでは、表データを格納するファイルを「データファイル」と呼び、このデータファイルの中に表を作成してデータを挿入します。
このファイルは、データベースに何らかの障害が発生した場合でもデータを正しく復旧できるように、データベース内で行われた全ての変更履歴を格納しておくものです。
例えば、データの変更処理中にデータベースサーバがダウンし、変更データが失われてしまったとしても、変更履歴を元に処理を再実行することでデータを復旧させることができます。
Oracle Databaseでは、変更履歴を「オンラインREDOログ・ファイル」と呼ばれるファイルに格納します。Oracle Databaseで行われた変更は、次々にこのファイルに書き込まれます。
このファイルでは、データベースシステムが自分自身を管理するために、データベースを構成するファイル名や格納されている場所、各ファイルの現在の状態などの管理情報が記録されます。
データベースを起動すると、まずこのファイルにアクセスします。データベースシステムはここで表データを格納するファイルや変更履歴を格納するファイルがどこにあるのかを確認し、認識します。
Oracle Databeseでは、データベースに関する管理情報を「制御ファイル」と呼ばれるファイルに格納します。データベースの起動時に制御ファイルを読み込み、データファイルやオンラインREDOログ・ファイルがどこにあるかをチェックします。
1つ目の要素である「データベース」をまとめると以下のようになります。
続いて、これらのファイルに対してデータの読み込みや書き込みをしたり、SQLの内部処理などを担当する「プロセス」について解説します。
Copyright © ITmedia, Inc. All Rights Reserved.