『アップサイジング』とは、Accessだけで構築されたデータベースを、(Accessの場合一般的には)SQL Serverデータベースをバックエンドとしてクライアント/サーバーシステムにアップグレードすることです。
ユーザーの利用環境や運用状況によっては、Accessだけのシステムでも十分であるケースは少なくありません。しかし、そのシステムがより本格的に業務で使われるようになると、Accessだけでは十分に対応し切れなくなることも少なくありません。
たとえば、
- ユーザー数が増えてレスポンスが悪くなった
- データ量が増えてパフォーマンスが落ちた
- データベースファイルサイズが増大し管理が面倒になった
- データベースファイルの破損等が起るようになった
- ユーザーが増えたことによってより厳密なアクセス制限を掛けたい
などの状況やニーズが出てくることが考えられます。
そのようなとき、これまでAccessのみで管理されていたデータ自体やデータ処理などをSQL Serverに移行することで、データ処理あるいはデータベースの管理をより高速・堅牢な環境に置き換えることができます。もちろん、実際にユーザーが操作する画面(フォーム)や帳票(レポート)は従来通り、馴染み深いAccessのインタフェースを使うことができます。
そこで本シリーズでは、実際にAccessオンリーのデータベースをSQL Server上に移行する作業の過程を紹介し、アップサイジングの作業実例を説明していきたいと思います。
なお、前提として次のような条件でアップサイジングを行うものとします。
- 現在すでに“スタンドアロン”のAccessデータベースがあるものとします
- そのデータベースはAccess2007で作られた.accdb形式のファイルとします
- そのファイルのVBAからのデータアクセスには“DAO“を使っているものとします
- 題材として拙作シェアウェア「人材管理データベース」を使います(外部機能としては特に追加・変更は行いません)
- アップサイジング先としては、SQL Server2005を使うものとします
- アップサイジングには、テーブルだけをSQL Serverに移行してリンクテーブルとする方法や、クエリ等もビューやストアドプロシージャに移行する、さらにはAccessのファイル形式をADP(Accessプロジェクト)形式にする、といったいくつかのステップがありますが、今回は出来る限りクライアント/サーバーらしい仕組み、すなわち出来る限りサーバー側で処理できることはサーバー側で行わせる、という前提で、ADP形式の「人材管理データベース
SQL Server版」を作っていくものとします。
- SQL Server側の設定として、多数のユーザー登録によるアクセス権限等の設定までは行いません。
- 概要の説明だけに留めている部分も多々あります。作業すべての詳細説明を網羅しているわけではないことをご了承ください。
|