リレーショナルデータベースの3大構成要素とは?:ゼロからのリレーショナルデータベース入門(2)(1/3 ページ)
前回は、リレーショナルデータベースの役割とそれを管理するソフトウェアであるRDBMSの基本機能について解説しました。今回は、RDBMSの基本的なアーキテクチャ(内部構造)を解説します。アーキテクチャを理解すると、データベースに障害が起こった場合の復旧作業や、パフォーマンスを考慮したアプリケーション開発などに役立ちます。【更新版】
目次
リレーショナルデータベースを構成する要素
リレーショナルデータベース(RDB)は以下の3つの要素で構成されています(図1)。
本稿ではよく使用されるRDBMSとしてOracle Databaseを例にします。使用するRDBMS(リレーショナルデータベース管理システム)によって実際のファイルや機能の名称は異なりますが、仕組みや考え方はどのデータベース製品でも共通です。
1:データベース
1つ目の構成要素である「データベース」は、ディスク領域のOSファイルによって構成されています。
ファイルに格納されるデータの大部分を占めるのが表データです。例えば、商品表や在庫表のような、複数のユーザーが共有利用するデータのことです。この他に、障害から復旧するための「変更履歴」や、データベースに関する「管理情報」などが格納されています(図2)。
表データを格納するファイル
このファイルには、ユーザーが普段共有利用する表データが格納されています。表データを検索したり、変更したりする場合は、その表データが格納されている各ファイルにアクセスします。
昨今、企業システムが管理するデータベースのデータ量が増加の一途をたどっています。データ量が数TBを超えることも珍しくはありません。このような大量のデータを格納するデータベースでは、表データが1つのファイルに収まらず、複数に分散して管理することもあります。
Oracle Databaseでは、表データを格納するファイルを「データファイル」と呼び、このデータファイルの中に表を作成してデータを挿入します。
変更履歴を格納するファイル
このファイルは、データベースに何らかの障害が発生した場合でもデータを正しく復旧できるように、データベース内で行われた全ての変更履歴を格納しておくものです。
例えば、データの変更処理中にデータベースサーバがダウンし、変更データが失われてしまったとしても、変更履歴を元に処理を再実行することでデータを復旧させることができます。
Oracle Databaseでは、変更履歴を「オンラインREDOログ・ファイル」と呼ばれるファイルに格納します。Oracle Databaseで行われた変更は、次々にこのファイルに書き込まれます。
データベースに関する管理情報を格納するファイル
このファイルでは、データベースシステムが自分自身を管理するために、データベースを構成するファイル名や格納されている場所、各ファイルの現在の状態などの管理情報が記録されます。
データベースを起動すると、まずこのファイルにアクセスします。データベースシステムはここで表データを格納するファイルや変更履歴を格納するファイルがどこにあるのかを確認し、認識します。
Oracle Databeseでは、データベースに関する管理情報を「制御ファイル」と呼ばれるファイルに格納します。データベースの起動時に制御ファイルを読み込み、データファイルやオンラインREDOログ・ファイルがどこにあるかをチェックします。
1つ目の要素である「データベース」をまとめると以下のようになります。
- データベースを構成する主なファイルには「表データ」「変更履歴」「管理情報」がある
- ファイルの種類は違えど、いずれもディスク領域に格納されている
続いて、これらのファイルに対してデータの読み込みや書き込みをしたり、SQLの内部処理などを担当する「プロセス」について解説します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQLの基礎 「SELECT」文を覚えよう
- SQLとはどういう言語か
「SQLは何となく苦手」という人は意外と多いものです。すでに何らかのプログラミング言語を習得している人を見ても、SQLを苦手としている人は少なくありません。そこで、実際にSQLを入力して結果を見ながら学習する連載を始めます。用意するのはインターネットにつながったWebブラウザだけ。気軽に始めてみてください。(編集部) - RDBMS製品のビッグ3、それぞれの“癖”をつかもう
本連載はOracleを使ったデータベースシステムの開発・運用管理にある程度の知識を持つ読者を対象に、Oracle以外の商用RDBMSであるMicrosoft SQL ServerとIBM DB2とのアーキテクチャの違いを明らかにし、マルチベンダに対応できるデータベースシステムの設計・開発・運用ノウハウを紹介していく。(編集局) - NoSQLはRDBMSに取って代わるものなのか?
「memcached」や「Apache Cassandra」、「Apache CouchDB」など、RDBMSとは異なる考えで設計してあるデータベース管理システムが普及しつつあります。この連載では、これら新しいデータベース管理システムの特徴と、RDBMSとの使い分け方について解説します。(編集部)