Search

  毎日にもっと楽~を! BLOG Tokyo

2007年2月17日

【Access】データベースを分割

ACCESSをネットワークで使いたい場合、直接データベースを編集するのは処理速度とかもろもろを考えても好ましくない。リンクテーブルを利用してデータベースを分割するのがよい。これはあくまでもパフォーマンスの問題で、だからといってデータベースが壊れにくくなるわけではない。自分がつかっているACCESSは最大9名がネットワーク越しで利用しているが、2週間に1回以上の頻度で故障している。最悪です。。
それはさておき、データベースの分割はどうすればいいのか。簡単にいうと、テーブルだけ別のデータベースに移して(バックエンド)、各利用者には、クエリとフォーム、レポートが入っているデータベースを配布する(フロントエンド)。そうすることで、フォームを開くなどのデータのやり取りをネットワーク越しにしなくて済むので、純粋にデータのやりとりだけになるのだ。開発とか、管理とか考える上では、結構楽だと思う。

概要
さまざまな理由により、フロントエンド用またはバックエンド用にデータベースを分割することがあります。バックエンドデータベースにはテーブルが含まれており、ファイル サーバーに保存されています。バックエンド データベースにリンクされるフロントエンドデータベースには、すべてのフォーム、クエリ、レポート、マクロ、およびモジュールが含まれます。フロントエンドデータベースは、ユーザーのワークステーションに配布されます。

この資料では、データベース分割ツール ユーティリティを使用せずに、手作業でデータベースを分割する方法について説明します。
詳細
データベースを分割するには、以下の手順を実行します。
1. 新しい空の Access データベースを作成します。
2. [ファイル] メニューの [外部データの取り込み] をポイントし、[インポート] をクリックします。
3. 分割するデータベースを見つけて選択します。
4. [テーブル] タブで、[すべて選択] をクリックし、[OK] をクリックします。

Access によって、すべてのテーブルが新しいデータベースにインポートされます。このデータベースがバックエンド データベースです。
5. 新しいバックエンド データベースをネットワーク共有に保存し、この共有に対するフルコントロールのアクセス許可が、すべてのユーザーに与えられていることを確認します。
6. 2 つ目の空の Access データベースを新規作成します。
7. [ファイル] メニューの [外部データの取り込み] をポイントし、[テーブルのリンク] をクリックします。
8. 作成したバックエンド データベースを選択します。
9. [テーブル] タブで、[すべて選択] をクリックし、[OK] をクリックします。

バックエンド データベースのテーブルが、Access によってフロントエンド データベースにリンクされます。
10. [ファイル] メニューの [外部データの取り込み] をポイントし、[インポート] をクリックします。
11. 分割しようとしている元のデータベースを選択して、[インポート] をクリックします。
12. [フォーム] タブで、[すべて選択] をクリックします。[テーブル] タブ以外のすべてのタブに対して、この手順を繰り返します。既にテーブルへのリンク処理は完了しているため、後は残りのオブジェクトをインポートするだけです。
13. テーブル以外のすべてのオブジェクトの選択が終了したら、[OK] をクリックします。

これで、すべてのテーブルがリンクされ、残りのオブジェクトがインポートされました。
このデータベースがフロントエンド データベースです。このフロントエンド データベースをワークステーションに配布すると、各ユーザーにフロントエンド データベースの自分用のコピーを持たせることができます。

これで、データベースが正しく分割されたため、パフォーマンスが向上します。ユーザーがフォームを開くと、フォームはそのコンピュータ上でローカルに開かれ、ネットワーク経由で送信されることはありません。ネットワーク経由で送信されるデータは、リンクされたテーブルのデータのみです。
データベースの分割が推奨される理由
データベースを分割する一般的な理由は、以下のとおりです。
• ネットワーク上の複数のユーザーがデータベースを共有している。
• 複数のユーザーがデータベースで開発しているが、Microsoft Visual Source Safe がインストールされていない。
• ユーザーがテーブルのデザインを変更できないようにする必要がある。
データベースを分割する最も一般的な理由は、ネットワーク上で複数のユーザーがデータベースを共有していることです。ネットワーク共有に単純にデータベースを保存している場合は、ユーザーがフォーム、クエリ、マクロ、モジュール、またはレポートを開くと、これらのオブジェクトがネットワークを経由して、データベースを使用する各ユーザーに送信されます。データベースを分割すると、各ユーザーに、フォーム、クエリ、マクロ、モジュール、およびレポートの自分用のコピーを与えられます。このため、ネットワークを経由して送信する必要があるデータは、テーブルのデータのみとなります。

注 : データベースを分割するには、データベース分割ツール ユーティリティを使用することもできます。


引用
http://support.microsoft.com/kb/304932/ja



Bookmark and Share


編集長のおすすめの一冊!2010

comments

comment form

(BLOG Tokyo にはじめてコメントされる場合、不適切なコメントを防止するため、掲載前に管理者が内容を確認しています。適切なコメントと判断した場合コメントは直ちに表示されますので、再度コメントを投稿する必要はありません。)

comment form