2008-08-29 11 views
1

ネットワークドライブを格納できるデータベースが必要で、複数のユーザー(最大20人)がサーバーソフトウェアなしで使用できるようにする必要があります。複数の同時ユーザーをサポートするファイルデータベースの提案

私はMS AccessまたはBerkeley DBを検討しています。

あなたの経験をファイルデータベースと共有できますか?
どちらを使用しましたか、問題はありますか?

答えて

5

私はSQLiteを提案します。これは、データベース全体が1つのファイルに格納されており、同時に複数のユーザーが同時にアクセスするため、非常に安全です。クライアントアプリケーションに使用できるライブラリはいくつかあり、必要なサーバーソフトウェアはありません。

強みの1つは、データベースサーバーを完全なSQL Serverに変換する必要がある場合、クライアントのほとんどのクエリを変更する必要がないように、SQLサーバーを厳密に模倣することです。データを新しいサーバーデータベースに移行するだけで済みます(SQLiteデータベースをMySQLデータベースに変換するプログラムがあれば驚くことはありません)

+0

Daniel - SQLiteは、(a)シンプルな、(b)並行書き込みのキラー - 異なるテーブルにさえ、更新を行うときにファイルレベルのロックを使用していました。それとも20人のユーザーしか問題ではないという考えですか? – SquareCog

2

アクセスは愚痴かもしれません。私は周りを歩き回って20-50人の人にアクセスを許可するように指示していましたので、フォームのデザインや多分列を変更するために "デザインモード"に行くことができました。全く楽しいことはありません。

6

私は本当にそうは思わないファイルベースのデータベースは、半ダース以上のユーザーに対応できます。私がAccessデータベースを持っていた前回(これはかなり前のことでした)、私は8-9人で働くためには本当に難しく働かなければなりませんでした。

PostgreSQLまたはMySQLを使用している古いジャンクコンピュータにUbuntuをインストールするのはずっと簡単です。アクセスをフロントエンドにしていたとしても、それは私がしなければならなかったことです。

2

Ayendeは最近、同様の決定を下していましたが、いわゆる組み込みデータベースを試しました。うまくいけば彼のobservationsあなたを助けることができる。

1

私は、しばらくの間、オンラインを含むさまざまな状況でAccessを使用してきました。私は、guidelinesに従って正しく設定されていれば、Accessがうまく動作することを発見しました。 Accessの利点の1つは、フォーム、クエリビルド、レポート、データベース管理、およびVBAのすべてを1つのパッケージに含めることです。さらに、他のすべてのOfficeアプリケーションでもうまく機能します。 Access 2007ランタイムは、hereから無料で入手できます。これにより、配布費用が安くなります。アクセスは確かに大規模な運用には適していませんが、20人のユーザーには非常に適しているはずです。編集:Microsoftは、同時ユーザー数を255に設定します。

5

すべてのファイルベースのデータベースに注意してください。すべて同じ問題が発生する可能性があります。あなたの状況は本当にクライアント/サーバーソリューションを必要とします。 SQLiteのよくある質問

親指の良いルールから

はあなた が同じデータベース は、ネットワークファイルシステム上 多くのコンピュータから同時にアクセスされる 状況でSQLiteの使用を避けるべきであるということです。

http://www.sqlite.org/whentouse.html

1

オプションが一緒に属していないという点で、元の質問は、私には意味がありません。 BerkeleyDBはデータベースエンジンのみであり、Accessはデフォルトのファイルベース(つまり非サーバー)のデータベースエンジン(Jet)と共に出荷されるアプリケーション開発ツールです。バークレーにAccessを置くことによって、必要なのはデータベースエンジンだけで、アプリケーションはまったくありませんが、エンドユーザーがフロントエンドなしでBerkeley DBを使用する方法はわかりません(私はコマンドラインからのみ使用します)。

20人の同時ユーザーでJet MDBを実行できないユーザーは、Jetをデータストアとして使用するアドバイスを提供するだけの能力がありません。ベストプラクティスに従う限り、それは完全に実行可能です。マイクロソフトのベストプラクティスのWebページTony Toews's Best PracticesTony's Corruption FAQ(つまり、安定したアプリケーションを作成するためにやりたいこと)をお勧めします。

元の質問者がフロントエンドアプリケーションを構築していないことを強く疑っていますが、フロントエンドがどのようなフロントエンドを含んでいるかを示していないので、バックエンドを推薦するのは難しいです。アクセスには、方程式の両方の部分を与える利点があり、正しく使用すると、複数のユーザーにとって完全に信頼できます。

1

10-20人のユーザーをサポートするようにアクセスを設定できますか?はい。ただし、すべてのファイルベースのデータベースと同様に、ロックと同時実行制御にファイルシステムを使用します。また、アクセス・データ・ファイルは、データベース・サーバーよりもデータベースの破損の影響を受けやすくなります。そして、これを設定することができますが、デービッド・フェントンが述べたように、信頼できるシステムにしたい場合は、ベストプラクティスに従わなければなりません。

個人的には、Accessソリューションに問題がないことを確実にするために飛び越える必要があることを考えれば、MSDE/SQL Server ExpressまたはpostgreSqlのインスタンスを実装するのはずっと面倒です。

1

Berkeley DBは、BDBのデプロイ時にうまく動作しない共有メモリとmutex(複製も可能です)を利用することで、主に高度な並行性(20を超える)をサポートします。file stored on a network drive

DBD並行処理機能を利用するには、アプリケーションの周りにアプリケーションを構築する必要があります。

関連する問題