.NET Frameworkの新機能ADO.NETを使って、データベースを扱うプログラミングに挑戦してみよう。まずはデータベースを準備し、その構造を知る。
本連載では、C#やVisual Basic .NETで記述した.NETアプリケーションから、データベースにアクセスするための基礎的なプログラミングについてまとめる。これまでデータベースを扱ったことのない開発者のために、データベースそのものの構造や、基本的なデータベースのアクセス手順についても必要に応じて簡単に触れるようにする。
.NETアプリケーションからデータベースにアクセスするためには、「ADO.NET」と呼ばれる.NET Frameworkのアクセス機能を利用する。その名前からも分かるように、ADO.NETは、Visual BasicやC++でデータベースに接続するためのインターフェイスであった「ADO(ActiveX Data Object)」の.NETバージョンだ。しかし、ADO.NETには新しい思想や技術が数多く盛り込まれている。例えば、その1つは、「非接続型」のデータベース・アクセスである。接続せずにどうやって読み書きするのか? この全く新しい概念は、Windows環境での使用がメインだった時代のADOに対して、Webアプリケーションで効率的にデータベースを扱うためのものだ(詳しい仕組みについては次回以降で述べる)。このようにADOからADO.NETへの進化では、設計パラダイムが大きくシフトしているため、ADOとは完全に別物として学んだ方が理解は早いかもしれない。
このADO.NETの正体は、簡単にいってしまえば、.NET Frameworkのクラス・ライブラリに標準で備わっている一連のクラス群だ。プログラムの形態がWindowsアプリケーションであってもWebアプリケーションであっても、これらのクラスを利用して、データベースを扱うことができる。
ただし当然ながら、ほかの.NETのクラス・ライブラリと同様、ADO.NETは.NET Frameworkの巨大なクラス階層の一角となっており、いきなりその全貌を把握しようとしてもなかなか容易でない。また、ADO.NETはデータベースだけでなく、XMLデータも同様に扱えるよう柔軟な設計になっているため、実際のプログラミングでは、各クラスの役割を見極め、適切にチョイスし組み合わせていく必要がある。本連載は、その手助けになることを目指す。
プログラミングに先立って、今回はまずデータベースの準備をし、その構造を理解することから始めてみる。
データベースのプログラミングを始めるためには、何はともあれアクセス対象となるデータベース製品(DBMS:データベース管理システム)が必要となる。マイクロソフトの「SQL Server 2000」やOracle社の「Oracle9i」、小規模なところではマイクロソフトの「Microsoft Access」などがそれだ。ADO.NETでは、これらの製品をどれでも扱うことができるが、本連載では、「MSDE(正式名称はMicrosoft SQL Server 2000 Desktop Engine)」を使用してプログラミングの学習を進めることにする。
このMSDEは、素晴らしいことに、SQL Server 2000と完全な互換性がありながら、ロイヤリティ・フリーで、.NET Framework SDKに標準で含まれている。Visual Studio .NET(以下VS.NET)には.NET Framework SDKが含まれているので、当然ながらMSDEも含まれていることになる。
SQL Server製品と比較すると、MSDEにはデータベース管理のためのGUIツールが含まれていない、同時接続ユーザー数やデータベースの最大サイズが制限されているなどの違いがあるが、プログラム・コードは全く同一のものが利用できる。つまり、本番のシステムではSQL Serverを使用するとしても、取りあえず自分のデスクトップ・マシンにMSDEをインストールして、自由にプログラミングして試してみることができるというわけだ。
本連載で使用する.NETのプログラミング環境としては、基本的にVS.NETではなく、コマンドライン・ベースの開発キットである.NET Framework SDKを使用する。.NET Framework SDKもフリーでダウンロードできるので、Windowsさえあればすべてフリーで.NETデータベース・プログラミングにトライできることになる。
.NET Framework SDK、あるいはVS.NETがインストールされているとして、まずはMSDEのインストールから始めよう。MSDEをインストールするには、
%ProgramFiles%
\Microsoft.NET
\FrameworkSDK
\Samples
\Setup
\msde
(.NET Framework SDKをインストールしている場合。%ProgramFiles%は通常は“C:\ProgramFiles”)
あるいは、
%ProgramFiles%
\Microsoft Visual Studio .NET
\FrameworkSDK
\Samples
\Setup
\msde
(VS.NETをインストールしている場合)
にあるinstmsde.exeを実行すればよい。MSDEはWindowsサービスとしてセットアップされ、スタートアップの種類として「自動」が指定されるので、インストール終了後にシステムを再起動すれば自動で開始される。
.NET Framework SDKに付属のMSDEは、Windowsサービスでは「MSSQL$NetSDK」として登録される。ここで、「NetSDK」はインスタンス名で、これはSQL Serverの「名前付きインスタンス」と呼ばれるものだ(インストールされたMSDEは、運用上はSQL Serverと違いはない)。名前付きインスタンスは複数作成でき、同時に稼働させることができる*1。これは、デスクトップ上でIEを複数起動しているようなもので、それぞれ独立して使用することができる。
*1 名前の付いていないインスタンスは「既定のインスタンス」と呼ばれ、1つだけしか使用できない。SQL Server 2000をインストールした場合には、デフォルトで既定のインスタンスとしてインストールされる。
プログラムからデータベースにアクセスする場合には、
サーバ名\インスタンス名
でデータベース・サーバを指定するため(既定のインスタンスがある場合には、サーバ名のみでよい)、インスタンス名が何かを知っておく必要がある。
MSDEのインストールがうまくいったら、SQL Slammerに感染しないように、MSDE 2000 SP3を必ず適用しておこう(SQL Slammerの詳細については別稿「Windows Server Insider:Insider's Eye 管理者のジレンマを突いて爆発的に繁殖したSQL Slammer」を参照)。
MSDEのインストールが済んだら、.NET Framework SDK付属のサンプル・データベースもセットアップしていただきたい。これは、クイック・スタート(Web版はこちら)のセットアップに含まれている。このセットアップは、
%ProgramFiles%
\Microsoft.NET
\FrameworkSDK
\Samples
\Setup
にあるConfigSamples.exeを実行すればよい。このセットアップ・プログラムでは、サンプル・データベースのほかに、IISの設定やサンプル・プログラムのコンパイルなども行われる。
セットアップにより、次の4つのサンプル・データベースが作成される。
Copyright© Digital Advantage Corp. All Rights Reserved.