最終的にDBはOSのファイルとして保存されるが、高いパフォーマンスを得るため、MSSQLは独自の管理メカニズムを備えている。。
前回は、データベース管理システム(DBMS)であるSQL Server 2000を構成するコンポーネントの概要についてまとめた。アプリケーションが安全かつ効率よくデータを扱えるようにするために、さまざまな周辺コンポーネントを統合したものがDBMSであり、マイクロソフトが提供するDBMS製品がSQL Server 2000である。
今回から数回にわたり、主要なコンポーネントをもう一段掘り下げて解説する。最初は、DBMSの中核で、データが実際に格納される「データベース」のアーキテクチャについて取り上げよう。
アーキテクチャ的な観点からデータベースを見ると、大きく2つの側面がある。1つは論理データベース、もう1つは物理データベースである。
このうち論理データベースでは、テーブルやプロシージャ、ビュー(仮想テーブル)などの論理的なオブジェクトの集合体としてデータベースをとらえる。エンド・ユーザーや、データベース・アプリケーション(データベース・プログラマ)などが触れるデータベースといえば、通常はこの論理データベースである。例えばデータベース・アプリケーションは、テーブルの操作やプロシージャ呼び出しなどのオブジェクトの操作を行いながら、アプリケーションにとって必要なデータ処理を実行する。論理データベースでは、データが最終的にどのようなファイルに格納されるかなど、物理的な実装については意識しない。
これに対し、データが最終的にどのような形式でディスクに保存されるのか、ファイル内部でデータがどのように格納されるのかを意識するのが物理データベースである。これらの関係を図にすると次のようになる。
例えば次の画面は、SQL Serverの管理用ツールであるEnterprise Managerで、サンプル・データベース(Northwind)のデータベース・オブジェクトを表示したところだ。
データベースの設計やアプリケーション開発などでは、通常は論理データベースを扱うことになる。しかしこの論理データベースの説明は次回に譲るとして、今回は物理データベースについて説明する。本稿の読者には、データベースを使った情報システムの設計や展開(導入)、運用管理を担当する人も少なくないだろう。これらの作業では、データがどのようなファイル構成でディスクに保存されるのか、ファイルの内部でどのようにデータが管理されているのかを知っておくと役に立つ。
前出の図「論理データベースと物理データベース」でも示したとおり、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つの名前がある。
Enterprise Managerでデータベースを作成するときには、このうち論理ファイル名を指定する。名前が示すとおり、論理ファイル名はそのデータベースを論理的に認識するための名前で、あるデータベースを一意に識別可能である。データベース・アプリケーションのTransact-SQLステートメントからデータベースを参照する際に使用するのも論理ファイル名である。
一方の物理ファイル名は、そのデータベースがOSのファイル・システムに保存される際の物理的なファイルの名前である。Enterprise Managerで論理ファイル名を指定してデータベースを作成すると、一定のルールにのっとって物理ファイル名は自動的に付けられる。
Copyright© Digital Advantage Corp. All Rights Reserved.