PR

 SQL Server 2005 Express Editionが「リレーショナル・データベース」であり,様々なデータベース・アプリケーションが使用するデータを格納したり,取り出したりできることは誰でも知っているだろう。しかし,それらのデータが実際にどの場所に格納されているのかは,知らない人が多いのではないだろうか。

 データベース・アプリケーションは通常,「ODBC」や「OLE DB」,「ADO.NET」などの様々なミドルウエアを経由して,SQL Server Expressデータベースに接続する。よって,データベース・アプリケーションを使用するユーザーに,データベースの構造が見えるようにはなっていない。通常,アプリケーションは,T-SQLクエリをデータベースに対して発行してデータを取得するので,データを1行ずつ参照することになる。T-SQLは行ベースで動作するので,アプリケーションには行の集合が返される。この行の集合は,結果セットと呼ばれる。

 SQL Server Expressの初心者の中には,データベースのデータはどこにあるのか不思議に思うユーザーもいるかもしれない。SQL Server Expressでは,主にデータベース・データ・ファイル(拡張子.mdf)と,トランザクション・ログ・ファイル(拡張子.ldf)の2つのファイルに,データベースのデータが保存されている。これらのファイルは,OSやアプリケーションから参照できる。例えば,SQL Server Expressをデフォルト設定のままインストールすると,ファイル・システム内に「C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data」というディレクトリが作成される。

 このディレクトリに,SQL Server Expressのデータベース・ファイルとログ・ファイルが保存される。デフォルトでは,「master」や「model」,「msdb」,「mssqlsystemresource」,「tempdb」など,SQL Server Expressの様々なシステム・データベースのデータ・ファイルとログ・ファイルが置かれる。

 ユーザー・データベースを作成して,その保存場所としてデフォルト設定を受け入れた場合も,そのユーザー・データベースのデータ・ファイルとログ・ファイルが上記のDataディレクトリに置かれる。SQL Server Expressでは,データベースを作成する際にデータ・ファイルとログ・ファイルが定義される。

 例えば,「SQL Server Management Studio Express(SSMSE)」を使用している場合は,Databaseノードを右クリックして[New Database]オプションを選択すると,[New Database]ダイアログ・ボックスが表示される。データベース名フィールドに「MyDB」と入力すると,「MyDB.mdf」という名前のデータベース・データ・ファイルと「MyDB_log.ldf」という名前のログ・ファイルが,どちらもDataディレクトリに作成される。アプリケーションを作成してデータベースと一緒に配布する場合は,アプリケーションのインストール・プログラムに,データベースの.mdfファイルと.ldfファイルを追加する必要がある。

 SQL Server Expressデータベースは,通常は2つのデータベース・ファイルで構成されているが,2つ以上のデータベース・ファイルを使うこともできる。データベースを作成する際に[New Database]ダイアログ・ボックスで[Add]ボタンをクリックすると,データ・ファイルの数を増やせる。ほとんどのデータベースでは,複数のデータ・ファイルを使う必要はないが,バックアップ/リストアや可用性を実装する場合は,複数のデータ・ファイルが必要になることもある。