web-dev-qa-db-ja.com

小さな.NETアプリケーションに適したデータベースの選択は何ですか?

私は.NETでC#を使用して小さなアプリケーションを開発していますが、多くのリソースを使用しない小さな軽量データベースが必要です。

最もよく知られている軽量データベースソフトウェアをいくつか挙げてください。

177
ePezhman

2016/06/14はい...まだ賛成票を得ています:-/


17/03/2014私はまだこれに対して賛成票を受け取っています。これが最初に回答された日付に注意してください。リストされている主要な3つの項目はまだ完全に実行可能ですが、リストは古くなる傾向があります。リストされていない利用可能なデータベーステクノロジーがさらにあります。


すぐに認識できる無料のオプションがいくつかあります。

SQL Server Compactのダウンロードには、コードで参照する必要があるADO.NETプロバイダーが付属しています。 SQLiteのダウンロードには含まれていない可能性があるため、ここにリンクを示します。

http://sqlite.phxsoftware.com/

3つすべてがSQLを使用していますが、いくつかの制限/癖があります。 Management StudioはCompactとLocalDBで動作しますが、SQLiteではSQLite Administratorなどの別のUIツールが必要です。

http://sqliteadmin.orbmu2k.de/

次のようなNoSQLの代替手段があります。

個人的には、他の無料オプションに直面してMS Accessを使用することは避けます。 LocalDB、Compact、またはSQLiteを間違えることはありません。それらはすべて、小さなRAMで比較的迅速に実行される素敵な小さなデータベースです。マイクロソフト製品を好むことに関する宗教的な側面に関しては個人的な好みです:-)

分離ストレージを使用するように構築されているため、Sterling for Windows Phoneプログラミングを使用しています。 RavenDbに関する記事を見ただけですが、これはJSONベースのドキュメントストレージフレームワークであると言えます。

状況を混同しないように(SQLite、SQL Server Express LocalDB、またはSQL Server Compact Editionを使用してください)、他の組み込み/ローカルデータベースがあります。一部はリレーショナルで、他はオブジェクト指向です。

これらのすべてが無料ではありません。 SQL/LINQ /インプロセスサポートは、それらすべてで異なります。このリストは単に好奇心のためです。

Karvonite もありますが、コードギャラリーのリンクは壊れています。再びライブになったら、WP7開発用にこれを検討します。

191

SQLite をお勧めします。私は、私が仕事をしている場所で開発しているほとんどすべてのアプリにそれを使用しています。

小さくてコンパクトです。アプリディレクトリにDLLが必要ですが、AccessやSQL Serverなどの他のソフトウェアをインストールする必要はありません。また、下記のダニエルザが述べているように、「SQLiteはパブリックドメインです。そのため、ライセンスについて心配する必要はまったくありません。」それは本当に大きな違いを生むことができます。

System.Data.SQLite または csharp-sqlite を使用して、SQLまたはOleDBと同じメソッドを使用してC#アプリでアクセスできます。

データベースを編集/管理するためのアプリケーションも必要です。私の意見で最高のものは SQLite Studio です。ここにさらにいくつかあります:
SQLite Admin
SQLite 2009 Pro(ページの下部)
Update-7/25/11- その他のSQLiteアプリ(SOに関する質問はこちら)

SQLiteの詳細は次のとおりです。
ウィキペディアのSQLite
SQLiteを使用する企業

カスタム関数:さらに、 SQLite Core Functions で探しているものが見つからない場合は、独自のカスタム関数を作成できます。次に例を示します。
SOから
別の例

56
Mike Webb

Firebird embedded は良い選択です

組み込みバージョンは、サーバーの驚くべきバリエーションです。これは、わずかなファイルにまとめられたフル機能のFirebirdサーバーです。サーバーをインストールする必要がないため、展開は非常に簡単です。

とても良い ドットネット ドライバーがあります

10

.NET 4.0.2以降でプロジェクトをビルドしていて、組み込みデータベースのサポートが必要な場合は、 SQL Server Express LocalDB を検討してください。

Expressファミリに比較的新しく追加されたもので、インストールフットプリントが小さく、管理オーバーヘッドが削減されています(Expressの他のエディションと比較した場合)が、SQL Serverのプログラミングの側面を維持しています。つまり、Compact Editionとは異なり、LocalDBではSQLと通信するために別のADO.NETプロバイダーをインストールする必要はありません。

詳細については、次を参照してください。

SQL Express v LocalDB v SQL Compact Edition (MSDNブログ)
SQL LocalDB vs SQL Server CE (スタックオーバーフロー)

8
Robert Mooney

公式のMicrosoftソリューションを使用する場合は、SQL Server Compact。これには、必要な場合にSQLサーバーでレプリケーションを使用できるという利点があります。

非常にシンプルで小さく無料にしたい場合は、SQLite。これはAndroidが内部データベースに使用するものであるため、非常によくサポートされており、非常に優れた.NETバインディングが利用可能です。

SQLiteの明確な利点の1つは、クロスプラットフォームであることです。そのため、アプリケーションをMono.NETに移植する場合、データベース実装を変更する必要はありません。

私はこのソリューションでMS Accessが好きではありませんが、多くの人が答えにそれを含めています。独自の形式とプラットフォーム依存のために制限されています。しかし、それには利点があります。 MS Accessのコピーがあれば、データを簡単に操作でき、クエリをグラフィカルに作成し、マクロを作成できます。 MS Officeの他の部分と簡単に統合できます。

これらのSQLiteは、プラットフォームに関係なく開発者の仲間が増えているため、非常にコンパクトで、十分に文書化され、サポートされているため、SQLiteが推奨されます。

編集

私はここにいる誰もが言及するのを忘れていた別のオプションがあることに気づきました

リレーショナルテーブルが必要ない限り、CSVファイルをADO.NET経由でデータセットとして読み取って使用できます。 (他の何よりもlulzの提案の多くが、場合によっては適切であり、MS展開のために追加のライブラリを必要としません。

8
Merlin
7
nWorx

Sql Server Express Editionを無料で使用できます。また、mirroringなどの機能が必要になるまでは、同様に強力です。 this をご覧ください。

4
FIre Panda

私はdb4oを使用して成功しました。
ファイルベースの大規模なコミュニティ、使いやすい。

http://www.db4o.com/

ライセンスの詳細

無料の一般公開ライセンスdb4oは、デフォルトでGPLの下でライセンスされています。

GPLライセンスは、db4oを社内で使用する予定がある場合や、GPLの下でフリーソフトウェアとして独自の派生物を開発および配布する予定がある場合に理想的です。

商用ライセンス商用の非GPL製品にdb4oを埋め込む場合は、商用ライセンスが必要です。商用ライセンシーは、プレミアムサービスとサポートを利用できます。

2
Jeremy Gray

無料のデータベースである必要がない場合に言及されていない代替手段は、VistaDBです。すべてマネージコードであり、組み込みデータベースに多くの機能を提供し、非常に優れたパフォーマンスを提供します。 VistaDBストアドプロシージャの大部分がSQL Server Expressで変更なしで実行されるため、SQL CEとSQL Server Expressの間の非常に良好なブリッジ。私もこの時点で顧客サービスにかなり満足しています。私は仕事でそれを使用しています。開始するサービスはありません。空のDBは約1MBで、DLLもかなり軽量です。 ADO.NETプロバイダーなどがあります。私はそれが少し好きだった。

VistaDB

2
Rig

SQL Server Compact Editionは無料で、サイズが軽く、うまく統合されているため、最適です

1
panindra

SQL Server ExpressまたはMS Access

0
Barry Kaye