連載
» 2004年05月19日 00時00分 公開

初めてのSQL Server 2000:第3回 データベースの物理アーキテクチャ (1/3)

最終的にDBはOSのファイルとして保存されるが、高いパフォーマンスを得るため、MSSQLは独自の管理メカニズムを備えている。。

[デジタルアドバンテージ,著]
基礎解説初めてのSQL Server 2000 ―― データベースを理解するための第一歩 ――
Windows Server Insider

 

「基礎解説初めてのSQL Server 2000 ―― データベースを理解するための第一歩 ――」のインデックス

連載目次

 前回は、データベース管理システム(DBMS)であるSQL Server 2000を構成するコンポーネントの概要についてまとめた。アプリケーションが安全かつ効率よくデータを扱えるようにするために、さまざまな周辺コンポーネントを統合したものがDBMSであり、マイクロソフトが提供するDBMS製品がSQL Server 2000である。

 今回から数回にわたり、主要なコンポーネントをもう一段掘り下げて解説する。最初は、DBMSの中核で、データが実際に格納される「データベース」のアーキテクチャについて取り上げよう。

論理データベースと物理データベース

 アーキテクチャ的な観点からデータベースを見ると、大きく2つの側面がある。1つは論理データベース、もう1つは物理データベースである。

データベース・アーテクチャの2つの側面
エンド・ユーザーやDBアプリケーションは、論理的なオブジェクト(テーブルやビューなど)の集合体としてデータベースを扱う。これに対し、データが物理的にどのような形式でファイルに格納されるかというのが物理データベースである。管理者は、システム構成の検討やトラブル・シューティング、パフォーマンス・チューニングなどで物理データベースを意識する必要に迫られる。

 このうち論理データベースでは、テーブルやプロシージャ、ビュー(仮想テーブル)などの論理的なオブジェクトの集合体としてデータベースをとらえる。エンド・ユーザーや、データベース・アプリケーション(データベース・プログラマ)などが触れるデータベースといえば、通常はこの論理データベースである。例えばデータベース・アプリケーションは、テーブルの操作やプロシージャ呼び出しなどのオブジェクトの操作を行いながら、アプリケーションにとって必要なデータ処理を実行する。論理データベースでは、データが最終的にどのようなファイルに格納されるかなど、物理的な実装については意識しない。

 これに対し、データが最終的にどのような形式でディスクに保存されるのか、ファイル内部でデータがどのように格納されるのかを意識するのが物理データベースである。これらの関係を図にすると次のようになる。

論理データベースと物理データベース
論理データベースでは、論理的なオブジェクトの集合体としてデータベースをとらえる。物理データベースでは、データが最終的にどのようなファイルとして保存されるかを意識する。

 例えば次の画面は、SQL Serverの管理用ツールであるEnterprise Managerで、サンプル・データベース(Northwind)のデータベース・オブジェクトを表示したところだ。

Enterprise Managerから見たデータベース・オブジェクト
通常のデータベースの設計や管理では、論理データベースを扱うことになる。

 データベースの設計やアプリケーション開発などでは、通常は論理データベースを扱うことになる。しかしこの論理データベースの説明は次回に譲るとして、今回は物理データベースについて説明する。本稿の読者には、データベースを使った情報システムの設計や展開(導入)、運用管理を担当する人も少なくないだろう。これらの作業では、データがどのようなファイル構成でディスクに保存されるのか、ファイルの内部でどのようにデータが管理されているのかを知っておくと役に立つ。

SQL Server 2000のファイル構成

 前出の図「論理データベースと物理データベース」でも示したとおり、SQL Server 2000は、いくつかのファイル(OSのファイル・システム・レベルで格納されるファイル)をマップして論理データベースを構築している。これらSQL Server 2000が扱うファイルのタイプには、以下の3つの種類がある。

ファイル・タイプ 推奨拡張子 内容
プライマリ・データ・ファイル .mdf データベースの開始点となるファイル。各データベース(論理データベース)は必ず1つのプライマリ・データ・ファイルを持っている
セカンダリ・データ・ファイル .ndf 上記プライマリ・データ・ファイル以外のすべてのデータが格納されるファイル。セカンダリ・データ・ファイルは存在しない場合もあるが、複数存在する場合もある
ログ・ファイル .ldf 万一のトラブル時、データベースを復旧するためのログ・データを確保する。データベースは最低1つのログ・ファイルを持っている(複数の場合もある)
SQL Server 2000におけるファイル・タイプ

 テーブルのデータは、プライマリ/セカンダリの各ファイルに分散して格納される場合があるが、ログとテーブル・データが1つのファイルに混合されることはない。また1つのファイルは、必ず1つのデータベースによって使用される。同一のファイルを複数のデータベースで共有することはない。

 実際にSQL Server 2000によって作成されたデータベース・ファイルを見たければ、SQL Server 2000をインストールしたフォルダ(デフォルトでは%ProgramFiles%\Microsoft SQL Server\MSSQL\Data)を見るとよい。特に指定しないかぎり、SQL Server 2000でデータベースを作成すると、データベース・ファイルはこのフォルダに作られる。なお表に示した拡張子は推奨である。これらは変更することも可能だが、管理作業が繁雑になるので、特に理由がなければ推奨の拡張子をそのまま使った方がよいだろう。

 SQL Server 2000で作成されたデータベースには、論理ファイル名と物理ファイル名の2つの名前がある。

データベース・ファイルの2つの名前
SQL Server 2000のデータベースには2つの名前がある。論理ファイル名は、名前のとおり論理的にデータベースを識別する名前で、あるデータベースを一意に識別する。これに対し物理ファイル名は、OSのファイル・システムにデータベースが保存される際の物理的なファイル名である。

 Enterprise Managerでデータベースを作成するときには、このうち論理ファイル名を指定する。名前が示すとおり、論理ファイル名はそのデータベースを論理的に認識するための名前で、あるデータベースを一意に識別可能である。データベース・アプリケーションのTransact-SQLステートメントからデータベースを参照する際に使用するのも論理ファイル名である。

 一方の物理ファイル名は、そのデータベースがOSのファイル・システムに保存される際の物理的なファイルの名前である。Enterprise Managerで論理ファイル名を指定してデータベースを作成すると、一定のルールにのっとって物理ファイル名は自動的に付けられる。


       1|2|3 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。